/*
Claude EMERY 06/02/2025
ESP32 + DHT22 + LCD2004
*/
#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#define DHTPIN 15
#define DHTTYPE DHT22
LiquidCrystal_I2C lcd(0x27, 20, 4);
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin(); // Initialisation DHT22
lcd.init(); // Initialisation LCD2004
lcd.backlight(); // Rétro-éclairage LCD
}
void loop() {
delay(2000); // Delai 2s
float h = dht.readHumidity(); // Humidité
float t = dht.readTemperature(); // Temperature Celsius
float f = dht.readTemperature(true); // Temperature Fahrenheit ( = true)
if (isnan(h) || isnan(t) || isnan(f)) { // Si pas dedonnée du DHT = ERREUR
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Affichage moniteur série
Serial.print("Humidite: ");
Serial.print(h);
Serial.print("% Temperature Celcius: ");
Serial.print(t);
Serial.print("°C ");
Serial.print("Temperature Fahrenheit: ");
Serial.print(f);
Serial.println("°F "); // println pour retour à la ligne
// Affichage LCD2004
lcd.clear(); // Effacement LCD
lcd.setCursor(0,0); // Ligne 1 - Humidité
lcd.print("Humidite:");
lcd.setCursor(12,0);
lcd.print(h);
lcd.setCursor(18,0);
lcd.write(37); // Affiche % = 37
lcd.setCursor(0,1); // Ligne 2 - Température Celcius
lcd.print("Temp Cel:");
lcd.setCursor(12,1);
lcd.print(t);
lcd.setCursor(18,1);
lcd.print("C");
lcd.setCursor(0,2); // Ligne 3 - Température Fahrenheit
lcd.print("Temp Far:");
lcd.setCursor(11,2);
lcd.print(f);
lcd.setCursor(18,2);
lcd.print("F");
lcd.setCursor(6,3); // Ligne 4 - Affiche ******
lcd.print("********");
delay(2000); // delai 2s
}