Temperatur und Feuchtigkeit messen: DHT11 am Arduino Uno

Temperatur und Feuchtigkeit messen: DHT11 am Arduino Uno ist eines der beliebtesten Einsteigerprojekte, weil du damit sehr schnell „echte“ Umweltdaten erfassen und sichtbar machen kannst. Ob du ein kleines Raumklima-Monitoring bauen, eine Lüftersteuerung vorbereiten oder Grenzwerte für ein Smart-Home-Projekt testen möchtest: Der DHT11 liefert Temperatur- und Luftfeuchtewerte in digitaler Form und lässt sich mit wenigen Komponenten am Arduino Uno betreiben. Gleichzeitig ist der DHT11 kein Laborinstrument. Er ist günstig, robust und für Lernzwecke ideal – aber er hat klare Grenzen bei Genauigkeit, Messrate und Langzeitstabilität. Genau deshalb lohnt sich ein sauberer Einstieg: richtige Verdrahtung, passende Pull-up-Widerstände, eine zuverlässige Library, sinnvolle Messintervalle und eine korrekte Interpretation der Werte. In dieser Anleitung erfährst du Schritt für Schritt, wie du den DHT11 am Arduino Uno anschließt, welche Software-Bausteine du brauchst, wie du Messwerte im seriellen Monitor ausliest und welche typischen Fehlerquellen zu „NaN“-Werten oder unrealistischen Messungen führen. Außerdem lernst du, wann ein DHT22 oder andere Sensoren die bessere Wahl sind und wie du dein Projekt so strukturierst, dass es auch in größeren Sketches stabil bleibt.

Table of Contents

Was ist der DHT11 und was misst er wirklich?

Der DHT11 ist ein digitaler Kombisensor, der Temperatur und relative Luftfeuchtigkeit misst und die Werte über eine proprietäre 1-Draht-ähnliche Datenleitung an den Mikrocontroller überträgt. Im Unterschied zu analogen Sensoren liefert er keine Spannung, die du über einen Analog-Pin einliest, sondern er sendet ein Datenpaket, das Temperatur und Feuchte enthält. Das macht den Einstieg komfortabel, weil du dich nicht um ADC-Skalierung kümmern musst.

  • Messgrößen: Temperatur (°C) und relative Luftfeuchtigkeit (% rF)
  • Datenübertragung: digital über einen Datenpin (mit Timing-Protokoll)
  • Einsatzbereich: Lernprojekte, einfache Raumklima-Anwendungen, nicht für Präzisionsmessungen

Für den Arduino Uno ist wichtig: Das Timing-Protokoll des DHT11 ist relativ empfindlich. Deshalb ist eine bewährte Library fast immer der beste Weg, um stabile Messwerte zu erhalten.

DHT11 vs. DHT22: Wann der DHT11 ausreicht und wann nicht

Viele Maker starten mit dem DHT11, weil er preiswert ist und oft in Starter-Kits enthalten ist. In der Praxis stellt sich aber schnell die Frage: Reicht er wirklich aus? Hier hilft eine klare Abgrenzung. Der DHT11 ist in der Regel weniger genau und hat einen kleineren Messbereich als der DHT22 (auch als AM2302 bekannt). Für erste Projekte ist der DHT11 ideal, für ernsthafte Klima-Überwachung oder Außenbereiche ist häufig der DHT22 die bessere Wahl.

  • DHT11: günstiger Einstieg, einfache Messungen, begrenzte Genauigkeit
  • DHT22: typischerweise höhere Genauigkeit, größerer Messbereich, besser für „echte“ Anwendungen
  • Praxis: Wenn du Grenzwerte zuverlässig nutzen willst (z. B. Schimmelprävention), lohnt sich meist ein besserer Sensor

Wenn du später auf einen anderen Sensor wechselst, bleibt das Grundprinzip gleich: stabile Verdrahtung, passende Library, sinnvolle Abtastrate und saubere Datenverarbeitung.

Welche DHT11-Module gibt es und warum das für die Verdrahtung zählt

