Spisu treści:

Wyświetlanie temperatury i wilgotności oraz zbieranie danych za pomocą Arduino i przetwarzania: 13 kroków (ze zdjęciami)
Wyświetlanie temperatury i wilgotności oraz zbieranie danych za pomocą Arduino i przetwarzania: 13 kroków (ze zdjęciami)

Wideo: Wyświetlanie temperatury i wilgotności oraz zbieranie danych za pomocą Arduino i przetwarzania: 13 kroków (ze zdjęciami)

Wideo: Wyświetlanie temperatury i wilgotności oraz zbieranie danych za pomocą Arduino i przetwarzania: 13 kroków (ze zdjęciami)
Wideo: Podstawy programowania mikrokontrolerów 2024, Lipiec
Anonim
Wyświetlanie temperatury i wilgotności oraz zbieranie danych za pomocą Arduino i przetwarzania
Wyświetlanie temperatury i wilgotności oraz zbieranie danych za pomocą Arduino i przetwarzania

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ć:

Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
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

Podłącz Arduino do DHT11
Podłącz Arduino do DHT11
Podłącz Arduino do DHT11
Podłącz Arduino do DHT11
Podłącz Arduino do DHT11
Podłącz Arduino do DHT11
Podłącz Arduino do DHT11
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
Pobierz Arduino IDE

Pobierz Arduino IDE i zainstaluj na komputerze

www.arduino.cc/en/Main/Software

Krok 4: Podłącz Arduino do komputera

Podłącz Arduino do komputera
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ę
Załaduj bibliotekę
Załaduj bibliotekę
Załaduj bibliotekę
Załaduj bibliotekę
Załaduj bibliotekę
Załaduj bibliotekę
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 kod Arduino
Pobierz 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

Załaduj kod na Arduino
Załaduj kod na Arduino
Załaduj kod na Arduino
Załaduj kod na Arduino
Załaduj kod na Arduino
Załaduj kod na Arduino
Załaduj kod na Arduino
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

  1. Biblioteka „DHTlib” nie została poprawnie skopiowana
  2. Port COM nie jest prawidłowo ustawiony
  3. Czujnik nie został prawidłowo podłączony
  4. 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

Pobierz i zainstaluj Przetwarzanie
Pobierz i zainstaluj Przetwarzanie
Pobierz i zainstaluj Przetwarzanie
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

Kod przetwarzania
Kod przetwarzania

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

Czcionka w przetwarzaniu
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

Kończąc
Kończąc
Kończąc
Kończąc
Kończąc
Kończąc
Kończąc
Kończąc

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

Rozwiązywanie problemów
Rozwiązywanie problemów
Rozwiązywanie problemów
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: