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)
AngebotBestseller Nr. 1
ELEGOO UNO R3 Ultimate Starter Kit, Kompatibel mit Arduino IDE Vollständigster Elektronik Projekt Baukasten mit deutschem Tutorial, UNO R3 Mikrocontroller Board und Zubehör (mehr als 200 Teile)
  • 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.
AngebotBestseller Nr. 2
Offizielles Arduino Starter Kit für Anfänger K040007 [Projektbuch auf Deutsch]
  • Das Starterkit ist ein bequemer Einstieg in die heimische Beschäftigung mit Themen aus dem Bereich MINT. Es fördert das kritische Denken, das gemeinsame Lernen und die Problemlösefähigkeit.
  • Das Kit vermittelt praxisbezogen die Grundlagen von Arduino und allgemeiner Elektronik. Es sind keinerlei Vorkenntnisse erforderlich, da das Kit mit fesselnden praktischen Projekten eine Einführung in die Bereiche Programmierung und Elektronik bietet.
  • Zum Lieferumfang gehören ein Projekthandbuch mit 170 Seiten sowie mehr als 100 Bauteile.
  • Mit verschiedenen Arten von Sensoren und Aktuatoren lassen sich 15 verschiedene Projekte realisieren, die mit der physischen Welt interagieren.
  • Zahlreiche weitere Materialien und Ideen stehen online zur Verfügung, ebenso wie anregende Tutorials und Videos, sodass auch nach Realisierung der 15 Projekte der kreative Spaß noch lange nicht vorüber ist.

22 thoughts on “DHT11 Sensor für Temperatur und Luftfeuchtigkeit am Arduino

  • 1. Januar 2015 at 2:30
    Permalink

    Cool, vielen Dank für die Idee und das Produktbeispiel :) Leg‘ ich mir direkt mal zu…

    Reply
  • 11. Januar 2015 at 18:36
    Permalink

    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“

    Reply
    • 12. Januar 2015 at 8:49
      Permalink

      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.

      Reply
      • 6. Mai 2016 at 9:38
        Permalink

        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?

        Reply
      • 9. Mai 2016 at 7:30
        Permalink

        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

        Reply
      • 3. Mai 2017 at 13:24
        Permalink

        Wie wärs mal mit einem Schaltplan du Horst?!

        Reply
        • 3. Mai 2017 at 14:58
          Permalink

          Google ist dein Freund.

          Reply
  • 2. August 2015 at 22:28
    Permalink

    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

    Reply
    • 5. August 2015 at 14:07
      Permalink

      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

      Reply
  • 21. Dezember 2015 at 17:44
    Permalink

    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

    Reply
    • 22. Dezember 2015 at 23:05
      Permalink

      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?

      Reply
  • 15. Januar 2016 at 18:23
    Permalink

    Danke für dein Tutorial. Kannst du ein Schaltplan erstellen? Wäre sehr dankbar. ;-)

    Reply
  • 12. April 2016 at 14:06
    Permalink

    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?

    Reply
  • 27. Dezember 2016 at 20:55
    Permalink

    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?

    Reply
    • 27. Dezember 2016 at 21:02
      Permalink

      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.

      Reply
  • 28. Dezember 2016 at 16:17
    Permalink

    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

    Reply
    • 8. März 2017 at 23:25
      Permalink

      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!

      Reply
  • 25. Dezember 2018 at 20:26
    Permalink

    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

    Reply
  • 3. Oktober 2019 at 12:42
    Permalink

    wie müsste das if aussehen wenn zb die Temp über 20c geht und es soll eine LED angehen.

    Reply
    • 8. Oktober 2019 at 11:28
      Permalink

      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.

      Reply
  • 4. November 2019 at 23:10
    Permalink

    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

    Reply
  • 6. Januar 2022 at 20:35
    Permalink

    Hallo. irgendwie funktioniert es auf dem arduiono nicht? was kann ich tun. lg

    Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Time limit is exhausted. Please reload the CAPTCHA.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.