Nr.16 – DHT11 und DHT22

Inhaltsverzeichnis

DHT11 Temperatur- und Luftfeuchtigkeitssensor am Arduino Mikrocontroller

Die Sensoren DHT11 und DHT22 bieten die Möglichkeit, mit dem Arduino die Luftfeuchtigkeit und Temperatur zu messen. Die Messwerte können dann über den serial monitor oder einem LCD angezeigt werden. Der DHT11 Sensor misst im Luftfeuchtigkeitsbereich von ca. 20-80 % (5 % Genauigkeit) und im Temperaturbereich von ca. 0-50 °C (ca. 2 °C Genauigkeit).

Aufgabe: Luftfeuchtigkeit und Temperatur mit dem DHT11 messen und auf dem seriellen Monitor anzeigen lassen.

Der Schaltplan (DHT11 am Arduino UNO)

In unserem Beispiel sind die vier Kontakte des DHT11 Sensors mithilfe einer kleinen Platine auf drei Kontakte zusammengeführt worden. Für DHT11 Sensoren ohne diese Platine kann die Verkabelung aus der Erweiterung zum DHT22 entnommen werden.

Mit Blick auf die Vorderseite des DHT11 wird der linke Kontakt mit Pin 2, der mittlere mit 5V und der rechte mit GND am Mikrocontroller verbunden.

DHT11 Sensor am Funduino UNO R3 (alte Version)

Der Programmcode (DHT11 am Arduino UNO)

Für den Code wird die DHT-sensor-library von Adafruit benötigt. Diese kann man mit der „Bibliothek einbinden“ Funktion in der Arduino Software finden. Eine genauere Erläuterung findest du hier. 

Für die Verwendung des DHT11 Sensors werden zwei Bibliotheken benötigt. Diese findest du hier und hier.

#include "DHT.h" //DHT Bibliothek laden

#define DHTPIN 2 //Der Sensor wird an PIN 2 angeschlossen    

#define DHTTYPE DHT11    // Es handelt sich um den DHT11 Sensor

DHT dht(DHTPIN, DHTTYPE); //Der Sensor wird ab jetzt mit „dth“ angesprochen

void setup() {
  Serial.begin(9600); //Serielle Verbindung starten

  dht.begin(); //DHT11 Sensor starten
}

void loop() {
  
  delay(2000); //Zwei Sekunden Vorlaufzeit bis zur Messung (der Sensor ist etwas träge)

  
  float Luftfeuchtigkeit = dht.readHumidity(); //die Luftfeuchtigkeit auslesen und unter „Luftfeutchtigkeit“ speichern
  
  float Temperatur = dht.readTemperature();//die Temperatur auslesen und unter „Temperatur“ speichern
  
  Serial.print("Luftfeuchtigkeit: "); //Im seriellen Monitor den Text und 
  Serial.print(Luftfeuchtigkeit); //die Dazugehörigen Werte anzeigen
  Serial.println(" %");
  Serial.print("Temperatur: ");
  Serial.print(Temperatur);
  Serial.println(" Grad Celsius");

}

Öffnet man nun den seriellen Monitor, werden die Werte für die Luftfeuchtigkeit und Temperatur nacheinander angezeigt.

DHT22 Temperatur- und Luftfeuchtigkeitssensor am Arduino Mikrocontroller

Auch mit dem DHT22 kann die Luftfeuchtigkeit und Temperatur gemessen werden. Dieser Sensor ist etwas genauer und hat größere Messbereiche. Bei der Luftfeuchtigkeit misst der Sensor im Bereich von 0-100 % (2-5 % Genauigkeit) und bei der Temperatur im Bereich von -40 bis 125 °C (0,5 °C Genauigkeit).

Aufgabe: Die Luftfeuchtigkeit und Temperatur mit dem DHT22 messen und auf dem seriellen Monitor anzeigen lassen.

Die Verkabelung (DHT22 Sensor am Arduino UNO)

Der Programmcode (DHT22 am Arduino UNO)

Für den Code wird die DHT-sensor-library von Adafruit benötigt. Diese kann man mit der „Bibliothek einbinden“ Funktion in der Arduino Software finden. Eine genauere Erläuterung findest du hier. 

Für die Verwendung des DHT22 Sensors werden zwei Bibliotheken benötigt. Diese findest du hier und hier.

#include "DHT.h" //DHT Bibliothek laden

#define DHTPIN 2 //Der Sensor wird an PIN 2 angeschlossen    

#define DHTTYPE DHT22    // Es handelt sich um den DHT22 Sensor

DHT dht(DHTPIN, DHTTYPE); //Der Sensor wird ab jetzt mit „dth“ angesprochen

void setup() {
  Serial.begin(9600); //Serielle Verbindung starten

  dht.begin(); //DHT22 Sensor starten
}

void loop() {
  
  delay(2000);//Zwei Sekunden bis zur Messung warten damit der Sensor etwas //messen kann weil er relativ langsam ist

  
  float Luftfeuchtigkeit = dht.readHumidity(); //die Luftfeuchtigkeit auslesen und unter „Luftfeutchtigkeit“ speichern
  
  float Temperatur = dht.readTemperature();//die Temperatur auslesen und unter „Temperatur“ speichern
  
  Serial.print("Luftfeuchtigkeit: "); //Im seriellen Monitor den Text und 
  Serial.print(Luftfeuchtigkeit); //die Dazugehörigen Werte anzeigen
  Serial.println(" %");
  Serial.print("Temperatur: ");
  Serial.print(Temperatur);
  Serial.println(" Grad Celsius");

}

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft 10% Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 3.500 Artikel sofort verfügbar!
  • Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE