// déclarer la bibliothèque LiquidCrystal
#include <LiquidCrystal.h>
LiquidCrystal lcd(9, 8, 7, 6, 5, 4);
// Définition des broches
const int temperaturePin = A0;
const int gasPin = A1;
const int buzzerPin = 3;
const int relay1 = 10;
const int relay2 = 11;
const int ledPin = 12; // Définir la broche de la LED
// Définir un seuil pour le capteur de gaz
const int seuilGaz = 300; // Ajustez cette valeur selon votre capteur
// Variables pour la détection de fumée
bool smokeDetected = false;
void setup() {
[Link](16, 2);
pinMode(buzzerPin, OUTPUT);
pinMode(relay1, OUTPUT); // Configurer la broche du relais 1
pinMode(relay2, OUTPUT); // Configurer la broche du relais 2
pinMode(ledPin, OUTPUT); // Configurer la broche de la LED
[Link](9600);
void loop() {
// Lecture de la température
int temperatureValue = analogRead(temperaturePin);
float temperature = (temperatureValue * 5.0 / 1023.0) * 100; // Conversion en degrés Celsius
// Lecture du capteur de gaz
int gasValue = analogRead(gasPin);
// Affichage de la température sur l'écran LCD
[Link](0, 0);
[Link]("Temp: ");
[Link](temperature);
[Link](" C");
// Vérification de la détection de gaz
if (gasValue > seuilGaz) {
smokeDetected = true; // Activer la détection de fumée
} else {
smokeDetected = false; // Désactiver la détection de fumée
// Vérification de la température et de la détection de fumée
if (temperature >= 100 || smokeDetected) {
digitalWrite(buzzerPin, HIGH); // Activer le buzzer
digitalWrite(relay1, HIGH); // Fermer le relais 1
digitalWrite(relay2, HIGH); // Fermer le relais 2
[Link](0, 1);
[Link]("ALERT! FUMEE!");
// Faire clignoter la LED
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(buzzerPin, LOW); // Désactiver le buzzer
digitalWrite(relay1, LOW); // Ouvrir le relais 1
digitalWrite(relay2, LOW); // Ouvrir le relais 2
[Link](0, 1);
[Link](" "); // Effacer le message d'alerte
// Éteindre la LED
digitalWrite(ledPin, LOW);
// Clignoter la LED si la température est de 100°C ou plus
if (temperature >= 100) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
delay(500); // Attendre 0,5 seconde avant la prochaine lecture