ESP32 - Temperatur- und Luftfeuchtigkeitssensor

Dieses Tutorial erklärt dir, wie man den ESP32 verwendet, um Temperatur- und Feuchtigkeitswerte von DHT11- oder DHT22-Sensoren zu lesen und sie auf dem seriellen Monitor auszugeben.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
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×DHT11 Temperatur-Feuchtigkeitssensor-Modul
1×(Optional) Temperature and Humidity Sensor DHT22
1×10 kΩ Resistor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
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 DHT11- und DHT22-Temperatur- und Feuchtigkeitssensor

Kurz gesagt ist der DHT22-Sensor genauer, hat einen größeren Messbereich, ist aber teurer als der DHT11. Schauen wir uns die Gemeinsamkeiten und Unterschiede zwischen ihnen an.

Die Allmende

  • Die gleiche Pinbelegung
  • Die gleiche Verkabelung zum ESP32
  • Der ähnliche ESP32-Code

Die Unterschiede

Die untenstehende Tabelle zeigt die detaillierten Unterschiede zwischen DHT11 und DHT22.

DHT22 DHT11
The price low cost ultra low cost
The humidity range 0% to 100% 20% to 80%
The humidity accuracy ± 2% to 5% 5%
The temperature range -40°C to 80°C 0°C to 50°C
The temperature accuracy ± 0.5°C ± 2°C
The reading rate 0.5Hz (one time per 2 seconds) 1Hz (one time per second)
Dimension 15.1mm x 25mm x 7.7mm 15.5mm x 12mm x 5.5mm
Operating Voltage3 to 5V 3 to 5V

DHT11- und DHT22-Pinbelegung

Der DHT11- und DHT22-Sensor enthält vier Pins:

  • GND-Pin: Verbinde diesen Pin mit GND (0 V)
  • VCC-Pin: Verbinde diesen Pin mit VCC (3,3 V oder 5 V)
  • DATA-Pin: Der Pin dient der Kommunikation zwischen dem Sensor und dem ESP32
  • NC-Pin: Nicht verbunden
Pinbelegung der DHT11- und DHT22-Temperatur- und Feuchtigkeitssensoren

Wir empfehlen Ihnen dringend die Verwendung von DHT11- und DHT22-Sensormodulen. Die Module verfügen über einen eingebauten Widerstand und haben nur drei Pins: VCC, GND und DATA-Pins (oder alternativ: +, -, und OUT-Pins).

Pinbelegung des DHT11- und DHT22-Temperatur- und Feuchtigkeitsmoduls
image source: diyables.io

Die Reihenfolge der Pins auf dem Modul kann je nach Hersteller unterschiedlich sein. Bitte überprüfen Sie die auf dem Modul gedruckten Pin-Bezeichnungen sorgfältig.

Verdrahtungsdiagramm zwischen DHT11/DHT22 und ESP32

Die Verkabelung zum ESP32 ist bei beiden Sensoren gleich. In der ursprünglichen Form ist ein Widerstand von 5 kΩ bis 10 kΩ erforderlich, um die Datenleitung auf einem hohen Pegel zu halten und die Kommunikation zwischen dem Sensor und dem ESP32 zu ermöglichen.

ESP32 - DHT11-Sensorverkabelung

ESP32 DHT11 Temperatur- und Feuchtigkeitssensor Verdrahtungsdiagramm

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

ESP32 - DHT22 Sensorverdrahtung

ESP32 DHT22 Temperatur- und Feuchtigkeitssensor Verdrahtungsdiagramm

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

ESP32 - DHT11-Modulverkabelung

Die meisten DHT22-Sensormodule verfügen über einen eingebauten Widerstand, sodass Sie ihn nicht hinzufügen müssen. Das spart uns einige Verkabelungs- oder Lötarbeiten.

ESP32 DHT11 Temperatur- und Feuchtigkeitsmodul Verdrahtungsdiagramm

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

ESP32 - DHT22-Modulverkabelung

Die meisten DHT22-Sensor-Module verfügen über einen integrierten Widerstand, sodass Sie ihn nicht hinzufügen müssen. Das spart Ihnen etwas Verkabelungs- oder Lötaufwand.

ESP32 DHT22 Temperatur- und Feuchtigkeitsmodul Schaltplan

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

ESP32-Code - DHT11

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 21 // ESP32 pin GPIO21 connected to DHT11 sensor #define DHT_SENSOR_TYPE DHT11 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 tempC = dht_sensor.readTemperature(); // read temperature in Fahrenheit float tempF = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(tempC) || isnan(tempF) || 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(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

ESP32 Code - DHT22

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 21 // ESP32 pin GPIO21 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 tempC = dht_sensor.readTemperature(); // read temperature in Fahrenheit float tempF = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(tempC) || isnan(tempF) || 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(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

Die beiden oben genannten Codes unterscheiden sich nur in einer Zeile.

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino IDE einrichtet an.
  • Verdrahten Sie die Verbindungen wie im obigen Bild.
  • Schließen Sie das ESP32-Board über ein Mikro-USB-Kabel an Ihren PC an.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Klicken Sie auf das Libraries-Symbol in der linken Leiste der Arduino IDE.
  • Geben Sie „DHT“ in das Suchfeld ein, suchen Sie dann nach der DHT-Sensor-Bibliothek von Adafruit.
  • Installieren Sie die Bibliothek, indem Sie auf die Install-Schaltfläche klicken.
ESP32-DHT-Sensor-Bibliothek
  • Ein Fenster erscheint, das Sie auffordert, Abhängigkeiten für die Bibliothek zu installieren.
  • Installieren Sie alle Abhängigkeiten für die Bibliothek, indem Sie auf die Schaltfläche Alle installieren klicken.
ESP32 Adafruit Unified Sensor-Bibliothek
  • Kopiere einen der oben gezeigten Codes und öffne ihn mit der Arduino-IDE
  • Kompiliere und lade den Code auf das ESP32-Board hoch, indem du in der Arduino-IDE auf die Hochladen-Schaltfläche klickst
  • Mach den Sensor kälter oder heißer. Zum Beispiel bringe den Sensor in die Nähe einer heißen Tasse Kaffee
  • Sieh das Ergebnis im Serial Monitor. Es sieht wie folgt aus:
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.

※ 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!