Der DHT11 kommt in zwei häufigen Varianten: als „nackter“ Sensor mit 4 Pins oder als fertiges Modul auf einer kleinen Platine mit 3 Pins. Der Unterschied ist wichtig, weil Module meist bereits einen Pull-up-Widerstand integriert haben, während der nackte Sensor häufig einen externen Pull-up benötigt.

  • 4-Pin DHT11 (Sensor): VCC, DATA, (NC), GND – oft externer Pull-up nötig
  • 3-Pin DHT11 (Modul): VCC, DATA, GND – Pull-up häufig auf der Platine
  • Typischer Stolperstein: Ohne Pull-up ist das Datensignal instabil oder liefert gar keine Werte

Wenn du unsicher bist, ob dein Modul einen Pull-up hat, hilft ein Blick auf die Platine: Oft ist ein kleiner Widerstand vorhanden. Im Zweifel ist ein zusätzlicher Pull-up selten schädlich, aber zu starke oder doppelte Pull-ups können das Signalverhalten verändern. Für Einsteiger ist ein gängiger, moderater Pull-up eine solide Ausgangsbasis.

Verdrahtung am Arduino Uno: Stabilität vor Geschwindigkeit

Der DHT11 ist empfindlich gegenüber langen Leitungen und Störungen. Für zuverlässige Messungen solltest du die Leitung zwischen Sensor und Arduino möglichst kurz halten und saubere Masseführung sicherstellen. Der Arduino Uno ist als 5V-Board ideal, weil der DHT11 typischerweise ebenfalls mit 5V betrieben werden kann (je nach Modul).

Grundanschluss: VCC, GND, DATA

  • VCC an 5V des Arduino Uno (bei vielen Modulen auch 3,3V möglich, abhängig vom Board und Modul)
  • GND an GND des Arduino Uno
  • DATA an einen digitalen Pin (z. B. D2, D3 oder D7)

Pull-up am Datenpin: Warum er so wichtig ist

Das Datenprotokoll benötigt ein sauberes High-Signal. Der Pull-up zieht die Datenleitung im Ruhezustand auf HIGH. Ohne ihn „floatet“ die Leitung, was zu fehlerhaften Bits und damit zu ungültigen Messwerten führt. In der Praxis ist die Pull-up-Frage der häufigste Grund für dauerhaft ausbleibende Messungen.

Praxis-Tipps für stabile Messungen

  • Datenleitung kurz halten, besonders bei Breadboard-Aufbauten
  • GND-Verbindungen fest stecken, keine wackligen Jumper
  • Sensor nicht direkt neben stark störenden Komponenten platzieren (Motoren, Relais, lange PWM-Leitungen)
  • Versorgung sauber halten: Bei instabiler USB-Stromquelle ggf. anderes Netzteil testen

Technische Grundlagen zum Arduino Uno und seinen Anschlüssen findest du in der offiziellen Hardware-Dokumentation: Arduino Uno Rev3 Dokumentation.

Software-Bausteine: Warum du eine Library verwenden solltest

Das Timing-Protokoll des DHT11 ist so ausgelegt, dass die Auswertung einzelner Pulsbreiten korrekt erfolgen muss. In der Praxis ist es deutlich effizienter und sicherer, eine erprobte Library zu nutzen, statt das Protokoll selbst zu implementieren. Dadurch erhältst du nicht nur zuverlässig Werte, sondern auch Beispiel-Sketches und häufig hilfreiche Fehlermeldungen.

  • Library spart Zeit und reduziert Protokollfehler
  • Beispiele ermöglichen schnellen Funktionstest
  • Kompatibilität mit gängigen Arduino-Setups ist meist gegeben

Eine der am weitesten verbreiteten Optionen ist die Adafruit-DHT-Sensorbibliothek. Dazu existiert eine ausführliche Anleitung: Adafruit: DHT Sensor Overview. Das Installieren von Libraries in der Arduino IDE ist in der offiziellen Arduino-Dokumentation beschrieben: Arduino IDE: Libraries installieren.

Messwerte im seriellen Monitor auslesen: Der schnellste Funktionstest

Für den ersten Test ist der serielle Monitor ideal: Du siehst live, ob Temperatur und Luftfeuchtigkeit plausibel sind und ob das Auslesen stabil läuft. Dabei ist es wichtig, die Baudrate im Sketch und im seriellen Monitor identisch einzustellen. Außerdem solltest du die Messungen nicht zu häufig abfragen, weil der DHT11 nur in bestimmten Intervallen zuverlässig neue Werte liefert.

  • Serielle Schnittstelle im setup initialisieren (Baudrate festlegen)
  • Messwerte in klarer Form ausgeben (z. B. „temp=…“, „hum=…“)
  • Messintervall einhalten (nicht in jeder loop-Runde abfragen)

