Components and supplies
1
Arduino Uno Rev3
1
DHT11
1
Diode Led Green 5MM
1
Diode Led Red 5mm
1
Active Buzzer 5V (HXD)
1
LCD 16x2
Apps and platforms
1
Arduino IDE
Project description
Code
Code
Comments
Only logged in users can leave comments
Components and supplies
Arduino Uno Rev3
DHT11
Diode Led Green 5MM
Diode Led Red 5mm
Active Buzzer 5V (HXD)
LCD 16x2
Apps and platforms
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