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?
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.

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.
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.

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:

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.
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.

Über den Autor


Sascha Huber

Hallo, ich bin Sascha, der Gründer von Smarthome Blogger.

Mit einer Leidenschaft für Technologie und einem Hintergrund als Software Engineer habe ich 2016 Smarthome Blogger gegründet. Mein Ziel war es schon immer, innovative Lösungen zu entdecken, die unser Leben einfacher und intelligenter gestalten können. In meinem beruflichen Leben arbeite ich täglich mit Software und Technik, aber auch in meiner Freizeit bin ich stets auf der Suche nach neuen technischen Spielereien und Möglichkeiten, mein Zuhause zu automatisieren und zu verbessern.

Auf Smarthome Blogger teile ich mein Wissen, meine Erfahrungen und meine Begeisterung für alles rund um das Thema Smarthome.



Dieser Beitrag hat dir gefallen?

Dann abonniere doch unseren Newsletter!