W poprzednim artykule przedstawiliśmy DHT11 , kolejny z dostępnych czujników temperatury i wilgotności. W tym nowym artykule opowiemy Ci wszystko, co musisz wiedzieć o DHT22 . Generalnie, na pierwszy rzut oka, jedyną różnicą między DHT11 a DHT22 jest to, że pierwszy ma niebieską obudowę, a drugi białą. W rzeczywistości oba należą do tej samej rodziny czujników.
DHT11 to młodszy brat , co oznacza, że ma pewne ograniczenia lub mniej funkcji w porównaniu z DHT22, a co za tym idzie, wyższą cenę. DHT11 może być używany do projektów, w których nie są wymagane pomiary o wysokiej precyzji, natomiast jeśli zależy Ci na większej dokładności, powinieneś wybrać DHT22. DHT22 również nie jest szczególnie precyzyjny, ale oferuje więcej niż akceptowalną wydajność w przypadku większości projektów DIY.
Co to jest DHT22?
DHT22 to czujnik temperatury i wilgotności o wydajności dorównującej modelom o wysokiej precyzji . Jest łatwo dostępny w sklepach specjalistycznych i dużych sieciach handlowych . Dzięki temu można zintegrować wszystkie funkcje w jednym urządzeniu, eliminując potrzebę stosowania oddzielnych czujników temperatury i wilgotności.
Można go znaleźć luzem lub w modułach specjalnie zaprojektowanych dla Arduino ; to znaczy DHT22 zamontowany na płytce PCB, gotowy do użycia, bez konieczności dodawania rezystorów podciągających itp. Do tego momentu jest dość podobny do DHT11. Dodatkowo, dzięki skalibrowanemu sygnałowi cyfrowemu, uzyskasz wysoką niezawodność i stabilność pomiarów.
Pinout, funkcje i arkusz danych
Na powyższym obrazku można zobaczyć porównanie wyprowadzeń DHT22 i DHT11 . Jak widać, są one identyczne pod względem pinów. Dlatego ich montaż będzie dokładnie taki sam, a co najważniejsze, można w dowolnym momencie wymienić DHT11 na DHT22 i odwrotnie w projekcie, bez konieczności wprowadzania zbyt wielu zmian.
Pamiętaj, że musisz użyć 3 pinów: GND, Vcc i Data . Pin nr 3 jest nieużywany i wyłączony w modułach, co oznacza, że zobaczysz tylko trzy piny. Aby uzyskać więcej informacji na temat zakupionego produktu, zapoznaj się z kartami katalogowymi konkretnego modelu i producenta. Chociaż większość wartości może wydawać się taka sama, mogą występować niewielkie różnice. Najważniejsze parametry techniczne to:
- Zasilanie od 3,3 V do 6 V.
- Pobór prądu 2,5 mA
- Cyfrowy sygnał wyjściowy
- Zakres temperatur od -40ºC do 125ºC
- Dokładność pomiaru temperatury przy 25ºC z odchyleniem 0.5ºC
- Rozdzielczość pomiaru temperatury to 8 bitów, 0,1ºC
- Wilgotność może mierzyć od 0% do 100% wilgotności względnej
- Dokładna wilgotność 2-5% RH dla temperatur pomiędzy 0-50ºC
- Rozdzielczość wynosi 0,1% RH, nie może uchwycić odchyleń poniżej tej
- Częstotliwość próbkowania 2 próbek na sekundę: 2 Hz
- Arkusz danych Sparkfun
Jeśli czytałeś naszą instrukcję obsługi czujnika DHT11, wiesz, że przesyła on dane cyfrowo przez pin danych, co stanowi dodatkową zaletę tych czujników. Nie ma potrzeby pisania kodu w środowisku Arduino IDE, aby konwertować sygnały analogowe na wartości czytelne dla człowieka; sygnał cyfrowy można przetworzyć bezpośrednio, aby przekonwertować go na stopnie lub procentową wartość wilgotności względnej.
Po części dlatego jest tak precyzyjny, ponieważ przesyłana przez niego 40-bitowa ramka zapewnia większą dokładność. Zawiera nawet bity parzystości, które wykrywają błędy sygnału. W przypadku sygnału analogowego nie ma takiej możliwości, poza tym sygnały analogowe są bardzo wrażliwe na wahania napięcia…
Integracja z Arduino
Podobnie jak w przypadku DHT11, instalacja DHT22 z Arduino jest dość prosta . Pamiętaj, że jeśli używasz go samodzielnie, bez montażu na module, a czujnik jest daleko (lub jeśli używasz niższego napięcia do zasilania), będziesz musiał użyć rezystora podciągającego do mostkowania pinów Vcc i Data. Jeśli jednak używasz modułu, możesz pominąć ten krok i podłączyć go bezpośrednio, jak pokazano na powyższym obrazku. Pamiętaj również, że nieużywany pin NC nie będzie obecny w module, co jeszcze bardziej ułatwi uniknięcie pomyłek.
Wystarczy podłączyć GND i Vcc do odpowiednich złączy na płytce Arduino , czyli w tym przypadku oznaczonych jako GND i 5V. Pin danych można podłączyć do dowolnego wejścia cyfrowego Arduino; w naszym przypadku użyliśmy pinu 7. Jeśli używasz innego pinu, pamiętaj o dostosowaniu kodu do konkretnych połączeń komponentów (wydaje się to oczywiste, ale jest to bardzo częsty błąd podczas kopiowania i wklejania kodu do środowiska Arduino IDE).
Kod w Arduino IDE
Skoro już masz połączenie, przyjrzyjmy się prostemu przykładowi kodu dla Arduino IDE . Pamiętaj, że mamy przewodnik dla początkujących Arduino w formacie PDF, który możesz pobrać bezpłatnie tutaj , co może okazać się pomocne. Ponadto, jeśli przeczytałeś nasz artykuł o DHT11, pamiętasz, że istniała biblioteka do obsługi czujników DHTxx ; dlatego ta sama biblioteka, która została użyta dla DHT11, może być również użyta dla DHT22.
Gdy biblioteka jest już zainstalowana i wszystko jest gotowe, czas wprowadzić kod , który zaprogramuje mikrokontroler Arduino, aby projekt działał. Oto prosty przykład:
#include "DHT.h"
// Ejemplo sencillo de uso para el DHT22
const int DHTPin = 7;
DHT dht(DHTPin, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("Test DHT22");
dht.begin();
}
void loop() {
// Tiempo de espera entre tomas de mediciones de 2 segundos.
delay(2000);
// Lee temperatura y humedad durante unos 250ms
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Fallo en la lectura");
return;
}
Serial.print("Humedad relativa: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C ");
}
Mam nadzieję, że nasze poradniki dotyczące DHTxx okazały się pomocne , mimo że zazwyczaj realizowane projekty są nieco bardziej złożone. Niemniej jednak kody te, pokazujące działanie czujnika, są dość pomocne przy późniejszej modyfikacji kodu i dodawaniu tego, czego chcesz…