
ESP8266 DHT22 Temperatursensor bauen
21.09.2020
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.
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.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.
Suche oben rechts nach "Adafruit Unified Sensor" und installiere die aktuellste Version. In meinem Fall war "1.0.3" die aktuellste Form dieser Bibliothek.Suche nun nach "dht22" und installiere die aktuellste Version der Bibliothek "DHT sensor library". Bei mir war die aktuellste Version "1.3.4".
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.
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:
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.
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!