I_R_W15_M03 Przykładowe projekty
Czujnik temperatury i wilgotności DHT22

Czujnik DHT22 wyróżnia się wśród podobnych elementów z tej serii głównie pod względem zakresów pomiarowych oraz dokładności wskazań. Jeśli chodzi o temperaturę, jest to zakres od -40Indeks górny OOC do +80Indeks górny OOC i całkiem duża precyzja pomiaru oraz rozdzielczość na poziomie odpowiednio: +/- 0,5Indeks górny OOC i 0,1Indeks górny OOC. Czas reakcji czujnika na nagłe zmiany temperatury to jedynie dwie sekundy, co umożliwia pracę nawet w bardzo dynamicznych systemach sterowania. Czujnik DHT22 działa w pełnym zakresie wilgotności względnej, czyli od 0% RH do 100% RH, zapewniając dokładność +/- 2% RH i rozdzielczość 0,1% RH. Całość (zarówno przetworniki, jak i układ pomiarowy wraz z cyfrowym interfejsem komunikacyjnym) mieści się w niewielkiej, perforowanej obudowie z tworzywa sztucznego o wymiarach zaledwie 20 x 15,1 x 7,7 mm.
Komunikacja z czujnikiem DHT22
Czujnik temperatury i wilgotności DHT22 komunikuje się z nadrzędnym mikrokontrolerem za pomocą jednoliniowego interfejsu szeregowego. Transmisję danych inicjuje master (mikrokontroler), wysyłając sekwencję stanów logicznych: L → H. Wtedy czujnik rozpoczyna nadawanie danych, zaczynając od najstarszego bitu. Ramka ma długość 40 bitów i zawiera następujące pola danych: części całkowitą i ułamkową odczytu wilgotności (po osiem bitów), części całkowitą i ułamkową odczytu temperatury (również po osiem bitów) oraz sumę kontrolną (jeden bajt). Wartości stanów logicznych (bity 0 i 1) są kodowane jako dwufazowe impulsy o zróżnicowanym czasie trwania (stan L przez 50 µs i następujący po nim stan H przez czas 26‑28 µs oznacza logiczne zero; logiczna jedynka jest kodowana przez impuls „H” o czasie trwania 70 µs). Aby na szynie danych nie doszło do kolizji, linia GPIO mikrokontrolera przeznaczona do pracy w roli wejścia/wyjścia danych powinna być skonfigurowana jako wyjście typu otwarty dren (OD).
Połączenie z Arduino
Podłącz układ według poniższego schematu, wgraj kod i przetestuj jego działanie.

VCC – 5V Arduino
SDA – dowolny pin cyfrowy Arduino
GND – GND Arduino
Program testowy
Do poprawnego działania czujnika potrzebna jest biblioteka DHT.
Biblioteka do obsługi czujnika:
Po pobraniu biblioteki należy ją zainstalować w Arduino IDE.
Najpierw dołączamy bibliotekę DHT.
Następnie tworzymy nowy obiekt.
Definiujemy pin Arduino, do którego wpięty jest czujnik.
W pętli setup() inicjujemy połączenie z monitorem portu szeregowego z prędkością 115 200 bodów i wyświetlamy tekst startowy programu.
W pętli loop() sprawdzamy stan sensora i wyświetlamy odpowiedni komunikat.
Ostatnia rzecz, jaką musimy zrobić, to wyświetlić wartości pomiarowe.
Po uruchomieniu monitora portu szeregowego należy zmienić prędkość na 115 200 bodów. Po zmianie prędkości nasze informacje będą poprawnie wyświetlane.
Jeśli Arduino nie wykryje czujnika, pojawi się komunikat o braku odpowiedzi.