Arduino Tutorial: Temperatur & Luftfeuchtigkeit mit DHT11 & DHT22 Sensoren messen
In diesem Arduino-Tutorial lernen Sie, wie Sie den DHT11 oder DHT22 Sensor zur Messung von Temperatur und Luftfeuchtigkeit mit einem Arduino-Board verwenden. Sie können das folgende Video ansehen oder die schriftliche Anleitung unten lesen. Diese Sensoren sind bei Elektronik-Hobbyisten sehr beliebt, da sie günstig sind und dennoch gute Leistung bieten. Hier sind die wichtigsten Spezifikationen und Unterschiede: Der DHT22 ist die teurere Version mit besseren Spezifikationen. Der DHT11 punktet lediglich mit höherer Abtastrate und kleinerem Gehäuse. Beide Sensoren bestehen aus drei Hauptkomponenten: Der Feuchtesensor hat zwei Elektroden mit einem feuchtigkeitsspeichernden Substrat dazwischen. Ändert sich die Luftfeuchtigkeit, ändert sich die Leitfähigkeit des Substrats bzw. der Widerstand zwischen den Elektroden. Dieser Widerstandsänderung wird vom IC gemessen, verarbeitet und für den Mikrocontroller bereitgestellt. Für die Temperaturmessung wird ein NTC-Thermistor verwendet. Ein Thermistor ist ein variabler Widerstand, der seinen Widerstandswert mit der Temperatur ändert. Diese Sensoren werden durch Sintern von Halbleitermaterialien wie Keramik oder Polymeren hergestellt, um bei kleinen Temperaturänderungen große Widerstandsänderungen zu erzielen. „NTC“ steht für „Negative Temperature Coefficient“ – der Widerstand nimmt also mit steigender Temperatur ab. Die DHTxx-Sensoren haben vier Pins: VCC, GND, Daten-Pin und ein nicht verbundener Pin. Ein Pull-Up-Widerstand von 5 kΩ bis 10 kΩ ist erforderlich, um die Datenleitung auf High zu halten und die Kommunikation mit dem Arduino zu ermöglichen. Es gibt auch Versionen mit Breakout-Boards, die bereits einen integrierten Pull-Up-Widerstand haben und nur 3 Pins besitzen. Die Sensoren verwenden ein eigenes Single-Wire-Protokoll mit präzisen Timing-Anforderungen. Dank der DHT-Bibliothek müssen wir uns jedoch nicht um die Timing-Diagramme kümmern. Verwandtes Tutorial: Arduino-basierte drahtlose Wetterstation bauen Zuerst wird die DHT-Bibliothek eingebunden (verfügbar auf der offiziellen Arduino-Website), der Pin definiert und ein DHT-Objekt erstellt. Im Setup wird die serielle Kommunikation initialisiert. Mit Nach dem Hochladen des Codes können die Messwerte im Serial Monitor beobachtet werden. Hier ist ein Beispiel, das die Werte auf einem LCD-Display anzeigt: Fragen können gerne im Kommentarbereich gestellt werden.Übersicht
Spezifikationen & Unterschiede
Eigenschaft DHT11 DHT22 Temperaturbereich 0 bis 50 °C -40 bis +125 °C Temperaturgenauigkeit ±2 °C ±0,5 °C Luftfeuchtigkeitsbereich 20 bis 80 % 0 bis 100 % Luftfeuchtigkeitsgenauigkeit 5 % 2–5 % Abtastrate 1 Hz (1 Messung/Sekunde) 0,5 Hz (1 Messung/2 Sekunden) Gehäusegröße Kleiner Größer Betriebsspannung 3–5 V Max. Stromaufnahme 2,5 mA 
Funktionsweise
Luftfeuchtigkeitsmessung


Temperaturmessung

Schaltplan

Quellcode
read22() (DHT22) bzw. read11() (DHT11) werden die Daten gelesen und in die Variablen t (Temperatur) und h (Luftfeuchtigkeit) gespeichert. Am Ende werden die Werte im Serial Monitor ausgegeben./* DHT11/ DHT22 Sensor Temperatur und Luftfeuchtigkeit Tutorial
* Program made by Dejan Nedelkovski,
* www.HowToMechatronics.com
*/
#include <dht.h>
#define dataPin 8
dht DHT;
void setup() {
Serial.begin(9600);
}
void loop() {
int readData = DHT.read22(dataPin);
float t = DHT.temperature;
float h = DHT.humidity;
Serial.print("Temperatur = ");
Serial.print(t);
Serial.print(" °C ");
Serial.print("Luftfeuchtigkeit = ");
Serial.print(h);
Serial.println(" %");
delay(2000); // DHT22 Abtastrate 0,5 Hz
}Erweiterung: Anzeige auf LCD
/* DHT11/ DHT22 Sensor mit LCD Anzeige
* Program made by Dejan Nedelkovski,
* www.HowToMechatronics.com
*/
#include <LiquidCrystal.h>
#include <dht.h>
#define dataPin 8
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
dht DHT;
void setup() {
lcd.begin(16, 2);
}
void loop() {
int readData = DHT.read22(dataPin);
float t = DHT.temperature;
float h = DHT.humidity;
lcd.setCursor(0, 0);
lcd.print("Temp.: ");
lcd.print(t);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Feuchte: ");
lcd.print(h);
lcd.print(" %");
delay(2000);
}
Herstellungsprozess
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Nahtlose Temperatur- & Feuchtigkeitsüberwachung am Raspberry Pi mit EzTemp
- MCP3008 ADC zum Auslesen analoger Sensoren mit Raspberry Pi nutzen
- Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
- Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
- Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
- Frequenz & Tastverhältnis präzise messen mit Arduino UNO
- BME280 Temperatur, Luftfeuchte & Druck auf Nextion Touchscreen anzeigen
- Stufenlose LED-Helligkeitssteuerung mit Bolt IoT und Arduino UNO
- Temperatur & Luftfeuchte mit DHT11 auf Blynk auslesen – Arduino-Tutorial Schritt für Schritt