Temperatur und Luftfreuchtigkeit messen DHT22 RHT03 und Arduino

Arduino und DHT22: Temperatur und Luftfeuchtigkeit messen

Der DHT22-Sensor ist eine einfache und kostengünstige Möglichkeit, um Temperatur und Luftfeuchtigkeit zu messen. Es handelt sich um einen kalibrierten Sensor, der über eine One-Wire Schnittstelle (MaxDetect), also eine Datenleitung mit nur einem Kabel, angesprochen wird.

Schaltung: Arduino und DHT22

Temperatur und Luftfeuchtigkeit messen mit dem DHT22 – Schaltung mit Fritzing erzeugt
Temperatur und Luftfeuchtigkeit messen – Schaltung mit Fritzing erzeugt

Der Sensor benötigt außer einem Widerstand (4,7kΩ) keine weiteren Bauteile und arbeitet mit 5V. Legt man den Sensor mit den Gittern vor sich hin, ist der linke Pin der 5V+ Anschluss, der daneben der Datenpin, der noch mit einem Widerstand (4,7kΩ) mit 5V+ verbunden ist. Der ganz rechte Pin ist der GND. Pin 3 hat keine Funktion und muss nicht weiter beachtet werden.

Bauteile

Die Programm-Bibliothek, die man benötigt, heißt DHT sensor library. Am einfachsten lässt sie sich installieren, indem man im Menü auf Sketch>Bibliothek-Einbinden>Bibliotheken verwalten klickt. Oben im Fenster befindet sich ein Eingabefeld, in dem man einfach DHT eingibt. Jetzt kann man die DHT sensor library anklicken und auf Installieren drücken. (Mehr Infos dazu unter: Bibliotheken in Arduino installieren – Danke an Bernd für den Hinweis.)


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


Beispielcode

Dieses Programm liest Temperatur und Luftfeuchtigkeit aus und stellt sie auf dem LCD-Display dar. Der Sensor kann nur alle ein bis zwei Sekunden ausgelesen werden. Darüber hinaus benötigt er eine Aufwärmphase von zwei Sekunden.

#include <LiquidCrystal.h>
#include <DHT.h>

#define DHTPIN 8
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);                                  
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
float humidity, temperature;                               
 
void setup() {
  dht.begin();
  lcd.begin(16, 2);
}

void loop() {
  humidity = dht.readHumidity();                           
  temperature = dht.readTemperature();                     
  delay(2000);
  lcd.setCursor(8, 0);
  lcd.print("Temperatur:");
  lcd.setCursor(8, 1);
  lcd.print("Humidity:");
  lcd.setCursor(0, 0);
  lcd.print(temperature);
  lcd.setCursor(0, 1);
  lcd.print(humidity);
}

Mit diesem Beispielcode lässt sich schon einiges anfangen. Die Bibliothek selbst bietet aber noch eine Reihe weiterer nützlicher Funktionen, wie z.B. der Fehlerauswertung des Sensors. Wer sich dafür interessiert, soll mal in der Arduino-Software das Beispiel Datei>Beispiele>DHT sensor library>Serial öffnen.


Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

  • Die beliebtesten Arduino-Projekte von StartHardware
  • Inklusive Schaltplan, Beschreibung und Code
  • Arduino-Schnellstart-Kapitel
  • Kompakter Programmierkurs