#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 8 // Broche de connexion du capteur DHT22
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 4); // Adresse I2C de l'écran LCD
const int LDR_PIN = A0; // Broche de connexion du capteur de luminosité
const int LIGHT_THRESHOLD = 500; // Seuil de luminosité pour considérer que la lumière est allumée
void setup() {
Serial.begin(9600);
lcd.begin(16, 4);
lcd.backlight();
// Initialise le capteur DHT
dht.begin();
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Vérifie si la lecture du capteur est réussie
if (!isnan(humidity) && !isnan(temperature)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Piece: Chambre"); // Changez "Chambre" par le nom de la pièce
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C ");
lcd.setCursor(0, 2);
lcd.print("Hum: ");
lcd.print(humidity);
lcd.print(" %");
int lightValue = analogRead(LDR_PIN);
lcd.setCursor(0, 3);
lcd.print("Lumiere: ");
if (lightValue > LIGHT_THRESHOLD) {
lcd.print("Allumee");
} else {
lcd.print("Eteinte");
}
// Envoyer les données sur demande
if (Serial.available() > 0) {
char request = Serial.read();
if (request == 'D') {
Serial.print("D,");
Serial.print("Chambre,"); // Changez "Chambre" par le nom de la pièce
Serial.print(temperature);
Serial.print(",");
Serial.print(humidity);
Serial.print(",");
Serial.println(lightValue > LIGHT_THRESHOLD ? "Allumee" : "Eteinte");
}
}
delay(1000); // Attendre 1 seconde entre les lectures
} else {
Serial.println("Erreur de lecture du capteur DHT");
}
}