Arduino i obsługa czujnika temperatury i wilgotności DHT22
Moduł DHT22 służy do pomiaru temperatury oraz wilgotności powietrza. Prezentowany przykład pokazuje w jaki sposób wykorzystać jego możliwości za pośrednictwem Arduino.
W przykładzie zostały zastosowane następujące elementy:
Podłączenie DHT22 z Arduino:
W celu odczytania wartości temperatury i wilgotności z czujnika należy połączyć układ z Arduino w następujący sposób:
Pin DHT22 | Pin Arduino |
---|---|
VCC | 5 V |
DATA | 2 |
GND | GND |
W przypadku samego czujnika bez modułu, należy dodatkowo podciągnąć linię danych do Vcc przez rezystor, w tym przypadku 4,7 kΩ (jak na poniższym schemacie). |
Schemat połączenie czujnika DHT22 z Arduino Uno.
Schemat połączenie czujnika DHT22 (wersja z modułem) z Arduino Uno.
Program do Arduino
Na początku bibliotekę należy dodać do środowiska Arduino (Szkic -> Include Library -> Add .ZIP Library...).
W przykładzie został wykorzystany następujący kod:
- #include "dht.h"
- dht DHT22;
- #define DHT22PIN 2 //przypisanie pinu 2 Arduino jako odczyt z sensora
- void setup()
- {
- Serial.begin(115200); //inicjalizacja monitora szeregowego
- Serial.println("Program testowy DHT22");
- Serial.println();
- }
- void loop()
- {
- int chk = DHT22.read(DHT22PIN); //sprawdzenie stanu sensora, a następnie wyświetlenie komunikatu na monitorze szeregowym
- Serial.print("Stan sensora: ");
- switch (chk)
- {
- case DHTLIB_OK:
- Serial.print("OKt");
- break;
- case DHTLIB_ERROR_CHECKSUM:
- Serial.println("Błąd sumy kontrolnej");
- break;
- case DHTLIB_ERROR_TIMEOUT:
- Serial.println("Koniec czasu oczekiwania - brak odpowiedzi");
- break;
- default:
- Serial.println("Nieznany błąd");
- break;
- }
- Serial.print("Wilgotnosc (%): "); //wyświetlenie wartości wilgotności
- Serial.print((float)DHT22.humidity, 2);
- Serial.print("tt");
- Serial.print("Temperatura (C): "); //wyświetlenie temperatury
- Serial.println((float)DHT22.temperature, 2);
- delay(1000); //opóźnienie między kolejnymi odczytami - 1 s
- }
Wynik działania tego programu możemy zaobserwować na screenie:
Zrzut ekranu szeregowego monitora.