DHT22: Temperatur und Luftfeuchtigkeit messen

Der DHT22 (Amazon Produktlink) ist eine einfache und kostengünstige Möglichkeit, um Temperatur und Luftfeuchtigkeit zu messen. Es handelt sich um einen kalibrierten Sensor, der über eine One-Wire Schnittstelle (MaxDetect), also eine Datenleitung mit nur einem Kabel, angesprochen wird.

Beispiel-Schaltung des DHT22

Temperatur und Luftfeuchtigkeit messen mit dem DHT22 – Schaltung mit Fritzing erzeugt

Temperatur und Luftfeuchtigkeit messen – Schaltung mit Fritzing erzeugt

Der Sensor benötigt außer einem Widerstand (4,7kΩ) keine weiteren Bauteile und arbeitet mit 5V. Legt man den Sensor mit den Gittern vor sich hin, ist der linke Pin der 5V+ Anschluss, der daneben der Datenpin, der noch mit einem Widerstand (4,7kΩ) mit 5V+ verbunden ist. Der ganz rechte Pin ist der GND. Pin 3 hat keine Funktion und muss nicht weiter beachtet werden.

Die Programm-Bibliothek, die man benötigt heißt DHT sensor library. Am einfachsten lässt sie sich installieren, indem man im Menü auf Sketch>Bibliothek-Einbinden>Bibliotheken verwalten klickt. Oben im Fenster befindet sich ein Eingabefeld, in dem man einfach DHT eingibt. Jetzt kann man die DHT sensor library anklicken und auf Installieren drücken. (Mehr Infos dazu unter: Bibliotheken in Arduino installieren – Danke an Bernd für den Hinweis.)

Beispielcode

Dieses Programm liest Temperatur und Luftfeuchtigkeit aus und stellt sie auf dem LCD-Display dar. Der Sensor kann nur alle ein bis zwei Sekunden ausgelesen werden. Darüber hinaus benötigt er eine Aufwärmphase von zwei Sekunden.

Mit diesem Beispielcode lässt sich schon einiges anfangen. Die Bibliothek selbst bietet aber noch eine Reihe weiterer nützlicher Funktionen, wie z.B. der Fehlerauswertung des Sensors. Wer sich dafür interessiert, soll mal in der Arduino-Software das Beispiel Datei>Beispiele>DHT sensor library>Serial öffnen.

11 Comments

  1. Jörg

    Hallo,
    in dem Schaltbild fehlt der 4,7kΩ Widerstand zwischen +5V und dem Datenpin des Sensors.

    Gruß

    Jörg

  2. jörg

    hallo ich möchte die tempertatur von mehreren räumen erfassen wie bringe ich noch mehr sensoren ein danke im voraus bin absoluter anfänger

  3. Martin Mammele

    zum Thema temperatur und Luftfeuchtigkeit messen

    wie muß das Programm geändert werden, wenn das verwendete Display über I2C angeschlossen wird? zur einsparung von Pins(2 anstatt 6)

  4. Peter

    Hallo
    Ich möchte gerne folgende Schaltung bauen:
    1 Sensor misst die Temperatur
    wenn ein gewisser Schwellwert (zb 30 Grad) überschritten wird, sollen sich Lüfter einschalten (Standardlüfter wie sie in PCs verbaut sind)
    Ist dies mit dem Arduino möglich? Wie muss ich sowas Programmieren und Bauen?

    Danke für die Hilfe

  5. Friedrich Wilhelm

    Hallo

    Ich erhalte beim Kompilieren immer die Fehlermeldung:
    „C:\Program Files (x86)\Arduino\libraries\DHT22\DHT22.cpp:47:24: fatal error: WConstants.h: No such file or Directory“

    Diese Zeile ist in DHT22.cpp unter: extern „C“

    Bitte um Hilfestellung.

  6. Alex

    Hallo
    ich erhalte ebenfalls beim Kompilieren dauernd die Fehlermeldung :
    Users/alex/Documents/Arduino/libraries/DHT22/DHT22.cpp:47:24: fatal error: WConstants.h: No such file or directory
    #include „WConstants.h“

    Bitte um Hilfe
    Danke

  7. Bernd

    Hallo Alex,
    dieser (Anfänger-) Fehler hat mich eine schlaflose Nacht gekostet. Hilfe fand ich hier:
    https://www.arduino.cc/en/pmwiki.php?n=Guide/Libraries#toc2

    Lade die Bibliothek als .ZIP – Datei runter.
    starte die Arduino IDE
    geh auf: Sketch > Bibliothek einbinden > .ZIP- Bibliothek hinzufügen.. > (hier jetzt deinen Ordner und die Bibliothek auswählen)
    dann sollte es funktionieren.

    Viel Erfolg dh4mbm

    (Ich weiß! Der Post ist schon älter, aber vieleicht haben andere Anfänger die selben Probleme wie wir.)

  8. Dicker Döddel

    Dat erinnert mich an damals als ich soetwas Beruflich gemacht habe. ich habe meine Lunte nass gemacht und diese in die Luft gehalten damit ich so die Temperatur messen kann. mhhhhhh.

  9. Phillip

    Moin Männers, Gammelboy 94 hier!

    Ich habe von meinem Lehrer die Aufgabe bekomment diesen Müll zu programieren. Ich hoffe mir kann einer die komplette Vorgensweise erklären?! AMK
    Wäre dufte!

    Euer Gammelboy wuuup wuup :P

  10. Hans

    Moin zusammen,
    ich habe beruflich gerade eine vergleichbare Kiste gebaut und kann daher etwas meiner Erfahrung weitergeben:

    anschließbar sind bei mir zur Zeit insgesamt 8 Sensoren des Typs DHT11, DHT22 oder HYT-221.

    Um mehere DHT-Sensoren anschzuschließen, ist jeweils eine Datenleitung (ich habe beim Mega A8 bis A15 genommen) erforderlich.

    Aber: die DHT-Sensoren kann man, wenn überhaupt nur zur Temperaturmessung gebrauchen. Der Wert der Feuchtigkeit ist genauso gut, als würdest Du eine Glasgugel nehmen und reinschauen. Die Dinger taugen nix.

    Daher kam nun der HYT-221 dazu (ca. 30€ bei Conrad).
    Dieser wird über I2C angebunden, was es einfacher macht, mehrere anzuschließen.

    Allerdings: dieser wird ab Werk immer mit der Adresse 0x28 auselifert. Es gibt aber im Netz ein sketch, um die Adresse zu ändern – dabei wird die Stromversorgung des Sensors über einen I/O-Pin des Arduino angeschlossen, da das Änderungskommando innerhalb von 10ms nach Einschalten des Sensors gesendet werden muß.

    Der HYT ist um längen besser und genauer, als die DHT-Serie.

  11. Hallo in die Runde,
    bezüglich der Genauigkeit würde mich mal interessieren welche preiswerten Alternativen es zum DHT22 gibt.
    Stimmt es, dass die rel. Luftfeuchtigkeit sehr ungenau erfasst wird?
    Ein HYT-221 wäre mir einfach zu teuer da ich in insgesamt sechs Räumen Temperatur- und Luftfeuchtigkeitswerte erfassen möchte.
    Vielen Dank schon mal im Voraus.

    LG Patrick

Schreibe einen Kommentar

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