Fonction SMS a ajouter dans mon programme

Bonjour donc après être parvenu a pouvoir envoyer et recevoir des SMS je voudrais savoir comment faire pour commande sa arduino en envoyant des SMS.Par exemple je m’explique j’envoie a la GSM un message qui sera le suivant “info” puis le GSM me renverra un SMS avec des info(température…) et vu que je suis un débutant je ne sais pas comment faire pour faire comprendre a la arduino le message
Donc si quelqu’un pourrait m’aider ça serait sympa :slight_smile:
Voila le programme :

#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>
#include <Ultrasonic.h>
#include <OneWire.h> // Inclusion de la librairie OneWire
#include <SoftwareSerial.h>
#include <SoftwareSerial.h>
#include <String.h>


#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define TEAL 0x6
#define vanne 2     //pin de connexion de la commande de la vanne


Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();


OneWire ds(5); // Création de l'objet OneWire ds
Ultrasonic ultrasonic(4);
SoftwareSerial SIM900(7, 8);
SoftwareSerial mySerial(7,8);
char incoming_char=0;
float temp;
//boolean risquegel=false;
boolean messageEnvoye=false;
boolean oui = false ;

 
// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp){
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté
 
  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }
   
  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur
 
  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur
 
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
   
  ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(800);             // Et on attend la fin de la mesure
   
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad
 
  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus
   
  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625; 
   
  // Pas d'erreur
  return true;
}
 
// setup()
void setup() {
  mySerial.begin(19200);              
  Serial.begin(19200);    
 
  lcd.begin(16, 2);
  
   pinMode(vanne, OUTPUT);      //pin en sortie 
 
  digitalWrite(vanne, LOW); 
  

}
 
// loop()
void loop() {
  
  lcd.setBacklight(0x6);
  
  
   
  // Lit la température ambiante à ~1Hz
  if(getTemperature(&temp)) {
     
    // Affiche la température
    lcd.setCursor(0,0);
    lcd.print("Temp: ");
    lcd.print(temp);
    lcd.print((char)223); // caractère °
    lcd.print('C');
  }
{
   lcd.setCursor(0,1);
   ultrasonic.MeasureInCentimeters();
   lcd.print("Volume: ");
   lcd.print(ultrasonic.RangeInCentimeters,DEC); 
   lcd.print("CM              ");
}   

  if (temp > 10) {
  risquegel();
  //  else {
//  risquegel = false ;
//  messageEnvoye=false;
//} 


}

char Str2[3] = {'o', 'u', 'i'};
  //after start up the program, you can using terminal to connect the serial of gprs shield,
  while((Str2[3]) != oui)
    {

  if (Serial.available())
    switch(Serial.read())
       {
         risquegel();
       } 
  if (mySerial.available())
    Serial.write(mySerial.read());
   }

}



   
void risquegel() {
  
if (messageEnvoye == false) {
  
     mySerial.print("AT+CMGF=1\r");    
     delay(100);
     mySerial.println("AT + CMGS = \"+33778243716\"");
     delay(100);
     mySerial.println("Attention l'eau risque de geler, voulez vous vider la cuve ?");
     mySerial.println((char)26);
     delay(100);
     mySerial.println();
     messageEnvoye=true;
     }
    

     char Str2[3] = {'n', 'o', 'n'};
  if ((Str2[3]) == oui)
   {
  
      digitalWrite(vanne, HIGH);   // ouvre la vanne 
      delay(1000);            // attend 1s 
      digitalWrite(vanne, LOW);    // ferme la vanne 
      delay(2000);            // attend 2s puis réouvre la vanne
   }
}
     

  
//  void ShowSerialData()
//{
//  while(mySerial.available()!=0)
//  Serial.write(mySerial.read());
//}