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.
- Das komplette Starterkit mit mehr als 200 Komponenten und 100% kompatibel mit Arduino IDE.
- PDF-Tutorial auf der CD (mehr als 35 Lektionen). GY-61-Sensormodul mit Stiftleiste (kein Selbstlöten erforderlich). Sie können dieselben Tutorials auch online von unserer offiziellen Website herunterladen.
- Schönes Paket mit klarer Auflistung und Überraschung, einschließlich einer schönen kleinen Box, um das Widget wie LED, IC, Tasten, Dioden usw.
- Warnhinweis: Die Eingangsspannung des ELEGOO Netzteilmoduls beträgt 6,5 V - 9 V (DC) über einen 5,5 mm x 2,1 mm Stecker. Bitte überladen Sie es NICHT, da sonst Ihr Board und Ihre Chips verbrennen.
- Hinweis: Die Verwendung von ELEGOO Starterkits erfordert grundlegende elektronische Kenntnisse. Wenn der Benutzer keine Erfahrung hat, wäre es besser, ihn während des Studiums von jemandem führen und unterrichten zu lassen.
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