ESP8266 DHT22 Temperatursensor bauen

21.09.2020

Tutorial, ESP8266 Projekte

Im heutigen Tutorial möchte ich dir zeigen, wie du dir ganz leicht einen ESP8266 DHT22 Temperatur-Sensor bauen kannst. Neben dem DHT22 zeige ich dir auch ein Beispiel mit dem DHT11. Außerdem erkläre ich dir, was die beiden Sensoren gemeinsam haben und worin sich die beiden unterscheiden. Falls du noch nicht mit dem ESP8266 gearbeitet hast, solltest du dir mein NodeMCU ESP8266 Einführungstutorial ansehen. In diesem Tutorial verwende ich die folgenden beiden Sensor-Varianten:

ESP8266 DHT22 vs DHT11

Der DHT22 und der DHT11 sind beide Temperatur- und Luftfeuchtigkeitssensoren. Sie haben die 3-5 Volt benötigte Versorgungsspannung, die vier Pins und Stromverbrauch von 2,5 mA während des Messvorgangs gemeinsam.

DHT22 vs DHT11 - Was sind die Unterschiede? DHT22 vs DHT11 - Was sind die Unterschiede?
Unterschiedlich sind Abmessungen, Preis, Messgeschwindigkeit, Messbereiche und Messgenauigkeit. Während der DHT11 etwas kleiner und etwas billiger ist, als der DHT22, sind auch die Messbereiche etwas kleiner und die möglichen Schwankungen etwas größer (20-80% Luftfeuchtigkeit bei 5% Schwankungen, 0-50°C Temperatur bei 2% Schwankungen). Der DHT22 ist etwas genauer und hat größere Messbereiche (0-100% Luftfeuchtigkeit bei 2-5% Schwankungen; -40 bis 80°C Temperatur bei 0,5% Schwankungen). Dafür ist der DHT22 bei den Messungen ein wenig langsamer. Während der DHT11 einmal pro Sekunde eine neue Messung vornehmen kann, liefert der DHT22 lediglich alle 2 Sekunden ein neues Messergebnis.
Die beiden Sensoren lassen sich für ESP8266-Projekte nutzen. Die beiden Sensoren lassen sich für ESP8266-Projekte nutzen.

ESP8266 DHT22 Vorbereitungen

Um den DHT11 oder den DHT22 mit dem ESP8266 verwenden zu können, musst du zuerst ein paar Vorbereitungen in der Arduino IDE vornehmen. Dabei müssen die benötigten Bibliotheken heruntergeladen und zur Arduino IDE hinzugefügt werden. Danach bist du einsatzbereit. Um neue Bibliotheken installieren zu können, klickst du im Menu auf den Punkt "Sketch" und gehst mit der Maus auf "Bibliothek einbinden". Dort klickst du auf "Bibliotheken verwalten...", damit sich der Library-Manager öffnet.

Installiere zuerst die Bibliotheken für den ESP8266 Temperatur-Sensor. Installiere zuerst die Bibliotheken für den ESP8266 Temperatur-Sensor.
Suche oben rechts nach "Adafruit Unified Sensor" und installiere die aktuellste Version. In meinem Fall war "1.0.3" die aktuellste Form dieser Bibliothek.

 

Installiere die Bibliothek "Adafruit Unified Sensors".
Suche nun nach "dht22" und installiere die aktuellste Version der Bibliothek "DHT sensor library". Bei mir war die aktuellste Version "1.3.4".

 

Jetzt kannst du die ESP8266 DHT22 und DHT11 Bibliothek installieren.
Jetzt sind die nötigen Bibliotheken installiert und du kannst mit der Programmierung beginnen.

ESP8266 DHT22 Temperatur Sensor

Der DHT22 lässt sich relativ leicht am ESP8266 anschließen benutze einfach drei Jumper-Kabel und verbinde den Sensor mit dem ESP8266, wie in der Grafik abgebildet.

Mit dieser Schaltung wird der ESP8266 DHT22-Sensor gebaut. Mit dieser Schaltung wird der ESP8266 DHT22-Sensor gebaut.
Dann kannst du den ESP8266 DHT22 Sensor auch schon programmieren. Der Code dazu ist relativ simpel gehalten:

  • Zuerst wird die Bibliothek eingebunden (#include "DHT.h")
  • Dann wird der verwendete Sensor angegeben (#define DHT_TYPE DHT22)
  • Anschließend wird definiert, dass der Sensor an Pin 5 angeschlossen wurde und das Sensor-Objekt definiert
  • Die Setup-Methode startet die serielle Ausgabe und initialisiert den DHT22-Sensor
  • Die Loop-Methode liest Temperatur und Luftfeuchtigkeit ein und gibt sie über die serielle Ausgabe aus - dann wird eine Sekunde gewartet

Hier der komplette Code:

            
                 #include "DHT.h" #define DHT_TYPE DHT22 const int DHT_PIN = 5; DHT dht(DHT_PIN, DHT_TYPE); void setup() { Serial.begin(9600); dht.begin(); } // runs over and over again void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.print("Temperatur: "); Serial.print(t); Serial.print("°C, Luftfeuchtigkeit: "); Serial.print(h); Serial.println("%"); delay(1000); }             
        
Wenn das Programm ausgeführt wird, solltest du etwa die folgende Ausgabe auf dem seriellen Monitor erhalten:
Das Programm des ESP8266 DHT22 Sensors gibt Temperatur und Luftfeuchtigkeit aus.

ESP8266 DHT11 Temperatur Sensor

Du kannst neben dem DHT22 auch den DHT11 mit dem ESP8266 verwenden. Dazu ist nur eine kleine Anpassung im Code notwendig. Die Schaltung bleibt jedoch gleich, wie du in der folgenden Abbildung sehen kannst.

Die Schaltung mit dem DHT11 ist sehr simpel. Die Schaltung mit dem DHT11 ist sehr simpel.
Damit der Code mit dem DHT11 funktioniert, musst du nur die folgende Zeile bearbeiten:
            
                 #define DHTTYPE DHT22             
        
Statt "DHT22" trägst du "DHT11" ein. Dann sollte die Zeile so aussehen:
            
                 #define DHTTYPE DHT11             
        
Jetzt kannst du ganz einfach den DHT11 für deine Messungen verwenden. Ansonsten bleibt der Code unverändert. Ich hoffe, dass dir mein Tutorial ein wenig dabei weiterhelfen konnte, einen Temperatursensor mit dem ESP8266 zu bauen. Schau dir am besten auch mal mein ESP8266 Deep Sleep Tutorial an! Damit kannst du den ESP8266 in einen Stromsparmodus versetzen und ihn zum Beispiel mit einem Akku betreiben. Dann könnte er in regelmäßigen Abständen die aktuelle Temperatur und Luftfeuchtigkeit per WiFI an einen MQTT Server senden.



Dieser Beitrag hat dir gefallen?

Dann abonniere doch unseren Newsletter!