ACHTUNG: Dieser Artikel ist veraltet, hier ist der Link zum UPDATE:
Mit dem DHT11 Sensor Temperatur und Luftfeuchtigkeit messen – Update!
Von icstation.com habe ich einen DHT11 Sensor zur Messung von Temperatur und Luftfeuchtigkeit zugeschickt bekommen, den ich in einem kleinen Testprojekt zusammen mit einem LC-Display aus dem Arduino Starter Kit verbaut habe.
Der DHT11 ist ein digitaler, in einer Kalibrierungskammer vorkalibrierter Sensor und misst Temperatur und relative Luftfeuchtigkeit im Bereich von 0-50 Grad Celsius bzw. 20-95% Luftfeuchtigkeit.
Hier das Video:
Als Bibliothek zur Abfrage des DHT11 habe ich die DHT11 Klasse von der Arduino-Website verwendet. Leider muss man sich die beiden Dateien für die Library händisch von der Website kopieren und in Dateien mit den Namen dht11.h und dht11.cpp in einem Ordner namens DHT11 speichern.
Da ich immer wieder Mails bekomme, wonach die bisher hier verlinkte Version der DHT11-Library nicht funktioniert, habe ich die von mir verwendete Version hier auf Github veröffentlicht:
https://github.com/adidax/dht11
Einfach rechts auf „Download ZIP“ klicken, dann das im ZIP enthaltene Verzeichnis von dht11-master auf dht11 umbenennen. Dann kann man die Bibliothek über die Funktion „Sketch -> Library importieren“ in der Arduino IDE importieren oder einfach in den /Arduino/libraries-Ordner im eigenen Dokumentenverzeichnis kopieren. Arduino IDE danach sicherheitshalber neu starten.
Und hier der Arduino Sketch zum Auslesen der Daten aus dem DHT11 und zur Ausgabe auf dem LC-Display:
// Libraries einbinden
#include <dht11.h>
#include <LiquidCrystal.h>
dht11 DHT11;
#define DHT11PIN 8
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
lcd.begin(16, 2);
lcd.print("Initialisierung...");
lcd.clear();
}
void loop()
{
int chk = DHT11.read(DHT11PIN);
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print((float)DHT11.temperature, 2);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("RelF: ");
lcd.print((float)DHT11.humidity, 2);
lcd.print(" %");
delay(2000);
}
Code-Sprache: Arduino (arduino)
- Umfangreichster ELEGOO UNO R3 Starter Kit mit 63 verschiedenen Komponenten: UNO R3 Entwicklungsboard, USB-Kabel, Widerstände, LEDs, Netzteil, Relais, Steckplatine u.a. Zubehör.
- Unsere Projekte wie z.B. das mit dem LCD Modul erfordern kein Löten. Es ist aber ein "Expansion Modul" dabei, mit dem auch weiterführende Projekte machbar sind, bei denen gelötet werden muss.
- Auf der mitgelieferten CD steht das deutsche Tutorial (PDF) mit über 30 Lektionen, die die benötigten Programmen und einfache Erklärungen enthalten. Ein aktuelles Tutorial können Sie auch über unsere Website herunterladen.
- Das UNO R3 Set ist für Erwachsene und Jugendliche geeignet und Sie können damit eigene Elektronik-Projekte realisieren. Vorkenntnisse über Elektronik und Programmierung sind nicht unbedingt erforderlich, aber hilfreich.
- Unser Starter Kit schafft einen leichten Einstieg in die Arduino Programmierung und ermöglicht Ihnen einen gut gangbaren Weg zur fortgeschrittenen Programmierung, wenn Sie sich zusätzliche Lehrbücher aneignen.
- All-in-One Starter Kit für Arduino-Anfänger: Das Kit enthält das originale Arduino Uno R4 WiFi-Board, über 300 hochwertige Komponenten und über 60 kostenlose englische Videolektionen, die gemeinsam mit dem Pädagogen Paul McWhorter erstellt wurden. Mit über 50 Projekten (30 Basis-, 13 Spaß- und 8 IoT-Projekte) ist es perfekt für Anfänger ab 8 Jahren geeignet, um Arduino zu erkunden. Zertifiziert RoHS-konform, gewährleistet es Sicherheit und Qualität für alle Lernenden. Deutsche Online-Tutorials: elite-explorer-kit-de.rtfd.io
- Leistungsstarkes Arduino Uno R4 WiFi Board: Das Arduino Uno R4 WiFi wurde gegenüber dem Arduino Uno R3 verbessert und verfügt über einen 32-Bit-Prozessor, mehr Speicher und integriertes WiFi und Bluetooth, was die Verbindung mit Apps von Drittanbietern für interaktive und praktische Projekte ermöglicht
- 300+ Komponenten für unendliche Möglichkeiten: Mit mehr als 300 Bauteilen und Sensoren sowie einem wiederaufladbaren Batteriemodul ist dieser Bausatz perfekt für tragbare Projekte geeignet. Es bietet Schritt-für-Schritt-Anleitungen, Open-Source-Code und Kompatibilität mit anderen Arduino-Boards wie Uno R3 und Nano, was endlose Anpassungs- und Lernmöglichkeiten bietet
- Spannende Projekte für jede Könnensstufe: Mit 50 Projekten (30 Basis-, 13 Spaß- und 8 IoT-Projekte) und der Integration von IoT-Apps wie Arduino IoT Cloud unterstützt dieses Kit die Arduino C++-Programmierung und ist damit perfekt für Schüler, Lehrer und Ingenieure geeignet, um auf jedem Fähigkeitsniveau zu lernen, zu programmieren und zu erstellen
- Engagierte Unterstützung für Einsteiger: Neben Online-Ressourcen und Video-Tutorials bietet SunFounder technischen Support und Foren zur Fehlerbehebung, um Anfängern bei der Lösung von Programmierproblemen zu helfen

