Bei­spiel­pro­gramm DHT11/DHT22/DHT20


Den Sen­sor DHT gibt es in drei Versionen:

DHT11/DHT22 mit digi­ta­ler Schnitt­stel­le und DHT20 mit I²C-Anschluss

Ver­gleich DHT11/DHT22/DHT20

DHT11DHT22DHT20
Mess­be­reich Temperatur0 - +50°C-40 - +80°C-40 - +80°C
Auf­lö­sung Temperatur1°C0,1°C0,01°C
Mess­ge­nau­ig­keit Temperatur± 2 °C± 0,5 °C± 0,5 °C
Mess­be­reich Luftfeuchtigkeit20 - 90%0 - 100%0 - 100%
Auf­lö­sung Luftfeuchtigkeit1%0,1%0,024%
Mess­ge­nau­ig­keit Luftfeuchtigkeit± 5 %± 2 %± 3 %
Schnitt­stel­ledigi­taldigo­talI²C

Quel­len:

🔗Daten­blatt DHT22
🔗Daten­blatt DHT11
🔗Daten­blatt DHT20

 ⇒Ver­gleich Tem­pe­ra­tur-/ Luftfeuchtigkeitssensoren

Pin­be­le­gung:

DHT11
GND Daten 5V

DHT22
5V Daten GND

DHT20
SDA SCL GND 5V

Bei­spie­le für DHT11, DHT22 und DHT20 Sen­so­ren.
Die Pin­be­le­gung kann sich von der hier gezeig­ten unter­schei­den. Ach­te auf die Beschrif­tung auf dem Sensor!

Benö­tig­te Bibliotheken

DHT11/DHT22

DHT20

Der Seri­el­le Moni­tor zeigt Tem­pe­ra­tur und Luft­feuch­tig­keit an

So sieht es aus:

Das Pro­gramm für DHT11/DHT22

#include "DHT.h"

// DHT am digitalen Pin 8 (Arduino)
int SENSOR_DHT = 8;

// Sensortyp festlegen
// DHT22
// #define SensorTyp DHT22 

// DHT11
#define SensorTyp DHT11

// Sensor einen Namen zuweisen
DHT dht(SENSOR_DHT, SensorTyp); 

void setup() 
{
  Serial.begin(9600);
  
  // Sensor starten
  dht.begin();
}

void loop() 
{
  // Temperatur lesen 
  String Temperatur = String(dht.readTemperature());

  // replace -> . durch , ersetzen
  Temperatur.replace(".", ",");

  // Luftfeuchtigkeit lesen 
  String Luftfeuchtigkeit = String(dht.readHumidity());

  // replace -> . durch , ersetzen
  Luftfeuchtigkeit.replace(".", ",");

  // Anzeige im Seriellen Monitor
  Serial.println("Temperatur: " + Temperatur + " °C");
  Serial.println("Luftfeuchtigkeit: " + Luftfeuchtigkeit + " %");

  delay(2000);
}

Das Pro­gramm für DHT20

#include "DHT20.h"

DHT20 dht;

void setup() 
{
  Serial.begin(9600);
  
  Wire.begin();
  
  // Sensor starten
  dht.begin();
}

void loop() 
{
  // Daten lesen
  dht.read();

  // Temperatur lesen 
  String Temperatur = String(dht.getTemperature());

  // replace -> . durch , ersetzen
  Temperatur.replace(".", ",");

  // Luftfeuchtigkeit lesen 
  String Luftfeuchtigkeit = String(dht.getHumidity());

  // replace -> . durch , ersetzen
  Luftfeuchtigkeit.replace(".", ",");

  // Anzeige im Seriellen Monitor
  Serial.println("Temperatur: " + Temperatur + " °C");
  Serial.println("Luftfeuchtigkeit: " + Luftfeuchtigkeit + " %");

  delay(2000);
}

letz­te Aktua­li­sie­rung: Okt. 9, 2025 @ 10:43