Salut à tout le monde.J'ai commencé depuis hier un projet. Un système anti incendie qui consiste à mesurer la température l'humidité et la fumée.un SMS est envoyé au propriétaire en cas d'incendie. Le problème c'est que j'arrive faire toutes les mesures mais de dépassement de seuil des grandeurs le SMS n'est pas envoyé.aucun Resultat. J'ai utilisé SIM800L avec ESP32. Je j'ai besoin de votre aide.si vous avez déjà un un projet de ce genre.Merci d'avance
Bonjour, si on n’a jamais fait ce genre de projet tu ne veux pas de notre aides
?
Si tu ne dis pas ce qui ce passe exactement, il sera difficile de t’aider surtout à distance.
As-tu au moins essayé un code basique pour tester l'envoi d'un SMS?
Autrement pour t'aider ce serait peut-être une bonne idée de mettre ton code. Entre balises tel que demandé dans "Les bonnes pratiques du forum francophone".
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
Désolé monsieur j'étais en train de modifier la demande . Merci beaucoup . J'ai redemandé avec précision
D'accord c'est compris monsieur .
Je l'ai déjà fait.
Merci beaucoup
Ou est le code et la description du circuit et de son alimentation ?
Ah c’était dans un autre post apparemment
Je viens de regrouper tous les morceaux mais c'est un petit peu dans le désordre.
Désolé.
@vidome_xavier évite d'ouvrir plusieurs fils de discussion sur le même sujet.
Il manque le circuit et la description des alims ainsi que la réponse à la question d’envoi d’un simple sms
Bonsoir
les SIM800L ont ‘l’avenir derrière ‘elles’, la fin de la 2G est pour 2026. De plus le roaming FRee Orange a, il me semble, pris fin.
Pour utiliser sans soucis les cartes SM800 EVB je faisais deux choses :
relier VDD à 5V , nécessaire sur cette carte pour alimenter en 5V le circuit d’adaptation de niveaux logiques des signaux Tx et RX.
Ajouter un condensateur electrolytique de forte valeur directement sur l’arrivée de l’alimentation de la cartes EVB, nécessaire pour garantir au SIM800 que les pics d’appels de courant seront satisfaits.
En votant ma photo en gros plan je remarque que le condensateur aurait mérité d’être ressoudé , mais comme l’heure est à la 4G la carte est à la retraite !
Il n’y a pas de quoi être désolé, c’est pour toi que je dis ça.
Comme les autres l’on indiqué, malheureusement tu n’a pas encore donné assez d’information ![]()
Dans ton code tu ne récupère pas le retour des différentes commandes que tu envois.
Donc tu ne sais pas laquelle n’a pas marché?
Cela te permettrais aussi de savoir que la commande est fini et que tu puisses passer à une autre.