Cool, vielen Dank für die Idee und das Produktbeispiel :) Leg‘ ich mir direkt mal zu…
Hallo funktioniert das mit dem DHT22 auch und woher bekomme ich die Library?
Hab schon mit der Dht22 Library von github probiert und bekomme die Meldung: „sketch_oct24a:5: error: ‚dht11‘ does not name a type
sketch_oct24a.ino: In function ‚void loop()‘:
sketch_oct24a:19: error: ‚DHT11‘ was not declared in this scope“
Hi, ja das müsste auch mit dem DHT22 funktionieren.
Offensichtlich sind da nicht funktionsfähige Versionen der Library in Umlauf. Ich mail dir mal meine Version.
Hallo
Danke für dieses Tutorial. Ich würde mir ebenso gerne diesen Teil mit einem DHT22 aufbauen. Kannst du mir bitte auch die library schicken?
Vielen herzlichen Dank für diesen Code.
Es ist für mich, einen blutigen Anfänger, genau das Richtige zum Starten. Ich möchte ebenfalls Temperaturen und Feuchtigkeit erfassen. Könntest du mir bitte auch die Library für den DHT22 mailen? Diesen werde ich nämlich verwenden.
Vielen Dank im Voraus
Friedrich
Wie wärs mal mit einem Schaltplan du Horst?!
Google ist dein Freund.
bei mir funktioniert der sketch DHT11 nicht. habe schon alles mögliche probiert.
zeigt fehler fatal error :dht11.h.:NOsuch file or directory compilation terminated.
fehler beimkompilieren
woran liegt es .im vorherrein besten dank.
gruß w.peter
Hallo Peter,
die Fehlermeldung „fatal error :dht11.h.:NO such file or directory“ deutet eher darauf hin, dass du die DHT11 Library im /libraries-Folder von Arduino nicht richtig installiert hast. Kannst du das nochmal überprüfen?
lg, Adi
Hallo,
bei mir wird für Temperatur und Luftfeuchtigkeit jeweils 0.00 ausgegeben.
Weißt Du vielleicht, woran das liegen könnte ?
Hab mich schon durch viele Foren durchgeklickt wegen diesem Problem und auch ein Test-Sketch für den DHT11 laufen lassen… da kam connect error raus.
(An der Verkabelung kann es meiner Meinung nach nicht liegen, die habe ich etliche male durchgecheckt).
Danke im Voraus und liebe Grüße.
Baptiste
Hi Baptiste, da gibts leider viele mögliche Ursachen, das ist aus der Ferne schwierig. Die Verkabelung ist ja eomfach, aber sicherheitshalber alles nochmal aus- und wieder einstecken. Hängt sonst noch was am Arduino? Testweise mal nur den DHT11 anhängen, sonst nichts. Könnte es sein dass du deinen DHT11 schon gegrillt hast, das kann ja schon mal vorkommen :) Ist es sicher ein DHT11 und kein DHT22, der sieht nämlich recht ähnlich aus?
Danke für dein Tutorial. Kannst du ein Schaltplan erstellen? Wäre sehr dankbar. ;-)
Hallo, hab`s nachgemacht, funzt alles!!
Als nächstes wäre cool ein Piepser anzuschließen, der ab z.B. 30 C° periodisch piepst.
Und dann später könnte man noch andere Sensoren anschließen, die dann ab einem Grenzwert anders piepsen.
Willst du vielleicht in diese Richtung was machen – kleine Tutorial erstellen?
Hallo,
ich habe das super Video gesehen und wollte es gleich mal porbieren… Alles gemacht wie beschrieben – leider sagt er mir jedoch immer = „dht11 does not name a type“ an. Der Text ist richtig aber den Fehler steuert er die ganze Zeit aus. Hat jemand eine Idee?
Die Library für den DHT11 hast du korrekt installiert? Kriegst du im Konsolenfenster noch weitere Fehlermeldungen? Bitte mal alle Zeilen hier posten oder mir mailen, dann kann ich leichter helfen.
Hallo, danke für die schnelle Antwort hier mal der „kurze“ Fehlertext:
Das Problem besteh auch am Mac. DHT11 wurde wie oben beschrieben heruntergeladen, umbenannt und per import als ZIP Bibliothek eingebunden (ohne Fehler).
Arduino: 1.6.9 (Windows 10), Board: „Arduino/Genuino Uno“
LCDundTemperatur:4: error: ‚dht11‘ does not name a type
dht11 DHT11;
^
exit status 1
‚dht11‘ does not name a type
Das ist mir auch schon passiert und ich habe herausgefunden, dass man die Bibliothek über ‚Sketch/Bibliothek einbinden/DHT sensory library‘ nochmals einbinden muss. Der dadurch im Skript eingetragene Text kriegt dann auch etwas Farbe. Den alten (bleichen) Eintrag kann man dann aus dem Editor entfernen. Nun klappts plötzlich – nervig, nicht wahr!
hallo ich habe alles genau so gemacht wie es dort steht aber es funktioniert einfach nicht da steht Dan immer
compilation terminated.
exit status 1
dht11.h: No such file or directory
wie müsste das if aussehen wenn zb die Temp über 20c geht und es soll eine LED angehen.
In der loop(), wo derzeit die Ausgabe erfolgt, müsste ein IF() der Art
if ((float)DHT11.temperature > 20.0) {digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
stehen. Dieses IF würde abhängig von der Temperatur das Pin ledPin ein- oder ausschalten.
google ist mein best freund, aber im internet war keinen information um dht-11, vielen dank fur die tutorial und die arduino code deutsch freunde
Hallo. irgendwie funktioniert es auf dem arduiono nicht? was kann ich tun. lg
Pingback: Mit dem DHT11 Sensor Temperatur und Luftfeuchtigkeit messen – Update! – Makerblog.at