ESP8266 - DHT22

Dieses Tutorial zeigt Ihnen, wie Sie den ESP8266 verwenden, um die Temperatur und Luftfeuchtigkeit vom DHT22-Sensor auszulesen. Im Detail werden wir lernen:

Erforderliche Hardware

1×ESP8266 NodeMCU
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×DHT22 Temperatur-Feuchtigkeitssensor-Modul
1×10 kΩ Resistor
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den DHT22-Temperatur- und Luftfeuchtigkeitssensor

Pinbelegung des Temperatur- und Feuchtigkeitssensors

Der DHT22 ist auf dem Markt in zwei Formen erhältlich: als Sensor und als Modul.

Der DHT22-Sensor hat vier Anschlüsse:

  • GND-Pin: muss mit GND (0 V) verbunden werden
  • VCC-Pin: muss mit VCC (5 V) verbunden werden
  • DATA-Pin: wird zur Kommunikation zwischen dem Sensor und dem ESP8266 verwendet
  • NC-Pin: Nicht verbunden, dieser Pin kann außer Acht gelassen werden
Pinbelegung des DHT22-Temperatur- und Feuchtigkeitssensors

Das DHT22-Modul hat drei Pins:

  • GND-Pin (-): muss mit GND (0 V) verbunden werden
  • VCC-Pin (+): muss mit VCC (5 V) verbunden werden
  • OUT-Pin: wird für die Kommunikation zwischen dem Sensor und dem ESP8266 verwendet

※ Notiz:

Die Anordnung der Pins an einem Modul kann je nach Hersteller unterschiedlich sein. Es ist zwingend erforderlich, die auf dem Modul aufgedruckten Beschriftungen als Referenz zu verwenden. Achten Sie darauf, genau hinzusehen!

Verdrahtungsdiagramm

ESP8266 - DHT22-Sensorverkabelung

Ein Widerstand im Bereich von 5 kΩ bis 10 kΩ ist notwendig, um die Datenleitung auf einem hohen Pegel zu halten und somit die Kommunikation zwischen dem Sensor und dem ESP8266 zu ermöglichen.

ESP8266 NodeMCU DHT22 Temperatur- und Feuchtigkeitssensor Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

ESP8266 - DHT22 Modulverkabelung

Die meisten DHT22-Sensormodule verfügen über einen integrierten Widerstand, wodurch zusätzliches Verkabeln oder Löten entfällt.

Schaltplan für ESP8266 NodeMCU DHT22 Temperatur- und Feuchtigkeitsmodul

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wie man den DHT22-Temperatursensor programmiert

  • Zu Beginn muss die Bibliothek eingebunden werden:
#include "DHT.h"
  • Geben Sie den ESP8266-Pin an, der mit dem DHT22-Sensor verbunden ist.
#define DHT_PIN D7
  • Geben Sie den Sensortyp an: DHT22
#define DHT_TYPE DHT22
  • Erstelle ein DHT-Objekt.
DHT dht22(DHT_PIN, DHT_TYPE);
  • Beginnen Sie mit der Einrichtung des Sensors:
dht22.begin();
  • Lies den Feuchtigkeitswert.
float humi = dht22.readHumidity();
  • Lesen Sie die Temperatur in Celsius.
float temperature_C = dht22.readTemperature();
  • Lies die Temperatur in Fahrenheit ab.
float temperature_F = dht22.readTemperature(true);

ESP8266-Code für DHT22

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-dht22 */ #include <DHT.h> #define DHT_SENSOR_PIN D7 // The ESP8266 pin D7 connected to DHT22 sensor #define DHT_SENSOR_TYPE DHT22 DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); dht_sensor.begin(); // initialize the DHT sensor } void loop() { // read humidity float humi = dht_sensor.readHumidity(); // read temperature in Celsius float temperature_C = dht_sensor.readTemperature(); // read temperature in Fahrenheit float temperature_F = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(temperature_C) || isnan(temperature_F) || isnan(humi)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(temperature_C); Serial.print("°C ~ "); Serial.print(temperature_F); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial Wie man die Umgebung für ESP8266 in der Arduino-IDE einrichtet an, falls du ESP8266 zum ersten Mal verwendest.
  • Verbinde die Komponenten wie im Diagramm gezeigt.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Öffne die Arduino-IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E Module), und seinen jeweiligen COM-Port.
  • Schließe ein USB-Kabel an das ESP8266 und den PC an.
  • Öffne die Arduino-IDE, wähle das richtige Board und den richtigen Port aus.
  • Klicke auf das Bibliotheken-Symbol in der linken Leiste der Arduino-IDE.
  • Suche nach “DHT”, und finde dann die DHT-Sensorbibliothek von Adafruit.
  • Drücke die Installieren-Schaltfläche, um die Installation abzuschließen.
ESP8266 NodeMCU DHT22 Sensorbibliothek
  • Sie werden aufgefordert, einige weitere Bibliotheksabhängigkeiten zu installieren.
  • Um alle diese Bibliotheken zu installieren, klicken Sie auf die Alle installieren Schaltfläche.
ESP8266 NodeMCU Adafruit einheitliche Sensorbibliothek
  • Kopieren Sie den Code, der dem Sensor entspricht, den Sie verwenden, und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code zu kompilieren und auf den ESP8266 hochzuladen.
  • Ändern Sie die Temperatur in der Umgebung des Sensors.
  • Überprüfen Sie das Ergebnis im seriellen Monitor.
COM6
Send
Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Zusätzliches Wissen

Lassen Sie uns DHT11- und DHT22-Sensoren vergleichen.

Die Gemeinsamkeiten zwischen DHT11 und DHT22

  • Die Pinbelegung bleibt unverändert.
  • Die Verdrahtung zum ESP8266 bleibt unverändert.
  • Die Programmierung, mithilfe einer Bibliothek, ist vergleichbar; es muss lediglich eine Codezeile geändert werden.

Die Unterschiede zwischen DHT11 und DHT22

DHT11 DHT22
Price ultra low cost low cost
Temperature Range 0°C to 50°C -40°C to 80°C
Temperature Accuracy ± 2°C ± 0.5°C
Humidity Range 20% to 80% 0% to 100%
Humidity Accuracy 5% ± 2 to 5%
Reading Rate 1Hz (once every second) 0.5Hz (once every 2 seconds)
Body size 15.5mm x 12mm x 5.5mm 15.1mm x 25mm x 7.7mm

Offensichtlich ist der DHT22 genauer als der DHT11 und verfügt über einen größeren Messbereich und kostet jedoch mehr.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!