Wenn du Serial-Funktionen nachschlagen möchtest, hilft die Arduino-Referenz: Serial in der Arduino Language Reference.

Messintervall richtig wählen: Warum „schneller“ beim DHT11 nicht besser ist

Der DHT11 ist kein Hochfrequenzsensor. Wenn du ihn zu oft ausliest, kann er ungültige Werte liefern oder die Library gibt Fehlerzustände zurück. In der Praxis ist es sinnvoll, ein Messintervall zu definieren, das zur Anwendung passt: Raumklima ändert sich langsam, und Sekundenabstände sind in der Regel völlig ausreichend.

Empfohlene Intervalle für typische Anwendungen

  • Raumklima-Anzeige: alle 2 bis 5 Sekunden
  • Schwellwert-Überwachung: alle 2 Sekunden, mit Hysterese bei Grenzwerten
  • Datenlogging: alle 10 bis 60 Sekunden, je nach Detailgrad

Best Practice: Zeitsteuerung mit millis() statt delay()

Wenn du gleichzeitig Taster abfragen, LEDs steuern oder weitere Sensoren auslesen willst, solltest du blockierende delay()-Wartezeiten vermeiden. Nicht-blockierendes Timing mit millis() ist der Standard für „Multitasking ohne Delay“. Die offizielle Referenz findest du hier: Arduino Referenz: millis().

Typische Fehlerbilder: Warum du „NaN“, 0 oder unrealistische Werte siehst

Beim DHT11 gibt es einige Klassiker, die in fast jedem Einsteigerprojekt auftauchen. Die gute Nachricht: Die Ursachen sind meist eindeutig und lassen sich systematisch eingrenzen.

Keine Werte oder ständig ungültige Werte

  • DATA-Pin falsch angeschlossen oder falscher Pin im Sketch konfiguriert
  • Pull-up fehlt oder ist nicht passend
  • GND-Verbindung wackelt oder ist nicht korrekt gesteckt
  • Sensor-Modul falsch herum angeschlossen (kommt bei Modulen mit unklarer Beschriftung vor)

Werte springen stark oder wirken unplausibel

  • Leitungen zu lang, Störeinflüsse durch Motoren/Relais/PWM
  • Versorgung instabil (USB-Port, schlechte Kabel, starke Last am 5V-Pin)
  • Sensor sitzt in direkter Nähe einer Wärmequelle (Regler, Spannungswandler, Handwärme)

Messung funktioniert nur manchmal

  • Messintervall zu kurz, Sensor wird zu häufig abgefragt
  • Library-Konfiguration nicht passend (DHT11 vs. DHT22 verwechselt)
  • Breadboard-Kontakte unzuverlässig, Jumperkabel nicht sauber

Messwerte richtig interpretieren: Was bedeutet relative Luftfeuchtigkeit?

Viele Maker lesen „Luftfeuchtigkeit“ und erwarten einen absoluten Wert. Der DHT11 misst jedoch relative Luftfeuchtigkeit (% rF). Das bedeutet: Es ist ein Verhältniswert, der stark von der Temperatur abhängt. Wenn sich die Temperatur ändert, kann sich die relative Feuchte verändern, auch wenn die absolute Wassermenge in der Luft gleich bleibt. Für Praxisprojekte ist das völlig in Ordnung, aber für die Interpretation wichtig.

  • % rF ist temperaturabhängig
  • Raumklima-Bewertung ist möglich, aber nicht „meteorologisch exakt“
  • Für präzisere Anwendungen sind Sensoren mit besserer Genauigkeit sinnvoll

Wenn du Klima-Logik umsetzen möchtest, empfiehlt sich zusätzlich eine Hysterese: Schalte z. B. Lüfter oder Alarm nicht exakt am Grenzwert, sondern mit zwei Schwellen, um Flattern zu vermeiden.

Genauigkeit und Grenzen: Was du vom DHT11 realistisch erwarten darfst

