Die Auswahl an Temperatursensoren für Arduino, ESP8266 und Raspberry Pi ist groß. Neben dem DS18B20 und dem BME280 kann man mit dem DHT22 eine Temperaturmessung durchführen. Zusätzlich zur Temperatur kann man mit dem DHT22 aber auch noch die Luftfeuchtigkeit bestimmen. Und genau um diese Kombination geht es in diesem Tutorial. Wir werden zusammen den DHT22 als Shield am D1 Mini zum laufen bekommen um die Temperatur sowie die Luftfeuchtigkeit auszulesen. Dieser Code dient als Basic-Code - als Ausgangsbasis für Projekte mit dem DHT22-Shield für den D1 Mini.

Solltest du nicht wissen, wie man einen ESP8266 D1 Mini programmiert, kannst du dir gerne diese Schritt-für-Schritt Tutorial anschauen, in dem alles detailliert erklärt wird.

makesmart_dht22_d1_mini_shield

Die Verdrahtung

Die Verdrahtung ist selbsterklärend. Das Shield kann einfach auf den D1 Mini gesteckt werden. Um die Verdrahtung muss man sich dabei natürlich keine Gedanken machen. Es muss lediglich darauf geachtet werden, dass das Shield richtigherum auf den D1 Mini gesteckt wird. Dazu reicht es, die Bezeichnungen der Pins auf dem Shield mit den Bezeichnungen auf dem D1 Mini zu vergleichen.

Solltet ihr kein Shield haben, sondern nur den DHT22 standalone, könnt ihr den DHT22 wie folgt mit dem D1 Mini verdrahten:

ESP8266 D1 Mini DHT22 3.3V / 5V VCC GND GND D4 DATA - NC

Die Produkte die ich für dieses Tutorial hier verwende, findet ihr hier im Warenkorb im makesmart.shop.

Arduino IDE - Benötigte Libaries

Bevor wir die Temperatur und Luftfeuchtigkeit des DHT22 auslesen können, müssen erstmal die passenden Libraries installiert werden. Libraries werden immer gleich installiert. Und zwar über den Bibliotheksverwalter innerhalb der Arduino IDE.

Arduino IDE └───Werkzeuge └───Bibliotheken verwalten...

Die passende Library findet ihr über den Suchbegriff DHT22 Sensor Library. Wie die Suche schon verrät, verwenden wir die DHT22 Sensor Library von Adafruit.

makesmart_DHT22_sensor_library_arduino_ide

Der Code

Nach allen Vorbereitungen kann endlich der passende Programmcode ausgeführt werden. Der nachfolgende Code dient als Ausgangslage für eure Projekte mit dem DHT22.

/* DHT22 Basic Code Temperatur und Luftfeuchtigkeit auslesen mit einem DHT22 Shield Created by cooper, 2020 my.makesmart.net/user/cooper */ #include "DHT.h" #define sensor DHT22 int dataPin = 2; // PIN D4 = GPIO 2 // DHT22 initialisieren DHT dht(dataPin, sensor); // Temperatur float temperature; // Luftfeuchtigkeit float humidity; //Gefühlte Temperatur float heatindex; void setup() { Serial.begin(115200); delay(100); pinMode(dataPin, INPUT); dht.begin(); } void loop() { temperature = dht.readTemperature(); // Die Temperatur des Sensors humidity = dht.readHumidity(); // Die Luftfeuchtigkeit des Sensors // Gefühlte Temperatur wird errechnet aus temperature und humidity heatindex = dht.computeHeatIndex(temperature, humidity, false); Serial.println("##############################"); Serial.println("Temperatur: " + String(temperature) + " °C"); Serial.println("Feuchtigkeit: " + String(humidity) + " %"); Serial.println("Gefühlte Temperatur: " + String(heatindex) + " °C"); delay(3500); }

Es sind drei Variablen verfügbar.

temperature enthält die aktuelle Temperatur als float.

humidity enthält die aktuelle Luftfeuchtigkeit als float.

heatindex enthält die aktuell gefühlte Temperatur als float.

Die Ausgabe im seriellen Monitor sieht wie folgt aus:

############################## Temperatur: 26.10 °C Feuchtigkeit: 32.10 % Gefühlte Temperatur: 25.60 °C Abschluss

Mit diesem minimal Basic-Code könnt ihr jedes Projekt mit einem DHT22 realisieren. 🍾

Ich für meinen Teil möchte mir jetzt dann einen realtime Temperaturlogger programmieren. Da ist die Temperatur bei gewissen Aktionen festhalten und aufzeichnen möchte. Der D1 Mini dient in dem Fall nur als Messstation, welche die Daten an einen zentralen Server sendet.

Viel Spaß mit euren Projekten! 🙂

#Arduino-IDE #D1-Mini #DHT22 #ESP8266 #Sensor