Te 2 popularne czujniki potrafiące mierzyć temperaturę i wilgotność otoczenia są chyba najczęściej wykorzystywane w projektach dla początkujących ze względu na swoją cenę i prostotę. Należy pamiętać, że często te same czujniki są oznaczane jako AM2301 dla DHT11 i AM2302 dla DHT22
Zanim jednak zdecydujesz się na zakup jednego z nich powinieneś wiedzieć jak dokładny pomiar można otrzymać używając każdego z niech w tym celu przygotowaliśmy tabelkę porównawczą:

DHT11:
- cena 7 zł
- zakres pomiaru temp. 0 – 50°C
- rozdzielczość: 1°
- błąd pomiaru: +/-1°C
- zakres pomiaru wilgotności 20 – 90%RH
- błąd pomiaru wilgotności 5%

DHT22:
- cena 17,5 zł
- zakres pomiaru temp. -40 do 80°C
- rozdzielczość: 0.1°C
- błąd pomiaru 0.5°C
- zakres pomiaru wilgotności 0-100%RH
- błąd pomiaru wilgotności 2%
pomiar wilgotności %RH wyraża wilgotność względną i jest ona zależna od temperatury. 100%RH w danej temperaturze oznacza skroplenie się wody w dużym uproszczeniu.
Jak można wyczytać z porównania na górze DHT11 może jest tani ale też bardzo niedokładny. Pokazując nam temperaturę 20°C równie dobrze w pomieszczeniu może być 18°C lub 22°C – jest to spora różnica, którą można odczuć na własnej skórze więc tam gdzie potrzebujemy odczytów dokładnych do 0.5°C konieczny będzie zakup DHT22.
Każdy z czujników posiada 4 nóżki i może być zasilany napięciem z przedziału od 3.3V do 5.5V – bez problemu możemy je zasilić bezpośrednio z portów Arduino czy innego mikrokontrolera.
1 nóżkę od lewej podpinamy do napięcia, 2 nóżkę podpinamy do portu w mikrokontrolerze, na którym odczytujemy wskazania czujnika, 3 nóżka nie jest tylko do ozdoby i nie jest do niczego podpięta, 4 nóżkę wpinamy do masy.

Poniżej podajemy kod pozwalajacy odczytać temperaturę i wilgotność za pomocą Arduino. Do tego celu użyjemy biblioteki dla DHT od Adafruit. WAŻNE: nie instalujemy najnowszej wersji biblioteki tylko 1.2.3
#include <DHT.h> //importujemy biblioteke
DHT dht22(8,DHT22); //w nawiasie 8 - to pin arduino podpięty do czujnika, a DHT22 to typ czujnika, wpisujemy DHT11 jak używamy DHT11
void setup() {
Serial.begin(9600); //odpalamy komunikacje serial monitor
}
void loop() {
//funkcja oczytu temperatury
float temp = dht22.readTemperature(); //float ponieważ DHT22 podaje nam wynik z dokładnością do 0.1 miejsca
//funkcja odczytu wilgotnosci
float hum = dht22.readHumidity();
Serial.println("Temperatura:");
Serial.println(temp);
Serial.println("Wilgotnosc:");
Serial.println(hum);
delay(2000); //opóźnienie należy dać czas odczytać wynik z czujnika dla DHT11 conajmniej 1000ms dla DHT22 conajmniej 500ms
}
Czujniki można zakupić w naszym sklepie:
czujnik wilgotności i temperatury DHT22
czujnik wilgotności i temperatury DHT11
Krok po kroku objaśniamy kod i pokazujemy jak podpiąć więcej niż 1 czujnik do Arduino na naszym kanale YouTube:
2 Comments
Zostaw komentarz
Krzysztof
Mam pytanie A właściwie problem mój czujnik DTH11 pokazuje temperature i wilgotnosc z rzedu 700o i 800% macie pomysł co może być nie tak ,uklad esp01 pin gpio0
admin
Panie Krzysztofie, przydałby się kod programu, bez tego to wróżenie z fusów