#include<SoftwareSerial.h>
SoftwareSerial sim800l(9, 10); // Pin 5 TX ver Pin D9 Arduino, et Pin 4 RX ver D10 Arduino



int Lettre=(5); // La sortie du capteur PIR connecté à la broche 5
int Colis=(12);
int push_switch=6; // interrupteur à bouton-poussoir connecté à la broche 6
int buzzer=8; // buzzer connecté à la broche 8
int Lettre_value; // variable pour stocker la valeur de lecture capteur
int Colis_value;
int SMS_count=0;

void setup()
{
  


pinMode(push_switch,INPUT); // configuring pin 5 as Input
pinMode(buzzer,OUTPUT); // configuring pin 8 as OUTPUT
sim800l.begin(9600);
}

void loop()
{

  
Colis_Verifiez();
Lettre_Verifiez();// sous-routine pour vérifier l’état du capteur et l’activation des sorties
Reinitialiser_1(); // sous-routine pour vérifier si alarme sélecteur pressé ou non
Reinitialiser_2();



}

void Lettre_Verifiez()
{
Lettre_value=digitalRead(Lettre); // Lire la valeur de la sonde de broche 7
if(Lettre_value==HIGH) // Vérifier si le capteur PIR envoie un signal haut à Arduino

{
  digitalWrite(buzzer,HIGH); // Activating the buzzer 
  while(SMS_count<2) // Nombre d’alertes SMS envoi limité à 2
    {  
   SendTextMessage1(); // Fonction pour envoyer à commandes au module GSM
    }
    {
   SendTextMessage2();
    }
}}

void Reinitialiser_1()
{
if(digitalRead(push_switch==HIGH)) // Vérifier si le bouton a été pressé 
{
digitalWrite(buzzer,LOW); // turning OFF the buzzer 
SMS_count=0; // Réactiver l’installation d’alerte SMS
}}

  void SendTextMessage1()
  {
  sim800l.println("AT+CMGF=1"); // Pour envoyer des SMS en Mode texte
  delay(1000);
  sim800l.println("AT+CMGS=\"+33 Votre N° de Telephone\"\r"); 
  delay(1000);
  sim800l.println("Salut Gigi il y a une Lettre Bonne Journee a Toi !"); // le contenu du message à écrire pour l'envoi
  delay(200);
  sim800l.println((char)26); // le caractère d’arrêt
  delay(1000);
  SMS_count++;
  }
  void SendTextMessage2()
  {
  sim800l.println("AT+CMGF=1"); // Pour envoyer des SMS en Mode texte
  delay(1000);
  sim800l.println("AT+CMGS=\"+33 Le Télephone de votre Femme\"\r"); 
  delay(1000);
  sim800l.println("Salut Lolo il y a une Lettre Bonne Journee a Toi !"); // le contenu du message à écrire pour l'envoi
  delay(200);

  sim800l.println((char)26); // le caractère d’arrêt
  delay(1000);
  SMS_count++;
  
  // --------------------------------------------------------------------------------------------------
  }
  
  void Colis_Verifiez()
{
Colis_value=digitalRead(Colis); // Lire la valeur de la sonde de broche 7
if(Colis_value==HIGH) // Vérifier si le capteur PIR envoie un signal haut à Arduino

{
  digitalWrite(buzzer,HIGH); // Activating the buzzer 
  while(SMS_count<2) // Nombre d’alertes SMS envoi limité à 2
  
    {  
   SendTextMessage4(); // Fonction pour envoyer à commandes au module GSM
    }
    {
   SendTextMessage3();
    }
}}

void Reinitialiser_2()
{
if(digitalRead(push_switch==HIGH)) // Vérifier si le bouton a été pressé 
{
digitalWrite(buzzer,LOW); // turning OFF the buzzer 
SMS_count=0; // Réactiver l’installation d’alerte SMS
}}

  void SendTextMessage3()
  {
  sim800l.println("AT+CMGF=1"); // Pour envoyer des SMS en Mode texte
  delay(8a00);
  sim800l.println("AT+CMGS=\"+33xxxxxxxxxxxx\"\r"); 
  delay(800);
  sim800l.println("Salut Lolo il y a un Colis Bonne Journee a Toi !"); // le contenu du message à écrire pour l'envoi
  delay(200);
  sim800l.println((char)26); // le caractère d’arrêt
  delay(80a0);
  SMS_count++;
  }
  
  void SendTextMessage4()
  {
  sim800l.println("AT+CMGF=1"); // Pour envoyer des SMS en Mode texte
  delay(800);
  sim800l.println("AT+CMGS=\"+33xxxxxxxxxxx\"\r"); 
  delay(800);
  sim800l.println("Salut Gigi il y a un Colis Bonne Journee a Toi !"); // le contenu du message à écrire pour l'envoi
  delay(80b0);

  sim800l.println((char)26); // le caractère d’arrêt
  delay(800);
  SMS_count++;
  
}
