Spisu treści:
- Krok 1: Czego będziesz potrzebować:
- Krok 2: Podłącz Arduino do DHT11
- Krok 3: Pobierz Arduino IDE
- Krok 4: Podłącz Arduino do komputera
- Krok 5: Załaduj bibliotekę
- Krok 6: Uzyskaj kod Arduino
- Krok 7: Załaduj kod na Arduino
- Krok 8: Pobierz i zainstaluj Przetwarzanie
- Krok 9: Przetwarzanie kodu
- Krok 10: Przetwarzanie plików kodu
- Krok 11: Czcionka w przetwarzaniu
- Krok 12: Wykończenie
- Krok 13: Rozwiązywanie problemów
Wideo: Wyświetlanie temperatury i wilgotności oraz zbieranie danych za pomocą Arduino i przetwarzania: 13 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Wstęp: Jest to projekt, który wykorzystuje płytę Arduino, czujnik (DHT11), komputer z systemem Windows i program do przetwarzania (do bezpłatnego pobrania) do wyświetlania danych temperatury, wilgotności w postaci cyfrowej i wykresu słupkowego, wyświetlania czasu i daty oraz wykonywania zliczania uptimer podczas trwania programu i zapisz wszystkie dane w formacie.csv po zamknięciu programu.
Inspiracja:
Po pierwsze MUSZĘ powiedzieć, że jestem całkowicie początkujący i wiele się nauczyłem dzięki temu projektowi. Dlatego staram się napisać ten Instruktaż, aby mógł go przeczytać i zrozumieć całkowicie początkujący.
Widziałem różne projekty Arduino do pomiaru temperatury i wilgotności, ale chciałem program, który:
1) Zmierzona temperatura i wilgotność
2) Wyświetlałem dane zarówno na wykresie (wybrałam wykres słupkowy), jak i w formie cyfrowej
3) ma funkcję zegara;
4) Posiada licznik czasu „Run Time”
5) Zapisuje te dane w formacie pliku.csv (excel).
Inspirację czerpałem z programów stworzonych przez Sowmitha Mandadi, R-B i aaakash3, ale żaden z nich nie był dokładnie tym, czego chciałem. Więc nauczyłem się pisać podstawowy kod i zrobiłem to, co chciałem.
Krok 1: Czego będziesz potrzebować:
Części i materiały:*Komputer – używałem komputera z systemem Windows z systemem operacyjnym Windows 10
(Jestem pewien, że można by użyć Linuksa lub Maca, po prostu ich nie mam, więc nie będę omawiał, jak korzystać z tych systemów operacyjnych)
*Płytka Arduino – użyłem płytki Arduino Uno, ale wystarczy każda płytka Arduino z USB
* Kabel USB - Kabel USB A/B - taki sam jak "kabel drukarki" starego typu (zwykle dostarczany z płytą Arduino)
*Czujnik temperatury/wilgotności DHT 11 - niedrogi od 4 do 8 USD
(Uwaga: istnieją 2 wersje, w których użyłem wersji 3-pinowej, wersja 4-pinowa będzie wymagała użycia płytki stykowej i rezystora 10K, 3-pinowa ma płytkę drukowaną zawierającą rezystor 10K) patrz schematy Fritzing w następnych krokach
*Przewody połączeniowe
Przewody Dupont (podwójne końcówki żeńskie) w przypadku podłączenia do 3-pinowego DHT11 bez płytki stykowej
Standardowe przewody połączeniowe M/F (jeden koniec męski, jeden koniec żeński) i przewody połączeniowe M/M (oba końce męskie) do podłączenia 4-pinowego złącza DHT11 - patrz krok 2, aby uzyskać więcej informacji
*Arduino IDE – program do pisania programów Arduino (tzw. szkiców) za darmo @
www.arduino.cc/en/Main/Software
*Przetwarzanie – program do pisania obróbki szkiców za darmo @
processing.org/download/
* Plik "DHTLib" - plik biblioteki (jest to plik, który trafia do programu Arduino IDE w folderze o nazwie "Library" należy go dodać do szkicu Arduino, zanim Arduino będzie mógł odczytać dane z DHT11 - patrz Krok 5, aby pobrać plik i instrukcje
Krok 2: Podłącz Arduino do DHT11
Najpierw ustal, jaki masz DHT11
Użyłem 3 pinów, ponieważ ma już potrzebny rezystor 10K.
Jeśli masz 4 pin, potrzebujesz rezystora 10K i płytki stykowej
Podłącz DHT11 do płytki Arduino. Ten program wymaga podłączenia pinu sygnałowego DHT 11 do pinu 7 Arduino, pinu Pos (+) podłączonego do 5 V na Arduino i Neg (-) do GND na Arduino.
Zobacz Diagramy i Diagramy Fritzing
Krok 3: Pobierz Arduino IDE
Pobierz Arduino IDE i zainstaluj na komputerze
www.arduino.cc/en/Main/Software
Krok 4: Podłącz Arduino do komputera
Najpierw zainstaluj Arduino IDE, które ma sterowniki do połączenia Arduino USB.
Podłącz Arduino do komputera przez USB.
Poczekaj, aż komputer rozpozna płytkę Arduino i zainstaluje sterowniki.
Otwórz program IDE i sprawdź połączenie szeregowe.
Jeśli płyta Arduino nie pojawia się w porcie Narzędzia> (czerwone kółko), zamknij IDE i otwórz ponownie.
*Ważne*, gdy IDE jest otwarte, a płyta Arduino jest podłączona przez USB. Płytka Arduino musi być podłączona do odpowiedniego portu szeregowego. Na komputerach z systemem Windows jest to określane jako port COM. Aby to zrobić w IDE przejdź do Narzędzia>Port:>Porty szeregowe. Jak widać na diagramie, port szeregowy (czerwone kółko) musi pasować do portu wymienionego w prawym dolnym rogu programu IDE (żółte kółko).
Krok 5: Załaduj bibliotekę
Załaduj bibliotekę dla DHT11. Na początku było to dla mnie mylące, ale jest naprawdę dość proste.
Pobierz plik o nazwie „DHTLib” i rozpakuj. Skopiuj rozpakowany plik „DHTLib”.
Odniesienia do tej biblioteki można znaleźć pod adresem:
plac zabaw.arduino.cc/Main/DHTLib
(Napisał go Rob Tillaart na podstawie prac innych)
Znajdź folder Arduino na swoim komputerze i otwórz go. (Będzie tam, gdzie pobrałeś IDE i zainstalowałeś je na komputerze)
Zobacz schemat
Znajdź plik o nazwie „biblioteki” i otwórz go, a następnie wklej folder „DHTLib” do pliku „biblioteki”. Zamknij go, a następnie uruchom ponownie IDE.
Zobacz schemat
Po ponownym otwarciu IDE możesz sprawdzić, czy biblioteka DHT została zainstalowana. Szkic> Dołącz bibliotekę.
Zobacz schemat
Uwaga Kliknięcie na DHTLib w zakładce „include library” spowoduje umieszczenie biblioteki w kodzie Arduino jako „#include dht.h”.
Nie musisz tego robić, ponieważ jest już w kodzie, który pobierzesz w następnym kroku.
Krok 6: Uzyskaj kod Arduino
Pobierz plik Temp_Hum_Instructable.zip i rozpakuj. Otwórz Temp_Hum_Instructable.ino za pomocą Arduino IDE.
Alternatywnie spójrz na poniższy kod i skopiuj i wklej lub wpisz dokładnie do Arduino IDE:
#włączać
dht DHT; #define DHT11PIN 7// ustawia pin 7 dla połączenia sygnału DHT11 void setup(){ Serial.begin(9600); //otwiera serial } void loop() { int chk =DHT.read11(DHT11PIN);//odczyt DHT11 Serial.print(DHT.temperature, 0);//wydruk temperatury w serialu Serial.print(", "); //wydrukowuje przecinek w serialu Serial.print(DHT.humidity, 0);//wydrukowuje wilgotność w serialu Serial.println();//opóźnienie powrotu karetki(2000);//czekaj 2 sekundy }
Kiedy skończysz, powinno wyglądać jak na powyższym schemacie
Krok 7: Załaduj kod na Arduino
Najpierw Zapisz szkic w lokalizacji i pod nazwą, którą zapamiętasz, Przykład: Temp_Hum.
Następnie musisz załadować szkic na płytkę Arduino, naciskając przycisk strzałki wskazującej w prawo (upload).
Zobacz schemat
Zajmie to kilka sekund; zobaczysz pasek postępu w prawym dolnym rogu.
Wtedy zobaczysz: Gotowe przesyłanie wiadomości w lewym dolnym rogu i biały tekst na dole IDE informujący o pamięci
Zobacz schemat
Jeśli otrzymasz kod błędu (pomarańczowy tekst na dole IDE), powinien to być jeden z poniższych
- Biblioteka „DHTlib” nie została poprawnie skopiowana
- Port COM nie jest prawidłowo ustawiony
- Czujnik nie został prawidłowo podłączony
- Kod nie został poprawnie załadowany do IDE. Pomarańczowy tekst można przewijać i daje wskazówkę, co jest nie tak. Wróć i sprawdź, czy to prawdopodobnie prosty błąd.
Gdy to zrobisz, przyjrzyj się uważnie swojej płytce Arduino. Co kilka sekund mała dioda LED obok liter „TX” będzie migać. To jest Arduino wysyłające informacje z powrotem do komputera. Aby to sprawdzić, kliknij na mały symbol lupy w prawym górnym rogu IDE.
Zobacz schemat
Spowoduje to otwarcie monitora szeregowego i wyświetlenie danych temperatury i wilgotności oddzielonych przecinkiem. Zauważysz, że dane temperatury są podane w stopniach Celsjusza. To jest w porządku, później przekonwertujemy na stopnie Fahrenheita (lub nie, jeśli wybierzesz).
Zobacz schemat
Następnie zamknij monitor szeregowy, a następnie zamknij IDE. (Pamiętałeś, żeby to zapisać, prawda?). Teraz spójrz ponownie na płytkę Arduino (nie odłączaj jej od USB, gdzie pobiera zasilanie i wysyła dane do portu szeregowego w komputerze). Czy nadal miga? Tak świetnie. Po załadowaniu programu do Arduino będzie on działał tak długo, jak będzie miał zasilanie.
Uwaga na temat kodu: jeśli spojrzysz na kod Arduino zaczynający się od „void loop ();”. Następne 5 wierszy kodu mówi Arduino, aby odczytał dane z DHT i wydrukował je na magistrali szeregowej oddzielone przecinkiem. Następny wiersz „opóźnienie (2000);” mówi Arduino, aby czekał 2 sekundy (2000 milisekund), więc dane są odbierane co 2 sekundy. Następnie wraca do „void loop ();” - polecenie, które każe Arduino zrobić to ponownie. Zmiana wartości w linii opóźnienia zmieni częstotliwość odbierania danych. Przykład: zmiana na (600000) zmieni się do 10 minut (600000 milisekund = 10 minut). Otrzymywanie danych co 2 sekundy kończy się dużą ilością danych, więc teraz wiesz, jak zmienić częstotliwość odczytu danych. Pamiętaj tylko, że jeśli zmienisz wartość później, będziesz trzeba wgrać nowy program.
OK usiądź wygodnie i weź oddech, jesteś już w połowie drogi. Tak!!
Krok 8: Pobierz i zainstaluj Przetwarzanie
processing.org/download/
Dość prosto wybierz program, który odpowiada twojemu komputerowi dla systemu Windows 64bit vs. 32 bit. Jeśli nie wiesz, otwórz Panel sterowania na swoim komputerze (widok ikon, a nie widok kategorii) i przejdź do systemu, który będzie tam wymieniony.
Zobacz schemat
Pobierz, a następnie zainstaluj program.
Gdy po raz pierwszy otworzysz i uruchomisz przetwarzanie, prawdopodobnie otrzymasz komunikat dotyczący bezpieczeństwa Java. Kliknij „zezwól” dla sieci prywatnych. Java to język komputerowy używany przez Processing (i Arduino IDE). Co ciekawe, nigdy nie miałem wiadomości o bezpieczeństwie z Arduino IDE, po prostu Processing.
Krok 9: Przetwarzanie kodu
OK, teraz dla kodu przetwarzania.
To była dla mnie najtrudniejsza część, ale także największa okazja do nauki. Podczas gdy kod Arduino miał około 20 linii, ten kod ma +/- 270 linii w kodzie głównym i kolejne 70 + w klasach.
Teraz pierwszą rzeczą, o którą powinieneś zapytać, jest „Czym są zajęcia?”. Dobre pytanie. Odnosi się to do programowania obiektowego. Krótko mówiąc, w głównym kodzie dzieje się kilka rzeczy: definiowanie rozmiaru i koloru wyświetlacza, zegar, timer, kod pokazujący położenie kursora, kod do zapisywania danych w pliku.csv i kilka linijek które dotyczą kodu wyświetlającego wykresy słupkowe. Podczas gdy Arduino IDE miał cały kod na jednej stronie, ten kod przetwarzania ma trzy zakładki. Pierwszy to kod główny, a kolejne dwa to kod wyświetlający wykresy słupkowe. (Ten kod jest w rzeczywistości przechowywany w trzech oddzielnych plikach w folderze Kod przetwarzania). Oddzielne zakładki nazywane są „klasami” i są zdefiniowane w wierszach 48 i 56, a następnie wyświetlane w wierszach 179-182 kodu głównego. Ludzie, którzy napisali program Processing, nazywają to programowaniem obiektowym. (patrz: https://processing.org/tutorials/objects/ krótki opis).
Zasadniczo klasy (Recta1, Recta2) w tym kodzie tworzą prostokąty, które poruszają się w górę iw dół na podstawie danych otrzymanych z DHT11 przez port szeregowy. Pomyśl o staromodnym termometrze, im wyższy poziom rtęci, tym gorętszy, ale odbywa się to za pomocą danych, a nie rtęci. W rzeczywistości klasy tworzą cztery prostokąty, dwa statyczne prostokąty reprezentujące tło termometru i dwa dynamiczne prostokąty, które reagują na dane i poruszają się w górę iw dół. Oprócz przesuwania prostokątów kod zmienia kolor prostokąta dynamicznego oraz kolor wyświetlacza cyfrowego temperatury i wilgotności na podstawie danych odbieranych przez port szeregowy.
Krok 10: Przetwarzanie plików kodu
Tylko kilka podstawowych informacji o przetwarzaniu kodu:
Gorąco polecam lekturę Make: Getting Started withProcessing autorstwa Casey Reas i Ben Fry, założycieli Processing.
processing.org/books/#reasfry2
Nie będę próbował wyjaśniać wszystkich aspektów Przetwarzania lub pisania kodu do przetwarzania. Jak powiedziałem wcześniej, jestem początkujący i uważam, że jest dużo lepszych ludzi, od których można się uczyć. Rozumiem jednak kod, który napisałem (próby i błędy to dobrzy nauczyciele).
1. Najpierw należy dołączyć biblioteki (tak jak w Arduino) i zadeklarować zmienne (Linie 1-25)
2. Następnie skonfiguruj tablicę wyświetlacza (linie 27-63)
3. Uruchom powtarzającą się część kodu – mam na myśli to, że ta część kodu będzie się powtarzać tak długo, jak program będzie działał. W Arduino zapamiętasz „void loop();” (Krok 6). W Przetwarzaniu jest to teraz „nieważne remis();” (Linie 65-184)
4. Dalej jest pobranie danych z portu szeregowego i przypisanie ich do zmiennych (int, float, String)
wewn-
pływak-
Strunowy-
(Linie 185-245)
4. Wreszcie sposób na zamknięcie programu i zapisanie danych (linie 246-271)
Ok: Pobierz plik Temp_Hum_F_3_2 (dla Fahrenheita)
Lub Temp_Hum_C_3_1 (dla stopni Celsjusza)
i rozpakuj plik. Otwórz z Przetwarzaniem.
Krok 11: Czcionka w przetwarzaniu
Ważne: zwracam uwagę na linie 36-37
36 font =loadFont("SourceCodePro-Bold-48.vlw");//ładuje czcionkę przechowywaną w danych
folder 37 textFont(czcionka);
Ta biblioteka czcionek „SourceCodePro-Bold-48.vlw” jest zawarta w plikach do pobrania Przetwarzanie i nie trzeba jej zmieniać, aby działała.
Jednak aby zmienić czcionkę na coś innego, będziesz musiał załadować nową czcionkę do szkicu Processing ORAZ zastąpić "SourceCodePro-Bold-48.vlw" nową czcionką.
. Na szczęście przetwarzanie sprawiło, że pierwsza część jest bardzo łatwa.
Najpierw otwórz szkic, a następnie kliknij:
Narzędzia>Utwórz czcionkę
to otwiera okno
Zobacz schemat
Przewiń w dół do nowej czcionki, którą chcesz, kliknij ją, a następnie kliknij OK. Czcionka została teraz załadowana do folderu szkicu.
Następnie zastąp tekst „SourceCodePro-Bold-48.vlw” dokładną nazwą nowej czcionki (w tym format pliku.vlw)
Jeśli tego nie zrobisz, nowa czcionka nie załaduje się do kodu, a kod będzie dawał błędy (tak jak błędy w Arduino - w czarnej ramce na dole programu).
Krok 12: Wykończenie
Aby uruchomić program przetwarzający, kliknij strzałkę, może pojawić się ostrzeżenie Java, Kliknij: Zezwól na dostęp.
Zobacz schemat
OK, czy program działał? Jeśli tak, otrzymasz wyświetlacz jak na schemacie.
(Nie? Zobacz rozwiązywanie problemów w następnym kroku)
Tak? Teraz spróbuj trzymać DHT11 w zamkniętej dłoni lub umieścić pod strumieniem ciepłego powietrza suszarki do włosów. Liczby powinny się zmienić. Tak? Świetny. to znaczy, że wszystko działa dobrze.
Aby zamknąć program i zapisać dane, kliknij pole „Kliknij tutaj, aby zamknąć i zapisać dane”.
Teraz, aby znaleźć zapisane dane, przejdź do folderu Przetwarzanie Temp_Hum_F_3_1 lub Temp_Hum_C_3_1 (do tej pory powinieneś być w stanie znaleźć to samodzielnie) otwórz go i znajdź folder Dane. Otwórz to i powinieneś zobaczyć plik.csv nazwany tak, jak data i godzina zamknięcia programu (przykład 1-10-18--22-30-16.csv oznacza 10 stycznia 2018 22:30:16). Otwórz to za pomocą programu Excel (lub odpowiednika arkusza kalkulacyjnego Open Office). Powinieneś zobaczyć coś takiego jak schemat. Kolumny daty, godziny, czasu pracy, temperatury i wilgotności z danymi. Możesz teraz wykreślić dane za pomocą programu Excel lub cokolwiek chcesz z nim zrobić. (Uwaga: jeśli spojrzysz na pierwszy wpis danych, dane dotyczące temperatury i wilgotności nie są poprawne, jest to normalne i jest to tylko błąd przy pierwszym uruchomieniu programu)
OK tak!!!!!
Zrobiłeś to
Jeśli masz jakieś pytania, opublikuj, a postaram się odpowiedzieć i pomóc.
Dzięki za pozostanie przy tym i powodzenia. Mam nadzieję, że to dopiero początek…..
Dalej dla mnie Bluetooth i prawdopodobnie Android….
Krok 13: Rozwiązywanie problemów
Problemy z Arduino
Jeśli otrzymasz kod błędu (pomarańczowy tekst na dole IDE), powinien to być jeden z następujących. Biblioteka „DHTlib” nie została poprawnie skopiowana
Port COM nie jest prawidłowo ustawiony
Czujnik nie został prawidłowo podłączony
Kod nie został poprawnie załadowany do IDE
Jeśli wszystkie Arduino wydają się działać w porządku, pamiętaj, aby otworzyć Monitor szeregowy i sprawdzić, czy dane są wyświetlane
Jeśli widzisz poprawne dane, oznacza to, że strona Arduino działa - Pamiętaj Zamknij monitor szeregowy przed rozpoczęciem przetwarzania, jeśli monitor szeregowy jest otwarty Przetwarzanie nie może odczytać danych.
Problemy z przetwarzaniem:
Zostaną one wyświetlone w dolnej części programu Przetwarzanie.
Jeśli pojawi się błąd opisujący „czcionka”, wróć do kroku 11 i załaduj czcionkę zgodnie z opisem.
Jeśli pojawi się błąd, który wygląda jak: Błąd, wyłączenie serialEvent() dla COM4 null- po prostu uruchom ponownie szkic Przetwarzanie, klikając strzałkę, jak w kroku 12
Jeśli pojawi się błąd, który stwierdza: Błąd otwierania portu szeregowego - spróbuj zmienić linie 32-34 na coś takiego, w którym „COM4” pasuje do portu COM w szkicu Arduino
myPort = newSerial(this, "COM4", 9600);//Port myPort.bufferUntil('\n')//czekaj, aż serial będzie miał dane
Zalecana:
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD - Symulacja rejestratora danych DHT11 w Proteus: 5 kroków
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD | Symulacja rejestratora danych DHT11 w Proteus: Wstęp: cześć, tu Liono Maker, tutaj link do YouTube. Tworzymy kreatywne projekty z Arduino i pracujemy na systemach wbudowanych.Data-Logger: Rejestrator danych (również rejestrator danych lub rejestrator danych) to urządzenie elektroniczne, które rejestruje dane w czasie w
Monitorowanie temperatury i wilgotności za pomocą ESP-01 i DHT oraz chmury AskSensors: 8 kroków
Monitorowanie temperatury i wilgotności za pomocą ESP-01 i DHT oraz chmury AskSensors: W tej instrukcji nauczymy się monitorować pomiary temperatury i wilgotności za pomocą płyty IOT-MCU/ESP-01-DHT11 i platformy AskSensors IoT .Wybieram do tej aplikacji moduł IOT-MCU ESP-01-DHT11, ponieważ
Analiza danych dotyczących temperatury/wilgotności za pomocą Ubidots i Google-Sheets: 6 kroków
Analiza danych temperatury/wilgotności za pomocą Ubidots i Google-Sheets: W tym samouczku zmierzymy różne dane temperatury i wilgotności za pomocą czujnika temperatury i wilgotności. Dowiesz się również, jak przesłać te dane do Ubidots. Aby można było je analizować z dowolnego miejsca pod kątem różnych zastosowań. Również wysyłając
ThingSpeak, IFTTT, czujnik temperatury i wilgotności oraz arkusz Google: 8 kroków
ThingSpeak, IFTTT, Temp and Humidity Sensor oraz Google Sheet: W tym projekcie będziemy mierzyć temperaturę i wilgotność za pomocą czujnika temperatury i wilgotności NCD, ESP32 oraz ThingSpeak. Wyślemy również różne odczyty temperatury i wilgotności do Arkusza Google za pomocą ThingSpeak i IFTTT do analizy se
Sterowanie 8 przekaźnikami za pomocą NodeMCU i odbiornika podczerwieni za pomocą pilota WiFi i IR oraz aplikacji na Androida: 5 kroków (ze zdjęciami)
Sterowanie 8 przekaźnikami za pomocą NodeMCU i odbiornika IR za pomocą Wi-Fi i pilota IR oraz aplikacji na Androida: Sterowanie 8 przełącznikami przekaźnikowymi za pomocą nodemcu i odbiornika ir przez Wi-Fi i pilota ir oraz aplikację na Androida. Ich pilot działa niezależnie od połączenia Wi-Fi. TUTAJ