Den Sensor DHT gibt es in drei Versionen:
DHT11/DHT22 mit digitaler Schnittstelle und DHT20 mit I²C-Anschluss
Vergleich DHT11/DHT22/DHT20
| DHT11 | DHT22 | DHT20 | |
|---|---|---|---|
| Messbereich Temperatur | 0 - +50°C | -40 - +80°C | -40 - +80°C |
| Auflösung Temperatur | 1°C | 0,1°C | 0,01°C |
| Messgenauigkeit Temperatur | ± 2 °C | ± 0,5 °C | ± 0,5 °C |
| Messbereich Luftfeuchtigkeit | 20 - 90% | 0 - 100% | 0 - 100% |
| Auflösung Luftfeuchtigkeit | 1% | 0,1% | 0,024% |
| Messgenauigkeit Luftfeuchtigkeit | ± 5 % | ± 2 % | ± 3 % |
| Schnittstelle | digital | digotal | I²C |
Quellen:
🔗Datenblatt DHT22
🔗Datenblatt DHT11
🔗Datenblatt DHT20

⇒Vergleich Temperatur-/ Luftfeuchtigkeitssensoren

Pinbelegung:
DHT11
GND Daten 5V
DHT22
5V Daten GND
DHT20
SDA SCL GND 5V
Beispiele für DHT11, DHT22 und DHT20 Sensoren.
Die Pinbelegung kann sich von der hier gezeigten unterscheiden. Achte auf die Beschriftung auf dem Sensor!
Benötigte Bibliotheken
DHT11/DHT22

DHT20

Der Serielle Monitor zeigt Temperatur und Luftfeuchtigkeit an
So sieht es aus:

Das Programm 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 Programm 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);
}letzte Aktualisierung: