Devices & Components
1
Arduino Uno Rev3
1
DHT11
1
Diode Led Green 5MM
1
Diode Led Red 5mm
1
Active Buzzer 5V (HXD)
1
LCD 16x2
Software & Tools
Arduino IDE
Project description
Code
Code
Comments
Only logged in users can leave comments
Devices & Components
Arduino Uno Rev3
DHT11
Diode Led Green 5MM
Diode Led Red 5mm
Active Buzzer 5V (HXD)
LCD 16x2
Software & Tools
Arduino IDE
Project description
Code
Code
1#include <LiquidCrystal.h> 2#include "DHT.h" 3 4LiquidCrystal lcd(7, 8, 9, 10, 11, 12); 5DHT dht(2, DHT11); 6 7int buzzer = 4; 8int ledVerte = 5; 9int ledRouge = 6; 10 11float seuilTemp = 28.0; 12float seuilHum = 70.0; 13 14unsigned long previousBipMillis = 0; 15const long intervalBip = 500; // bip/pause 0,5s 16bool buzzerState = false; 17 18unsigned long previousLCDMillis = 0; 19const long intervalLCD = 2000; // rafraîchissement LCD 2s 20 21void setup() { 22 lcd.begin(16, 2); 23 dht.begin(); 24 pinMode(buzzer, OUTPUT); 25 pinMode(ledVerte, OUTPUT); 26 pinMode(ledRouge, OUTPUT); 27} 28 29void loop() { 30 float humidite = dht.readHumidity(); 31 float temperature = dht.readTemperature(); 32 33 if (isnan(humidite) || isnan(temperature)) { 34 lcd.clear(); 35 lcd.setCursor(0, 0); 36 lcd.print("Erreur capteur"); 37 digitalWrite(ledVerte, LOW); 38 digitalWrite(ledRouge, LOW); 39 noTone(buzzer); 40 delay(2000); 41 return; 42 } 43 44 bool alerte = (humidite > seuilHum || temperature > seuilTemp); 45 46 // --- Gestion du buzzer --- 47 unsigned long currentMillis = millis(); 48 if (alerte) { 49 digitalWrite(ledVerte, LOW); 50 digitalWrite(ledRouge, HIGH); 51 52 if (currentMillis - previousBipMillis >= intervalBip) { 53 previousBipMillis = currentMillis; 54 buzzerState = !buzzerState; 55 if (buzzerState) { 56 tone(buzzer, 1000); // bip 57 } else { 58 noTone(buzzer); // pause 59 } 60 } 61 } else { 62 digitalWrite(ledVerte, HIGH); 63 digitalWrite(ledRouge, LOW); 64 noTone(buzzer); 65 previousBipMillis = currentMillis; // reset timer 66 } 67 68 // --- Rafraîchissement LCD toutes les 2s --- 69 if (currentMillis - previousLCDMillis >= intervalLCD) { 70 previousLCDMillis = currentMillis; 71 72 lcd.clear(); 73 if (alerte) { 74 lcd.setCursor(0, 0); 75 lcd.print("!!! ALERTE !!!"); 76 lcd.setCursor(0, 1); 77 lcd.print("OUVRIR FENETRE!"); 78 } else { 79 lcd.setCursor(0, 0); 80 lcd.print("Temp = "); 81 lcd.print(temperature); 82 lcd.print((char)223); 83 lcd.print("C"); 84 85 lcd.setCursor(0, 1); 86 lcd.print("Humid = "); 87 lcd.print(humidite); 88 lcd.print("%"); 89 } 90 } 91}
Comments
Only logged in users can leave comments