Bonjour,
je souhaite réaliser une passerelle série/sms avec un arduino uno et un shield gsm900 de chez keystudio, je m'explique, mon souhait est "simplement" de transmettre et recevoir des commandes via SMS sur le voie série.
J'arrive a recevoir les sms et les afficher dans le moniteur série, mais je bloque pour l'inverse, c'est a dire entrer un commande dans la console série et la recevoir en un seul sms sur mon téléphone.
Autre petit souci, les sms se stockent sur la carte sim et cette derniere a une capacité limitée, j'aimerai donc pouvoir, de façon automatique, faire un "flush" de messages.
Voici mon code afin que vous puissiez m'aider.
#include "SIM900.h"
#include "sms.h"
SMSGSM sms;
int numdata;
long int SMS;
boolean started=false;
char smsbuffer[160];
char n[20];
char sms_position;
char phone_number[20];
char sms_text[100];
int i;
void setup()
{
Serial.begin(9600);
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);
delay(2000);
digitalWrite(9, LOW);
Serial.println("boot serveur gsm");
if (gsm.begin(9600))
{
Serial.println("\nstatus=READY");
started=true;
}
else
Serial.println("\nstatus=IDLE");
if(started)
{
if (sms.SendSMS("+336XXXXXXXX", "pret"))
{
Serial.println("\nSMS sent OK.");
}
else
{
Serial.println("\nError sending SMS.");
}
}
};
void loop()
{
if(started)
{
sms_position=sms.IsSMSPresent(SMS_UNREAD);
if (sms_position)
{
sms.GetSMS(sms_position, phone_number, sms_text, 100);
if (strcmp (phone_number, "+336XXXXXXXXX") == 0) //filtre la reception de mon numero
{
Serial.print("SMS postion:");
Serial.println(sms_position,DEC);
SMS = atol(sms_text);
Serial.println(sms_text);
}
}
}
delay(2000);
}
Par avance merci.