DHT22 (AM2302)
SensorDigitaler Temperatur- und Luftfeuchtigkeitssensor. Liefert beide Messwerte ueber einen einzigen Datenpin. Etwas genauer als der billigere DHT11.
Technische Daten
| Kategorie | Temperatur/Luftfeuchtigkeit |
|---|---|
| Schnittstelle | Digital (OneWire-aehnlich) |
| Pinbelegung | VCC, DATA, NC (nicht verbunden), GND |
| Anzahl Pins | 4 |
| Messgroesse | Temperatur, Luftfeuchtigkeit |
| Messbereich | Temperatur: -40 bis 80 °C, Luftfeuchtigkeit: 0–100 % RH |
| Genauigkeit | Temperatur: +-0.5 °C, Luftfeuchtigkeit: +-2 % RH |
| Betriebsspannung | 3.3V – 5.0V |
| Stromverbrauch | 1.5 mA |
| Datenblatt | PDF oeffnen |
Anschluss
Arduino Uno R3
5V=VCC, D2=DATA, GND=GND
Hinweise: 10k-Ohm Pull-Up-Widerstand zwischen DATA und VCC. Pin 3 (NC) bleibt frei.
Codebeispiele
Temperatur und Luftfeuchtigkeit messen Anfaenger
Dieses Programm liest alle 2 Sekunden Temperatur und Luftfeuchtigkeit vom DHT22-Sensor und zeigt die Werte im Seriellen Monitor an. Oeffne den Seriellen Monitor mit Strg+Shift+M (Baudrate 9600).
Benoetigte Bibliotheken: DHT.h (von Adafruit, im Library Manager suchen: 'DHT sensor library')
// ============================================
// DHT22: Temperatur und Luftfeuchtigkeit messen
// ============================================
// Anschluss: VCC=5V, DATA=Pin 2, GND=GND
// Wichtig: 10k-Ohm Pull-Up zwischen DATA und VCC!
#include <DHT.h> // Bibliothek fuer DHT-Sensoren
#define DHT_PIN 2 // Datenpin des Sensors
#define DHT_TYP DHT22 // Sensortyp (DHT22 oder DHT11)
// Sensor-Objekt erstellen
DHT sensor(DHT_PIN, DHT_TYP);
void setup() {
Serial.begin(9600); // Serielle Kommunikation starten
sensor.begin(); // Sensor initialisieren
Serial.println("DHT22 Sensor bereit!");
Serial.println("-------------------");
}
void loop() {
// Werte auslesen
float temperatur = sensor.readTemperature(); // in Grad Celsius
float feuchtigkeit = sensor.readHumidity(); // in Prozent
// Pruefen ob die Messung geklappt hat
if (isnan(temperatur) || isnan(feuchtigkeit)) {
Serial.println("FEHLER: Konnte Sensor nicht auslesen!");
Serial.println("Pruefen: Kabel, Pull-Up-Widerstand, richtiger Pin?");
} else {
// Werte ausgeben
Serial.print("Temperatur: ");
Serial.print(temperatur);
Serial.println(" °C");
Serial.print("Luftfeuchtigkeit: ");
Serial.print(feuchtigkeit);
Serial.println(" %");
Serial.println("-------------------");
}
delay(2000); // 2 Sekunden warten (DHT22 braucht mind. 2s zwischen Messungen)
}
Haeufige Probleme
DHT22 liefert NaN (Not a Number)
Symptom: Im Seriellen Monitor steht 'nan' oder 'FEHLER: Konnte Sensor nicht auslesen'
Ursache: Pull-Up-Widerstand fehlt, falscher Pin, oder zu haeufiges Auslesen
Loesung:
Vermeidung: Pull-Up-Widerstand immer einbauen. Mindestens 2 Sekunden zwischen Messungen.
Projekte mit diesem Bauteil
Probleme mit DHT22 (AM2302)?
KI-Lernhelfer fragen