Arduino – czujnik wilgotności i temperatury DHT11

DHT11 to popularny czujnik temperatury i wilgotności powietrza z interfejsem cyfrowym, jednoprzewodowym. Występuje w 2 wersjach – jako sam czujnik, do którego musimy podłączyć jeszcze rezystor oraz z płytką z wbudowanym już opornikiem.

Podstawowe parametry:
  • Wbudowany termometr
    • Zakres pomiarowy: 0 – 50 °C
    • Dokładność: ±2°C
  • Czujnik wilgotności:
    • Zakres pomiarowy: 20 – 95%RH
    • Dokładność  ±5%RH

Aby odczytać wartości temperatury oraz wilgotności powietrza na wyświetlaczy LCD potrzebujemy:

  • wyświetlacz LCD
  • czujnik DHT11
  • płytka prototypowa
  • arduino
  • przewody połączeniowe
  • potencjometr 10k

Powyższy schemat przedstawia podłączenie układu. Wykorzystany został czujnik bez wbudowanego rezystora, ale jeżeli posiadamy drugą wersję to pomijamy opornik i wyjście sygnałowe podłączamy bezpośrednio do pinu 8 w arduino.

Gdy już wszystko mamy podłączone nadszedł czas na wgranie kodu do arduino. Poniżej zamieszczony jest sketch, który umożliwia uruchomienie układu.. Przed przystąpieniem do wgrywania należy sprawdzić czy mamy zainstalowane biblioteki  dht.h  oraz  LiquidCrystal.h . Aby tego dokonać musimy na górnym pasku nacisnąć Szkic, potem Dołącz bibliotekę i Zarządzaj bibliotekami. Następnie wyszukujemy kolejno dwie wyżej wspomniane biblioteki i instalujemy je.

 

#include <dht.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

dht DHT;

#define DHT11_PIN 8

void setup(){
lcd.begin(16, 2);
}

void loop()
{
int chk = DHT.read11(DHT11_PIN);
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(DHT.temperature);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Humidity: ");
lcd.print(DHT.humidity);
lcd.print("%");
delay(1000);
}

Po wgraniu i uruchomieniu na wyświetlaczu powinien ukazać się odczyt temperatury, a pod nim wilgotność powierza. Czujnik mierzy wilgotność z dokładnością do ok. 1%. Świetnie sprawdzi się do monitorowania powietrza w domu.

 

Rate this post

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *