ESP32 - Temperatur- und Luftfeuchtigkeitssensor - LCD

Dieses Tutorial erklärt Ihnen, wie Sie den ESP32 verwenden, um Feuchtigkeits- und Temperaturwerte von DHT11/DHT22-Sensoren zu lesen und auf einem LCD mit I2C anzuzeigen.

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×LCD I2C 16x2
1×DHT11 Temperatur- und Feuchtigkeitssensor
1×(Optional) DHT22 Temperature and Humidity Sensor
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, DHT22 und LCD

Wir haben spezifische Tutorials zu DHT11-, DHT22-Temperatursensoren und LCD. Jedes Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zur Hardware-Pinbelegung, Funktionsweise, Verdrahtung zum ESP32, ESP32-Code... Weitere Informationen dazu finden Sie unter den folgenden Links:

Verdrahtungsdiagramm

In einigen Fällen liefert der ESP32 möglicherweise nicht genügend Strom für das LCD-Display. Wenn das LCD-Display nichts anzeigt, versorgen Sie es mit einer externen Stromquelle. Die untenstehenden Verdrahtungsdiagramme zeigen einige Anwendungsfälle. Beachten Sie, dass der DHT22-Sensor mit 5V oder 3,3V betrieben werden kann, sodass Sie den VCC-Pin des DHT22 an den 3,3-V-Pin oder den 5-V-Pin anschließen können.

ESP32 - DHT11-Modul LCD I2C-Verkabelung

  • Schaltplan mit Steckbrett, den ESP32 über den USB-Anschluss mit Strom versorgen, das LCD über das ESP32-Board mit Strom versorgen
ESP32 DHT11-Sensor LCD-Schaltplan

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.

  • Wenn der ESP32 über den Vin-Pin mit einer externen Stromversorgung betrieben wird und das LCD von einer externen Stromquelle gespeist wird
ESP32 DHT11 Modul LCD-Verdrahtungsdiagramm

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

  • Wenn der ESP32 über den USB-Anschluss mit Strom versorgt wird und das LCD von einer externen Stromquelle betrieben wird
ESP32 DHT11 LCD I2C Verdrahtungsdiagramm

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

ESP32 – DHT22-Modul LCD I2C-Verkabelung

  • Verdrahtungsdiagramm mit Breadboard, ESP32 über USB-Anschluss mit Strom versorgen, LCD über das ESP32-Board mit Strom versorgen
ESP32 DHT22-Sensor LCD-Schaltplan

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

  • Wenn das ESP32 über den Vin-Pin mit Strom versorgt wird und das LCD von einer externen Stromquelle gespeist wird
ESP32 DHT22-Modul LCD-Verkabelungsdiagramm

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

  • Wenn der ESP32 über den USB-Anschluss mit Strom versorgt wird und das LCD von einer externen Stromquelle betrieben wird
ESP32 DHT22 LCD I2C Verdrahtungsdiagramm

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

ESP32-Code - DHT11-Sensor - LCD I2C

/* * 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-lcd */ #include <DHT.h> #include <LiquidCrystal_I2C.h> #define DHT_SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DHT11 sensor #define DHT_SENSOR_TYPE DHT11 LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { dht_sensor.begin(); // initialize the DHT sensor lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { float humi = dht_sensor.readHumidity(); // read humidity float tempC = dht_sensor.readTemperature(); // read temperature lcd.clear(); // check whether the reading is successful or not if (isnan(tempC) || isnan(humi)) { lcd.setCursor(0, 0); lcd.print("Failed"); } else { lcd.setCursor(0, 0); // display position lcd.print("Temp: "); lcd.print(tempC); // display the temperature lcd.print("°C"); lcd.setCursor(0, 1); // display position lcd.print("Humi: "); lcd.print(humi); // display the humidity lcd.print("%"); } // wait a 2 seconds between readings delay(2000); }

※ Notiz:

Die LCD-I2C-Adresse kann von Hersteller zu Hersteller unterschiedlich sein. Im Code haben wir die Adresse 0x27 verwendet, die vom Hersteller DIYables festgelegt wird.

Schnelle Schritte

  • Wenn dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet an.
  • Schließen Sie die Verkabelung gemäß dem obigen Bild an.
  • Verbinden Sie das ESP32-Board mit Ihrem PC über ein Micro-USB-Kabel.
  • Öffnen Sie die Arduino-IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und COM-Port.
  • Klicken Sie auf das Bibliotheken-Symbol in der linken Seitenleiste der Arduino-IDE.
  • Geben Sie „DHT“ in das Suchfeld ein, suchen Sie anschließend nach der DHT-Sensor-Bibliothek von Adafruit.
  • Installieren Sie die Bibliothek, indem Sie auf die Installieren-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 der Bibliothek, indem Sie auf die Schaltfläche Alle installieren klicken.
ESP32 Adafruit einheitliche Sensorbibliothek
  • Geben Sie “LiquidCrystal I2C” in das Suchfeld ein, suchen Sie dann nach der LiquidCrystal_I2C-Bibliothek von Frank de Brabander
  • Klicken Sie auf die Schaltfläche Installieren, um die LiquidCrystal_I2C-Bibliothek zu installieren.
ESP32 LiquidCrystal I2C-Bibliothek
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino-IDE ein.
  • Kompilieren und laden Sie den Code auf das ESP32-Board, indem Sie in der Arduino-IDE auf die Hochladen-Schaltfläche klicken.
  • Machen Sie den Sensor kälter oder heißer. Zum Beispiel den Sensor in die Nähe einer heißen Tasse Kaffee stellen.
  • Sehen Sie das Ergebnis auf dem LCD.

Wenn das LCD nichts anzeigt, siehe Fehlerbehebung am LCD I2C.

ESP32-Code - DHT22-Sensor - LCD I2C

/* * 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-lcd */ #include <DHT.h> #include <LiquidCrystal_I2C.h> #define DHT_SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DHT22 sensor #define DHT_SENSOR_TYPE DHT22 LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { dht_sensor.begin(); // initialize the DHT sensor lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { float humi = dht_sensor.readHumidity(); // read humidity float tempC = dht_sensor.readTemperature(); // read temperature lcd.clear(); // check whether the reading is successful or not if (isnan(tempC) || isnan(humi)) { lcd.setCursor(0, 0); lcd.print("Failed"); } else { lcd.setCursor(0, 0); // display position lcd.print("Temp: "); lcd.print(tempC); // display the temperature lcd.print("°C"); lcd.setCursor(0, 1); // display position lcd.print("Humi: "); lcd.print(humi); // display the humidity lcd.print("%"); } // wait a 2 seconds between readings delay(2000); }

Die beiden obigen Codes unterscheiden sich nur in einer Zeile.

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!