[Aplikacja ARDUINO] Czujniki wilgotności i temperatury DHT11 i DHT22

Sensory umożliwiające badanie warunków środowiskowych są powszechnie spotykane w naszym codziennym życiu. Najczęściej mierzonymi parametrami są temperatura oraz wilgotność powietrza. Dzięki scalonym sensorom, takim jak rodzina czujników DHTxx, pomiar tych wartości jest bardzo łatwy i stosunkowo tani.

 

 

 

DHT11 i DHT22 to czujniki wilgotności i temperatury, w których mierzone wartości są konwertowane do postaci cyfrowej, a komunikacja z systemem mikroprocesorowym odbywa się z wykorzystaniem interfejsu szeregowego. Oba czujniki są stosunkowo wolne i niezbyt dokładne, ale ich parametry są zwykle wystarczające w typowych hobbystycznych zastosowaniach. Na fotografii 1 pokazano czujnik DHT11, natomiast na fotografii 2 znajduje się sensor zgodny z DHT22 o oznaczeniu AM2302. Podstawowe parametry tych czujników zebrano w tabeli 1. Ze względu na zakresy pomiarowe, DHT11 nie nadaje się do monitorowania warunków atmosferycznych, w tych zastosowaniach doskonale sprawdzi się natomiast sensor DHT22.

 

 

Fot. 1. Sensor DHT11

 

Fot. 2. Sensor AM2302 (odpowiednik DHT22)

Tab. 1. Podstawowe parametry sensorów DHT11 i DHT22

DHT11 DHT22
Napięcie zasilania 3…5,5 V 3,3…6 V
Średni pobór prądu Podczas pomiaru 0,5…2,5 mA 1…1,5 mA
Czuwanie 100…150 µA 40…50 µA
Pomiar temperatury Zakres 0…+50°C -40…+80°C
Rozdzielczość 1°C 0,1°C
Dokładność 1°C 0,2°C
Pomiar wilgotności Zakres 20…90% 0…100%
Rozdzielczość 1% 0,1%
Dokładność 4% 2%
Czas pomiaru 1 s 2 s

 

Oba czujniki znajdują się w 4-wyprowadzeniowych obudowach i do pracy wymagają, oprócz dołączenia napięcia zasilania, podciągnięcia linii sygnałowej do plusa zasilania przez rezystor o wartości 4,7…10 k?, co pokazano na rysunku 3. Przykład dołączenia sensora do płytki Arduino Uno z wykorzystaniem płytki stykowej, rezystora 4,7 k? oraz przewodów CAB-M-M pokazano na fotografii 4.

 

 

Rys. 3. Schemat dołączenia sensorów DHT11/22 do systemu mikroprocesorowego

Fot. 4. Sposób dołączenia sensora do zestawu Arduino Uno

 

Dane z sensorów są odczytywane szeregowo, opis transmisji jest dostępny w kartach katalogowych. W Internecie można znaleźć wiele bibliotek umożliwiających korzystanie z tych czujników. W najlepszej sytuacji są jednak użytkownicy Arduino – dla tego środowiska powstały najlepiej dopracowane biblioteki, np. DHTLib czy DHT-sensor-library. Po pobraniu odpowiednich bibliotek, należy je zainstalować co opisano w artykule Arudino – jak zaimportować biblioteki?.

Program odczytujący zmierzone dane przez sensor DHT22 i wysyłający wyniki pomiarów przez port szeregowy do komputera pokazano na listingu 1. W przypadku Arduino Uno jest wykorzystywany zamontowany na płytce konwerter UART-USB widziany w komputerze osobistym jako wirtualny port szeregowy. Wynik działania programu pokazano na rysunku 5. Na rysunku 6 zaznaczono miejsce w programie, w którym określa się typ dołączonego sensora.

 

 

Rys. 5. Prezentacja zmierzonych wartości w terminalu komputera

 

Rys. 6. W tym miejscu definiuje się typ dołączonego sensora

 

 

List. 1. Program wysyłający przez port szeregowy wartości zmierzone przez sensor DHT22

 

 

Do pobrania

O autorze