#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHT_PIN 7 // Broche de données du DHT11
#define DHT_TYPE DHT11
#define BUZZER_PIN 8 // Broche du buzzer
DHT dht(DHT_PIN, DHT_TYPE);
LiquidCrystal_I2C lcd(0x27, 4, 20); // Adresse I2C de l'écran et dimensions (cols, rows)
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init(); // Utilisation de la méthode init() pour initialiser l'écran LCD
lcd.backlight();
pinMode(BUZZER_PIN, OUTPUT);
digitalWrite(BUZZER_PIN, LOW);
lcd.setCursor(0, 0);
lcd.print("Humidity Monitor");
}
void loop() {
float humidity = dht.readHumidity();
if (isnan(humidity)) {
lcd.setCursor(0, 1);
lcd.print("Error reading DHT");
return;
}
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print("%");
if (humidity < 30 || humidity > 75) {
lcd.setCursor(0, 2);
lcd.print("Alert: Humidity");
lcd.setCursor(0, 3);
lcd.print("out of range!");
digitalWrite(BUZZER_PIN, HIGH);
delay(1000);
digitalWrite(BUZZER_PIN, LOW);
} else {
digitalWrite(BUZZER_PIN, LOW);
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" ");
}
delay(2000);
}