Der DHT11 ist für Lern- und Hobbyprojekte konzipiert. Er eignet sich sehr gut, um Prinzipien zu verstehen: Sensor anschließen, Library nutzen, Daten auslesen, Grenzwerte definieren. Für präzise Messungen oder kritische Entscheidungen (z. B. in sensiblen Lagerumgebungen) ist er oft nicht die erste Wahl. In der Praxis solltest du Werte als „Orientierung“ sehen.

  • Temperaturwerte sind für Raumklima-Anzeige meist ausreichend
  • Feuchtewerte sind brauchbar, aber nicht hochpräzise
  • Sehr schnelle Änderungen erfasst der Sensor naturgemäß nur verzögert

Wenn du höhere Genauigkeit brauchst, ist ein Wechsel zu einem besseren Sensor oder einem anderen Sensortyp sinnvoll, ohne dass du das ganze Projekt neu denken musst.

Kalibrierung und Plausibilitätschecks: So wird dein Projekt zuverlässiger

Beim DHT11 ist eine klassische „Kalibrierung“ wie in der Messtechnik nicht immer sinnvoll, aber du kannst dein Projekt durch einfache Plausibilitätsprüfungen deutlich robuster machen. Das ist besonders wichtig, wenn du mit den Daten Aktionen auslösen willst.

Plausibilitätsbereiche definieren

  • Temperatur nur akzeptieren, wenn sie in einem realistischen Bereich liegt (z. B. 0 bis 50 °C für Innenräume)
  • Feuchtigkeit nur akzeptieren, wenn sie plausibel ist (z. B. 10 bis 95 % rF im Alltag)
  • Ungültige Messungen verwerfen und den letzten gültigen Wert behalten

Glättung durch Mittelwertbildung

Wenn Werte leicht schwanken, kannst du mehrere Messungen sammeln (mit ausreichendem Abstand) und daraus einen gleitenden Mittelwert bilden. Das macht Anzeigen ruhiger und Grenzwertlogik stabiler. Wichtig ist dabei, nicht zu häufig zu messen und den Sensor nicht zu überlasten.

Daten in Echtzeit weiterverarbeiten: Typische Erweiterungen für Maker

Sobald du Messwerte zuverlässig im seriellen Monitor siehst, willst du sie meist weiterverwenden. Der DHT11 ist ideal, um typische Arduino-Konzepte zusammenzubringen: Anzeigen, Alarme, Automatisierung und Logging.

  • OLED/LCD-Anzeige: Temperatur und Feuchte auf einem Display darstellen
  • Status-LEDs: Farben oder Blinkmuster je nach Grenzwert
  • Lüfter- oder Relaissteuerung: bei hoher Feuchte oder Temperatur schalten
  • Datenlogging: Werte in Intervallen ausgeben oder speichern
  • Schwellwerte per Serial: Grenzwerte über serielle Befehle setzen

Für Logging und Debugging ist der serielle Monitor weiterhin ein zentrales Werkzeug, besonders wenn du deine Grenzwerte datenbasiert festlegen willst.

Stromversorgung, Kabellängen und Umgebung: Praxisfaktoren, die Messungen beeinflussen

Viele Messprobleme haben nicht mit Code zu tun, sondern mit Aufbau und Umgebung. Der DHT11 reagiert nicht nur auf Luft, sondern auch auf lokale Wärmequellen und Luftströmungen. Außerdem können lange Leitungen das Digitalsignal verschlechtern.

  • Sensor nicht direkt über Spannungsreglern oder neben warmen Bauteilen platzieren
  • Abstand zu Händen und Körperwärme beim Testen berücksichtigen
  • Bei Gehäusen: Luftzirkulation einplanen, sonst misst du „Gehäuseklima“ statt Raumklima
  • Bei langen Leitungen: Signalführung verbessern oder Sensor näher an den Arduino bringen

Libraries und Kompatibilität: So vermeidest du Konflikte im Sketch

Gerade bei großen Projekten können Library-Konflikte auftreten: doppelte Bibliotheken, veraltete Versionen oder Abhängigkeiten. Ein sauberer Workflow hilft, Zeit zu sparen.

  • Libraries bevorzugt über den Arduino Library Manager installieren
  • Beispielsketch der Library zuerst unverändert testen
  • Dann schrittweise in dein Projekt integrieren
  • Bei Fehlermeldungen prüfen, ob mehrere Libraries denselben Include-Namen liefern

Die offizielle Anleitung zum Installieren von Libraries ist hier zu finden: Arduino IDE: Library-Installation.

