problème de variable char--> string

j'ai depuis peu fait l’acquisition d'un shield GSM la première partie du code servant à envoyer des sms est réalisée et fonctionne.
mais la deuxième partie devant réceptionner les sms et les interpréter est en stand-by pour cause je n'arrive pas à recuperer le texte des sms pour le comparer l’erreur de l'IDE est

sketch_jun27a.ino: In function 'void loop()':
sketch_jun27a:75: error: incompatible types in assignment of 'int' to 'char [10]'

voici mon code

#include <GSM.h>
#define PINNUMBER ""
GSM gsmAccess;
GSM_SMS sms;


int DIMSPin = 53;  //capteur de mvts infrarouge branché au pin 53
int DIMS;
int PortePin = 4;  //capteur de contacte de la porte branché au pin 4
int porte;
int detection = 1;
char senderNumber[20];
void setup()
{
  Serial.begin(9600);
  pinMode(PortePin, INPUT);
  pinMode(DIMS, INPUT);
  boolean notConnected = true;

  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      // Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
  tone(6,500,1000);
}


void loop()
{
  /****************************PARTIE 1*****************************/
  porte = digitalRead(PortePin);
  delay(1000);
  DIMS = digitalRead(DIMSPin);

  if (DIMS==1 && porte==1 && detection==1)
  {
    Serial.println("detected"); 
    tone(6,900,1000);
    sms.beginSMS("0609732367");
    sms.print("un intru est rentré dans ta chambre");
    sms.endSMS();
    detection=0;    
  }
  if (porte == 0)
  {
    detection=1;
  }

 /****************************PARTIE 2*****************************/
  char c[10];

  if (sms.available())
  {
    tone(6,900,1000);
    
    if(sms.peek()=='#'||sms.available()>10)
    {
      Serial.println("Discarded SMS");
      sms.flush();
    }
    
    
    sms.remoteNumber(senderNumber, 20);

    for (int i=0; i==sms.available();i++)
    {
    c=sms.read()  //                     <---------- mon probleme est ici, je sais c'est faux 
    
    }

    sms.flush();

    if (senderNumber == "0609732367")
    {
      if (c == "AA")
      {
        tone(6,100,1000);
       Serial.println(1); 
      }
      else if (c == "EA")
      {
        tone(6,100,1000);
        Serial.println(2);
      }
      else if (c == "AP")
      {
        tone(6,100,1000);
        Serial.println(3);
      }
      else if (c == "EP")
      {
        tone(6,100,1000);
        Serial.println(4);
      }  
    }
  }
}

Salut,

Essaye plutôt :

 for (int i=0; i<sms.available();i++)
    {
    c[i]=sms.read()  
    }

Encore Merci B@tto j'essais sa demain

me voila encore bloquer sur une histoire de variable. cette fois si c'est sur des comparaisons voici le code

#include <GSM.h>
#define PINNUMBER ""
GSM gsmAccess;
GSM_SMS sms;


int DIMSPin = 53;  //capteur de mvts infrarouge branché au pin 53
int DIMS;
int PortePin = 4;  //capteur de contacte de la porte branché au pin 4
int porte;
int detection = 1;
char senderNumber[20];

void setup()
{
  Serial.begin(9600);
  pinMode(PortePin, INPUT);
  pinMode(DIMS, INPUT);
  Serial.print("initialisation");
  boolean notConnected = true;

  while(notConnected)
  {
    Serial.print(".");
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      // Serial.println("Not connected");
      delay(1000);
    }
  }
  Serial.print("\n");
  Serial.println("GSM initialized");
  tone(6,500,1000);
}


void loop()
{
  /****************************PARTIE 1*****************************/
  porte = digitalRead(PortePin);
  delay(1000);
  DIMS = digitalRead(DIMSPin);

  if (DIMS==1 && porte==1 && detection==1)
  {
    Serial.println("detected"); 
    tone(6,900,1000);
    sms.beginSMS("0609732367");
    sms.print("un intru est rentré dans ta chambre");
    sms.endSMS();
    detection=0;    
  }
  if (porte == 0)
  {
    detection=1;
  }

 /****************************PARTIE 2*****************************/
  char c[10];

  if (sms.available())
  {
    tone(6,900,1000);
    
    
    if(sms.peek()=='#'||sms.available()>10)
    {
      Serial.println("Discarded SMS");
      sms.flush();
    }
    
    
    sms.remoteNumber(senderNumber, 20);
    Serial.println(senderNumber);
    for (int i=0; i<=sms.available();i++)
    {
    c[i]=sms.read();   
    Serial.println("lecture");
    }

    sms.flush();
    Serial.println("test");
    if (senderNumber=="+3360973237")     //     <-------le  problème est ici! 
    {
      Serial.println("bon numero");
      if (c == "AA")                                                   //   <----------- et ici.
      {
        tone(6,100,1000);
       Serial.println(1); 
      }
      else if (c == "EA")                                                   //   <----------- et ici.
      {
        tone(6,100,1000);
        Serial.println(2);
      }
      else if (c == "AP")                                                   //   <----------- et ici.
      {
        tone(6,100,1000);
        Serial.println(3);
      }
      else if (c == "EP")                                                   //   <----------- et ici.
      {
        tone(6,100,1000);
        Serial.println(4);
      }  
    }
  }
}

et voici le moniteur serie

j'ai l'impression que la comparaison du if est toujours fausse

pouvez-vous m'aider ?

Oui tu ne peux pas faire de comparaison aussi simplement. Il faut utiliser strcmp : http://www.cplusplus.com/reference/cstring/strcmp/

Exemple :

if (strcmp(senderNumber,"+3360973237")==0) Serial.println("bon numero");

merci . encore une petite question dans mon programme pour la lecture des message j'utilise une scrutation allant de 1 jusqu’à la fin du message en utilisant la fonction sms.available() qui me renvoie normalement le nombre de caractère dans le message cependant la fonction me renvoie tout le temps le nombre 1. comment puis-je connaitre le nombre de caractère dans le messages

Il est possible que la fonction ne renvoi que 0 ou 1. Essaye ça alors :

int i=0;
while (sms.available())
    {
    c[i++]=sms.read();   
    }

je viens d'essayer mais apparemment le programme reste dans la boucle et n'en sort pas

Edit : a tu une idée du pourquoi du comment ?