ragazzi ho provato a buttare giu un pò di codice
secondo voi può andare bene?
ho preso l'esempio del ricevitore sms e ho aggiunto un pò di codice
// SMS receiver
// include the GSM library
#include <GSM.h>// PIN Number for the SIM
#define PINNUMBER ""// initialize the library instances
GSM gsmAccess;
GSM_SMS sms;// Array dell'ultimo numero di SMS ricevuto
char senderNumber[20];void setup()
{
// initialize serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}Serial.println("Ricevitore Messaggi SMS");
// Stato di connessione
boolean notConnected = true;// Inizio connessione GSM
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
{
Serial.println("Non Connesso");
delay(1000);
}
}Serial.println("Inizializzazione GSM");
Serial.println("In attesa di messaggi");
}void loop()
{
//queste variabili saranno dichiarate all'inizio...messe qui solo per comodità
char TestoSMS;
int valore = 0;
int valore1 = 0;
int OreRele1On = 0;
int OreOff = 0;// Se ci sono SMS disponibili()
if (sms.available())
{
int conta=0;
Serial.println("Messagio ricevuto da:");// Prende il numero
sms.remoteNumber(senderNumber, 20);
Serial.println(senderNumber);//Legge i bytes del messaggio e li scrivie
while(TestoSMS=sms.read())//legge un carattere alla volta
{Serial.print(TestoSMS);
if(conta==0)
{
char car = TestoSMS;
car = car - 48; // trasforma il carattere carattere da ASCII a binario
valore = car;
}
else
if(conta==1)
{
char car1 = TestoSMS;
car1 = car1 - 48; // trasforma il secondo carattere da ASCII a binario
valore1 = car1;
}
else
if(conta==3)
{
switch (TestoSMS) { // va ad assegnare il valore alla variabile selezionata
case 'R':
OreRele1On = ((valore*10)+valore1);
conta=0;
break;case 'M':
OreOff = ((valore*10)+valore1);
conta=0;
break;}
}
conta++;
}// Elimina i messaggi dalla memoria del modem.
Serial.println("Fine del Messaggio");
sms.flush();
Serial.println("Messaggio eliminato");delay(1000);
}
}