salve ragazzi...
sto implementando il mio progettino basato su arduino uno e gprs shield sim900 (seeedstudio)
fino ad ora tutto ok.. riesco a far partire chiamate o sms al verificarsi di alcune condizioni ecc...
ora mi si pone un problema enorme per me....
vorrei che arduino interpreti una stringa arrivata via sms ed esegua un comando x...
ho cercato di tutto ma non ci sono proprio riuscito...
le librerie che ho usato per la mia shield sono state fatte a mano da me e da qualche altro utente del forum, funzionano bene ma non trattano assolutamente la lettura degli sms...
girando in rete ho letto qualcosa sulle librerie GSM della seedstudio stessa... dicono che sono molto complete ma nn so proprio da dove iniziare per istallarle....
qualcuno di voi ha qualche altra idea per superare il mio ostacolo?
avete provato queste librerie GSM?
vi posto un pezzo del mio codice dove ovviamente manca la lettura degli sms..... magari qualcuno mi da qualche dritta per farla direttamente io....
#include <SoftwareSerial.h>
#include <String.h>
#include <leOS.h>
SoftwareSerial mySerial(7, 8);
int ledcontrollo = 13; //led di controllo stato sensore PIR
int sen = 10; //porta sensore PIR
int allarme = 0; //variabile di controllo attivazione/disattivazione allarme
void setup()
{
pinMode(9, OUTPUT);
digitalWrite(9,LOW);
delay(1000);
digitalWrite(9,HIGH);
delay(2000);
digitalWrite(9,LOW);
delay(3000);
mySerial.begin(19200); //inizializzazione shield gprs
pinMode(sen, INPUT); //pin di input sensore PIR
pinMode(ledcontrollo, OUTPUT);
delay(500);
}
void loop()
{
if (digitalRead(sen) == HIGH){
digitalWrite(ledcontrollo, HIGH);
DialVoiceCall(); }
else{
digitalWrite(ledcontrollo, LOW);}
}
void SendTextMessage()
{
mySerial.print("AT+CMGF=1\r"); //Because we want to send the SMS in text mode
delay(100);
mySerial.println("AT + CMGS = \"+86138xxxxx615\"");//send sms message, be careful need to add a country code before the cellphone number
delay(100);
mySerial.println("A test message!");//the content of the message
delay(100);
mySerial.println((char)26);//the ASCII code of the ctrl+z is 26
delay(100);
mySerial.println();
}
void DialVoiceCall()
{
mySerial.println("ATD + +3932xxxxxxx;");//dial the number
delay(100);
mySerial.println();
}
void controllo(){
if (digitalRead(sen) == HIGH){
digitalWrite(ledcontrollo, HIGH);}
else{
digitalWrite(ledcontrollo, LOW);}
}