Bonjour,
Dans le cadre d'un projet pour mon DUT nous avons besoin moi et mon binôme de traiter des messages reçus via la carte GSM branchée à l'arduino.
Nous arrivons parfaitement à envoyer un sms de confirmation, cependant nous avons du mal à comprendre comment marchent les fonction sms.available() et sms.flush().
La première semble nous renvoyer une valeur qui nous paraît aléatoire.
La deuxième quant à elle semble ne pas effacer le message lu. J'ai cru voir sur quelques topics à ce sujet qu'il pouvait hypothétiquement avoir un problème pour effacer les messages stockés sur la carte sim.
Je vous avouerai que nous sommes nouveaux dans ce domaine donc si vous avez de petits conseils à nous donner, cela serait parfait.
La majorité de notre code est directement issue des exemples présents dans l'IDE d'Arduino.
Voici notre code :
#include <GSM.h>
#define PINNUMBER ""
GSM gsmAccess;
GSM_SMS sms;
char txtMsg[200] = "Test";
char remoteNumber[20]="0000000000";
char c; //chaine de caractère dans laquelle est stockée le sms
char senderNumber [20];
void setup() {
void sendSMS();
Serial.begin(9600);
Serial.println("OK\n");
boolean notConnected = true;
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
{
Serial.println("Not connected");
delay(1000);
}
}
sendSMS();
}
void loop() {
if (sms.available()){
Serial.println("Message received from:");
sms.remoteNumber(senderNumber, 20);
Serial.println(senderNumber);
while(c=sms.read())
Serial.print(c);
Serial.println("\nEND OF MESSAGE");
}
sms.flush();
Serial.println("Message deleted");
delay(1000);
}
void sendSMS(){
Serial.print("Message to mobile number: ");
Serial.println(remoteNumber);
// sms text
Serial.println("SENDING");
Serial.println();
Serial.println("Message:");
Serial.println(txtMsg);
// send the message
sms.beginSMS(remoteNumber);
sms.print(txtMsg);
sms.endSMS();
Serial.println("\nCOMPLETE!\n");
}
Globalement le code marche mais :
- Bloque quelque fois juste après avoir noté "OK"
- Bloque quelque fois à l'envoi du sms "Test" au numéro "0000000000"
- Si tout marche, 1 seul sms est lu et ensuite on a une infinité de "Message deleted".
Un grand merci d'avance !!
Bretuu