Bonsoir tout le monde . MON PROJET :
Thème : Conception d’un système de sécurité anti incendie. Description : Ce système va vérifier s’il y a incendie dans une maison en mesurant la température, l’humidité et la fumée. Il contactera le propriétaire de la maison par SMS en cas d’incendie.
MON PROBLEME: Toutes les grandeurs sont récupérées mais en cas de dépassement seuil le système n'envoi pas le SMS. *le code*
// --------- Inclusion des bibliothèques ---------
#include <DHT.h> // Gère la lecture de température et humidité
#include <SoftwareSerial.h> // Crée un port série virtuel pour le SIM800L
// --------- Définition des broches matérielles ---------
#define DHTPIN 11 // Broche DATA du capteur DHT22
#define DHTTYPE DHT22 // Type de capteur : DHT22 (ou DHT11 si besoin)
#define MQ2PIN A0 // Broche analogique pour le capteur de fumée MQ-2
#define LED_OK 3 // LED verte → état normal
#define LED_ALERTE 4 // LED rouge → état d’alerte
#define BUZZER 5 // Buzzer pour alarme sonore
#define SIM800_RX 7 // Arduino → TX du SIM800L
#define SIM800_TX 8 // Arduino → RX du SIM800L (via diviseur de tension)
`
// --------- Création d'objets ---------
SoftwareSerial sim800l(SIM800_RX, SIM800_TX); // Port série virtuel pour le module GSM
DHT dht(DHTPIN, DHTTYPE); // Objet pour interagir avec le capteur DHT
// --------- Variables de configuration ---------
String numero = "+22958161156"; // Numéro à contacter par SMS
float seuilTemp = 50.0; // Seuil température (°C) déclenchant l’alerte
int seuilFumee = 300; // Seuil fumée (valeur brute du MQ-2)
// --------- Initialisation (exécutée 1 seule fois au démarrage) ---------
void setup() {
Serial.begin(9600); // Active la communication série (USB) pour debug
dht.begin(); // Démarre le capteur DHT
pinMode(LED_OK, OUTPUT); // Configure LED verte en sortie
pinMode(LED_ALERTE, OUTPUT); // Configure LED rouge en sortie
pinMode(BUZZER, OUTPUT); // Configure buzzer en sortie
sim800l.begin(9600); // Active la communication série avec le SIM800L
delay(1000); // Pause pour stabiliser le module GSM
// --------- Vérification et configuration du SIM800L ---------
sim800l.println("AT"); // Commande de base → module doit répondre "OK"
delay(500);
sim800l.println("AT+CMGF=1"); // Met le module en mode SMS texte
}
// --------- Boucle principale (s’exécute en continu) ---------
void loop() {
float t = dht.readTemperature(); // 🌡 Lit température en °C
float h = dht.readHumidity(); // Lit humidité en %
int f = analogRead(MQ2PIN); // Lit la valeur de fumée (0 à 1023)
// -------- Affichage en temps réel --------
Serial.print("🌡 Température : ");
Serial.print(t);
Serial.print(" °C\t");
Serial.print(" Humidité : ");
Serial.print(h);
Serial.print(" %\t");
Serial.print(" Fumée : ");
Serial.println(f);
// -------- Test des conditions d’alerte --------
if (t > seuilTemp && f > seuilFumee) {
digitalWrite(LED_ALERTE, HIGH); // LED rouge ON
digitalWrite(LED_OK, LOW); // LED verte OFF
tone(BUZZER, 2000); // Active buzzer (2000 Hz)
// Envoie d’un SMS d’alerte
envoyerSMS(" Alerte Incendie! T=" + String(t) + "°C, H=" + String(h) + "%, Fumée=" + String(f));
} else {
// -------- État normal --------
digitalWrite(LED_OK, HIGH); // LED verte ON
digitalWrite(LED_ALERTE, LOW); // LED rouge OFF
noTone(BUZZER); // Coupe le buzzer
}
delay(2000); // Pause avant la prochaine lecture
}
// --------- Fonction pour envoyer un SMS ---------
void envoyerSMS(String msg) {
sim800l.println("AT+CMGF=1"); // Mode texte pour SMS
delay(500);
sim800l.print("AT+CMGS=\""); // Commande pour envoyer un SMS
sim800l.print(numero); // Numéro de destination
sim800l.println("\"");
delay(500);
sim800l.print(msg); // Écrit le message
sim800l.write(26); // Code Ctrl+Z pour envoyer
delay(3000); // Pause pour laisser le module envoyer
}
`
Merci pour votre aide


