ESP32 - Temperatuur- en Vochtigheidssensor - LCD

Deze handleiding legt uit hoe u met de ESP32 de vochtigheid en temperatuur uitleest van DHT11/DHT22 sensoren en deze op een LCD I2C scherm weergeeft.

Hardware Benodigdheden

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×LCD I2C 16x2
1×DHT11 Temperatuur- en Vochtigheidssensor
1×(Optioneel) DHT22 Temperatuur- en Vochtigheidssensor
1×Breadboard (experimenteerprint)
1×Jumperkabels
1×(Optioneel) DC Power Jack
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over DHT11, DHT22 en LCD

We hebben specifieke tutorials over de DHT11 en DHT22 temperatuursensoren en het LCD. Elke tutorial bevat gedetailleerde informatie en stapsgewijze instructies over de hardware pinout, werkingsprincipe, bedrading naar de ESP32 en ESP32 code. Meer informatie vindt u op de volgende links:

Bedradingsschema

In sommige gevallen kan de ESP32 niet genoeg stroom leveren voor het LCD-display. Als het LCD niets weergeeft, voed dan het LCD met een externe voedingsbron. Hieronder vindt u bedrading schema’s voor enkele gebruikssituaties. Let op dat de DHT22 sensor zowel met 5V als 3.3V kan werken, dus u kunt de VCC-pin van de DHT22 aansluiten op 3.3V of 5V.

ESP32 - DHT11 Module LCD I2C Bedrading

  • Bedradingsschema met breadboard (experimenteerprint), ESP32 gevoed via USB-poort, LCD gevoed via ESP32 bord
ESP32 DHT11 sensor LCD Wiring Diagram

This image is created using Fritzing. Click to enlarge image

  • Als de ESP32 wordt gevoed via de Vin-pin en het LCD via een externe voedingsbron
ESP32 DHT11 module LCD Wiring Diagram

This image is created using Fritzing. Click to enlarge image

  • Als de ESP32 wordt gevoed via USB-poort en het LCD via een externe voedingsbron
ESP32 DHT11 LCD I2C Wiring Diagram

This image is created using Fritzing. Click to enlarge image

ESP32 - DHT22 Module LCD I2C Bedrading

  • Bedradingsschema met breadboard (experimenteerprint), ESP32 gevoed via USB-poort, LCD gevoed via ESP32 bord
ESP32 DHT22 sensor LCD Wiring Diagram

This image is created using Fritzing. Click to enlarge image

  • Als de ESP32 wordt gevoed via de Vin-pin en het LCD via een externe voedingsbron
ESP32 DHT22 module LCD Wiring Diagram

This image is created using Fritzing. Click to enlarge image

  • Als de ESP32 wordt gevoed via USB-poort en het LCD via een externe voedingsbron
ESP32 DHT22 LCD I2C Wiring Diagram

This image is created using Fritzing. Click to enlarge image

ESP32 Code - DHT11 Sensor - LCD I2C

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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:

Het I2C-adres van het LCD kan per fabrikant verschillen. In de code gebruiken we het adres 0x27, zoals gespecificeerd door de fabrikant DIYables.

Snelle Stappen

  • Als u voor het eerst een ESP32 gebruikt, zie dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Maak de bedrading volgens bovenstaande afbeelding.
  • Verbind de ESP32 met uw PC via een micro USB-kabel.
  • Open Arduino IDE op uw PC.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en de juiste COM-poort.
  • Klik op het Libraries icoon in de linkerzijbalk van Arduino IDE.
  • Typ “DHT” in het zoekvak en zoek naar de DHT sensor library van Adafruit.
  • Installeer de library door te klikken op de knop Install.
ESP32 DHT sensor library
  • Er verschijnt een venster dat vraagt om dependencies voor de library te installeren.
  • Installeer alle benodigde dependencies door op Install All te klikken.
ESP32 Adafruit Unified sensor library
  • Typ “LiquidCrystal I2C” in het zoekvak en zoek naar de LiquidCrystal_I2C library van Frank de Brabander.
  • Klik op de knop Install om de LiquidCrystal_I2C library te installeren.
ESP32 LiquidCrystal I2C library
  • Kopieer de bovenstaande code en plak deze in Arduino IDE.
  • Compileer en upload de code naar het ESP32 board door te klikken op de knop Upload in Arduino IDE.
  • Maak de sensor kouder of warmer, bijvoorbeeld door de sensor nabij een hete kop koffie te plaatsen.
  • Bekijk het resultaat op het LCD.

Als het LCD niets weergeeft, zie Probleemoplossing LCD I2C.

ESP32 Code - DHT22 Sensor - LCD I2C

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); }

Bovenstaande twee codevoorbeelden verschillen slechts in één regel.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt bij het begrijpen van de stappen.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!