#include <Wire.
h>
#include <LiquidCrystal_I2C.h>
// Adresse I2C du capteur SHT21
#define SHT21_ADDRESS 0x40
// Initialisation de l'écran LCD avec adresse I2C (0x3F ou 0x27 selon ton modèle)
LiquidCrystal_I2C lcd(0x3F, 16, 2); // Adresse et dimensions de l'écran LCD
void setup() {
// Initialisation de la communication série et LCD
Serial.begin(9600); // Pour afficher sur le moniteur série
lcd.begin(16, 2); // Initialisation de l'écran LCD
lcd.print("LCD Initialisé"); // Message de bienvenue
delay(1000); // Attendre 1 seconde
lcd.clear(); // Effacer l'écran LCD
// Initialisation de la communication I2C
Wire.begin();
}
void loop() {
// Lecture de la température depuis le capteur SHT21
Wire.beginTransmission(SHT21_ADDRESS);
Wire.write(0xF3); // Commande pour mesurer la température
Wire.endTransmission();
delay(500); // Attendre la mesure
Wire.requestFrom(SHT21_ADDRESS, 2);
uint16_t temp = Wire.read() << 8 | Wire.read();
float temperature = -46.85 + 175.72 * (temp / 65536.0);
// Lecture de l'humidité depuis le capteur SHT21
Wire.beginTransmission(SHT21_ADDRESS);
Wire.write(0xF5); // Commande pour mesurer l'humidité
Wire.endTransmission();
delay(500); // Attendre la mesure
Wire.requestFrom(SHT21_ADDRESS, 2);
uint16_t hum = Wire.read() << 8 | Wire.read();
float humidity = -6 + 125 * (hum / 65536.0);
// Affichage des résultats sur le moniteur série
Serial.print("Température: ");
Serial.print(temperature);
Serial.print(" °C, Humidité: ");
Serial.print(humidity);
Serial.println(" %");
// Affichage des résultats sur l'écran LCD
lcd.setCursor(0, 0); // Positionnement du curseur sur la première ligne
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1); // Positionnement du curseur sur la deuxième ligne
lcd.print("Hum: ");
lcd.print(humidity);
lcd.print(" %");
delay(2000); // Attendre 2 secondes avant de refaire une lecture
}