Envoi de SMS par GSM 800L EVB avec Arduino UNO

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