Werte dauerhaft speichern: Sinnvolle Kombination mit EEPROM

Wenn du Grenzwerte oder Kalibrierwerte festlegen möchtest, ist es praktisch, diese dauerhaft zu speichern. Dafür eignet sich das EEPROM des Arduino Uno: Werte bleiben nach dem Ausschalten erhalten. Wichtig ist dabei, nicht ständig zu schreiben, sondern nur bei Änderungen oder in sinnvollen Intervallen.

  • Schwellwerte im EEPROM ablegen
  • Beim Start laden, auf Plausibilität prüfen, dann verwenden
  • Schreibzyklen schonen, indem du nur bei Änderung speicherst

Für die EEPROM-Bibliothek gibt es eine offizielle Übersicht: Arduino EEPROM Library.

Häufige Fragen aus der Praxis: Schnell geklärt

Kann ich den DHT11 an jedem digitalen Pin betreiben?

In der Regel ja, solange du im Sketch den richtigen Pin angibst und die Verdrahtung sauber ist. Für Debugging ist es sinnvoll, Pins zu wählen, die nicht mit speziellen Funktionen kollidieren. Der Uno ist hier flexibel.

Warum zeigt der Sensor nach dem Start kurz „komische“ Werte?

Manche Setups liefern in den ersten Messungen ungültige oder unstabile Werte, etwa weil die Library initialisiert oder der Sensor gerade „hochläuft“. Ein guter Ansatz ist, beim Start ein paar Messungen zu verwerfen oder erst nach einem kurzen stabilen Intervall zu loggen.

Wie kann ich Messwerte „schöner“ machen?

Gleitende Mittelwerte, Plausibilitätschecks und sinnvolle Ausgabeintervalle helfen. Außerdem solltest du die Umgebung berücksichtigen: Wenn der Sensor in einem engen Gehäuse sitzt, reagiert er langsamer und misst oft nicht die freie Raumluft.

Weiterführende Informationsquellen

Wenn du den DHT11 am Arduino Uno sauber anschließt, eine bewährte Library nutzt und Messintervalle realistisch wählst, erhältst du schnell stabile Temperatur- und Feuchtewerte, die sich hervorragend für Lernprojekte und erste Automatisierungen eignen. Mit Plausibilitätschecks, nicht-blockierender Zeitsteuerung und einer klaren Ausgabe über den seriellen Monitor baust du eine solide Basis, auf der du später Displays, Alarme, Steuerungen und dauerhafte Konfigurationen aufsetzen kannst.

IoT-PCB-Design, Mikrocontroller-Programmierung & Firmware-Entwicklung

PCB Design • Arduino • Embedded Systems • Firmware

Ich biete professionelle Entwicklung von IoT-Hardware, einschließlich PCB-Design, Arduino- und Mikrocontroller-Programmierung sowie Firmware-Entwicklung. Die Lösungen werden zuverlässig, effizient und anwendungsorientiert umgesetzt – von der Konzeptphase bis zum funktionsfähigen Prototyp.

Diese Dienstleistung richtet sich an Unternehmen, Start-ups, Entwickler und Produktteams, die maßgeschneiderte Embedded- und IoT-Lösungen benötigen. Finden Sie mich auf Fiverr.

Leistungsumfang:

  • IoT-PCB-Design & Schaltplanerstellung

  • Leiterplattenlayout (mehrlagig, produktionstauglich)

  • Arduino- & Mikrocontroller-Programmierung (z. B. ESP32, STM32, ATmega)

  • Firmware-Entwicklung für Embedded Systems

  • Sensor- & Aktor-Integration

  • Kommunikation: Wi-Fi, Bluetooth, MQTT, I²C, SPI, UART

  • Optimierung für Leistung, Stabilität & Energieeffizienz

Lieferumfang:

  • Schaltpläne & PCB-Layouts

  • Gerber- & Produktionsdaten

  • Quellcode & Firmware

  • Dokumentation & Support zur Integration

Arbeitsweise:Strukturiert • Zuverlässig • Hardware-nah • Produktorientiert

CTA:
Planen Sie ein IoT- oder Embedded-System-Projekt?
Kontaktieren Sie mich gerne für eine technische Abstimmung oder ein unverbindliches Angebot. Finden Sie mich auf Fiverr.

 

Related Articles