Kurs Arduino #18: Obsługa czujnika temperatury i wilgotności DHT11/DHT21/DHT22

Kurs Arduino #18: Obsługa czujnika temperatury i wilgotności DHT11/DHT21/DHT22

3. Przykładowy program #1: odczyt temperatury i wilgoci

Program będzie miał za zadanie wysyłać do terminala dane o wilgotności, temperaturze i indeksie temperatury.

Schemat:

schemat

Program:

Program działa następująco. Importujemy bibliotekę DHT.h i tworzymy instancję dla czujnika o nazwie czujnik i konfigurujemy go dla DHT11 podłączonego do pinu 10. Definiujemy zmienne do odbioru danych jako float (liczba zmiennoprzecinkowa) Następnie w pętli startowej uruchamiamy UART do obioru danych oraz sam czujnik. Teraz w pętli głównej programu przypisujemy zmiennym kolejno: odczyt wilgotności, temperatury oraz indeksu temperatury. Następnie otrzymane informacji drukujemy na monitor portu szeregowego, a następnie odczekujemy 2 sekundy.

Efekt powinniśmy uzyskać taki:

odczyt_poprawny

Wszystko wydaje się w porządku, ale gdy wystąpi jakiś błąd to będziemy otrzymywać takie komunikaty:

odczyt_NaN

Jak widać, zamiast wartości zostaje zwracane nan. NaN, a dokładniej Not-a-Number, czyli zwrócona wartość nie jest liczbą. Możemy ją głównie spotkać przy zmiennych typu int,float,double itp. gdzie zwracaną wartością są same liczby. Aby uniknąć błędu w takiej postaci możemy go ładnie zastąpić komunikatem. W tym celu wystarczy sprawdzić, czy dla tych zmiennych zwróconą wartością jest NaN. Można to wykonać np. w taki sposób:

Wtedy powinniśmy otrzymać taki komunikat:

 

odczyt_info

Tyle o tym programie. Teraz rozszerzymy nasz program o wyświetlacz.

4. Przykładowy program #2: Łączymy czujnik z LCD HD44780

Schemat:

18.2

Program:

Efekt działania programu

Materiał do pobrania do tej części kursu:

Download-icon

 

 

 

Podsumowanie:

Po tej części kursu powinieneś umieć:

  • rozróżniać moduły DHT11/21/22
  • napisać program do odczytu temperatur i wilgotności powietrza

Jeżeli chcesz być informowany na bieżąco o nowych częściach kursu to kliknij „Lubię to!” bądź subskrybuj naszą stronę, aby otrzymywać na adres e-mail nowości ze strony. Jeżeli masz jakieś pytania to śmiało zadawaj je na forum ; )