AIUTO GSM SHIELD ARDUINO UNO

Salve ragazzi volevo farvi una domanda io ho eseguito questo sketch :

#include "gsm.h" 
#include "SIM900.h" 
#include <SoftwareSerial.h> 
#include "sms.h" 

SMSGSM sms;

int numdata;

char mobileno[]="+39xxxxxx"; //Phone Number authorized

char smstxtwrite[]="Blocco Bruciatore";

char smstxtread[]="Gradi"; // Sms send with your authorize number

int gradi=27; // Degress top

boolean started=false;

boolean onesend=true; // Sms only one

char inSerial[40];

char gsmSerial[40];

char smstempc[20]; // for resend sms

int i=0;

// Imposta il numero di pin analogico A0 to A5

int pin=0;

// Dichiara e inizializza la variabile che conterrà la temperatura rilevata

int tempc=0;

// pin per led

int ledpin=3;

void setup()

{

Serial.begin(9600); // Inizializza la comunicazione seriale

pinMode(ledpin, OUTPUT);

Serial.println("GSM Starting.");

if (gsm.begin(9600)){

Serial.println("\nstatus=READY");

started=true;

}

else Serial.println("\nstatus=IDLE");

delay(2000);

};

void loop()

{ serialhwread();

serialswread();

if(tempc > gradi){

digitalWrite(ledpin, HIGH); //accendo

Serial.print(tempc);

Serial.println(" Gradi BLOCCO BRUCIATORE ");

if(onesend){

smssend();

onesend=false;

}

}

else {

onesend=true;

digitalWrite(ledpin, LOW); //spengo if (tempc > 0){ Serial.print(tempc); Serial.println(" Gradi TUTTO OK "); } } tempc = 0;

//Formula che trasforma analogico in gradi centigradi

tempc = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;

delay(1000); // Attende 1 secondo

smsreadtxt();

};

char checksms() { return sms.IsSMSPresent(SMS_ALL); } void smsreadtxt(){ int i=0; char rx_sms[10]; if (checksms()>0) { for (i=1; i<=20;i++) { if (GETSMS_AUTH_SMS == sms.GetAuthorizedSMS(i, mobileno, rx_sms, 10, 0, 0)){

if (0 == strcmp(rx_sms,smstxtread))

{

Serial.println("\nSMS GRADI found!");

smssend_tempc(); }

else

{

Serial.print("\nSMS received: "); Serial.println(rx_sms); }

}

smsdel(i);

}

}

}

void smsdel(int i){

if (sms.DeleteSMS(i)) Serial.print("\nSMS Delete OK on position"); Serial.println(i); }

void smssend(){ delay(1000); // Attende 1 secondo if (sms.SendSMS(mobileno, smstxtwrite))

Serial.println("\nSMS sent OK");

} void smssend_tempc(){

sprintf(smstempc, "%d", tempc); if (sms.SendSMS(mobileno, smstempc))

Serial.println("\nSMS TEMP sent OK");

} void serialhwread(){

i=0;

if (Serial.available() > 0){ while (Serial.available() > 0) {

inSerial=(Serial.read());

delay(10);

i++;

}

inSerial='\0';

if(!strcmp(inSerial,"/END")){

Serial.println("_");

inSerial[0]=0x1a;

inSerial[1]='\0';

gsm.SimpleWriteln(inSerial);

}

if(!strcmp(inSerial,"SIGNAL")){

Serial.println("SIGNAL QUALITY");

gsm.SimpleWriteln("AT+CSQ");

}

if(!strcmp(inSerial,"CALL")){

Serial.print("CALL NUMBER "); Serial.println(mobileno); gsm.SimpleWrite("ATD"); gsm.SimpleWrite(mobileno); gsm.SimpleWriteln(";"); }

if(!strcmp(inSerial,"CLOSE")){

Serial.println("CALL CLOSE");

gsm.SimpleWriteln("ATH0");

}

if(!strcmp(inSerial,"INFO")){

Serial.println("INFO OPERATOR");

gsm.SimpleWriteln("AT+COPS?\r\n");

}

if(!strcmp(inSerial,"REP")){

Serial.println("ENABLE VERBOSEREPORT");

gsm.SimpleWriteln("AT+CMEE=2");

}

if(!strcmp(inSerial,"PIN")){

Serial.println("PIN INFO");

gsm.SimpleWriteln("AT+CPIN?");

}

else{

Serial.println(inSerial);

gsm.SimpleWriteln(inSerial);

} inSerial[0]='\0'; } }

void serialswread(){

int i=0;

for(i=0;i<10000;i++) gsm.SimpleRead(); }

serve per controllare una la temperaturadi unastanzacon (sonda LM35) tramite sms e fin qua tutto bene, mando un sms con scritto "gradi" e lui mi risponde con la temperaturarilevata dopo qualche ora riprovoa chiedergli che temperaturastaleggendo e non mirispondepiù (non mimandal'sms con quello che sta leggendo la sonda) vado a vedere se il gsm se c'è qualche problema e mi accorgo che la lucetta sul gsm shield non si accende ne fissa ne intermittente, sapete dirmi il perchè non funziona piu? forse e uno sbaglio sullo sketch o non e stabile il gsm shield ( comprato su futura elettronica)? vi rigranzio.

Come ti era già stato scritto prima di spostare la discussione, quando metti del codice, specialmente se lungo, usa il tag code (il pulsante col cancelleto che vedi) migliora la leggibilità del tuo post.

Noto che è tipo la terza discussione con lo stesso argomento del giorno, avete provato a scrivere un email al supporto di Open Electronics (o futura elettronica, non ho capito se c'è differenza) per chiedere chiarimenti?

a tale proposito bisogna "inventarsi qualcosa"; mi sto stremando, ogni benedettissimo Topic viene aperto senza pietà alcuna nella sezione Generale, ormai ho scritto il fatidico messaggio in un file che tengo sempre aperto, però è una battaglia persa, appena mi sposto per fare il bisognigno 5 Topic aperti e 10 risposte date; purtroppo anche i "vecchi" non aiutano a spiegare questa cosa, sono stremato =(

Noto che è tipo la terza discussione con lo stesso argomento del giorno, avete provato a scrivere un email al supporto di Open Electronics (o futura elettronica, non ho capito se c'è differenza) per chiedere chiarimenti?

Open Electronics è il sito internazionale (in lingua inglese) gestito dal gruppo di Futura Elettronica; piuttosto consiglierei di scrivere direttamente sul Blog italiano di Futura

si ho capito, siamo in tanti ma se scriviamo e perché abbiamo bisogno di aiuto, capisco che sei stremato a controllare ma se mi aiutassi a risolvere il problema te ne sarei più grato invece di lamentarti.

flavio86:
si ho capito, siamo in tanti ma se scriviamo e perché abbiamo bisogno di aiuto, capisco che sei stremato a controllare ma se mi aiutassi a risolvere il problema te ne sarei più grato invece di lamentarti.

sai, un po' di esercizio di buone maniere non ti farebbe male per niente, il tuo sarcasmo riservatelo per le persone con cui hai confidenza. Se tu avessi letto con più attenzione avresti capito che non sei stato accusato di nulla e che ti ho anche dato la dritta giusta; io non ho risposto a te ma al Moderatore, al quale ho fatto presente alcune problematiche. Con l'occasione ti ho spiegato dove devi andare a chiedere per avere informazioni certe, citandoti il blog del progettista della tua scheda; se ti fossi letto le regole del Forum avresti capito che prima dovevi fare una ricerca e se avessi fatto la ricerca ti saresti accorto che purtroppo nessuno qui è mai riuscito a dare risposte su quelle schede perché non c'è ancora una grande diffusione, quindi stai perdendo tempo, e questo dispiace a tutti, non solo a te. Magari la prossima volta poniti in modo più rispettoso ed elegante nei confronti delle persone ed otterrai certamente maggiori soddisfazioni. Resta il mio consiglio, se ti va di seguirlo: il Blog di Futura è l'unico su cui troverai risposte e le giuste competenze, per questa specifica problematica. Per tutto il resto il Forum è a disposizione, come sempre.

Non volevo rispondere male a nessuno, ti ringrazio del suggerimento e ti dirò che l'ho seguito scrivendo a futura elettronica, mi dispiace essermi espresso male non era mia intenzione, e che sono da 1 settimana che sto diventando matto a capire perché non funziona bene questo benedetto gsm ho cercato nel web soluzioni ma nessuna risolutiva, ho provato a scrivere al forum per un aiuto per sapere se anche a qualcun altro era nella mia stessa situazione.
Comunque mi scuso di nuovo.

Una cosa: se interroghi l'apperecchio dopo ore,non funge più..ma se invece lo interrogassi dopo qualche minuto?

flavio86:
Non volevo rispondere male a nessuno, ti ringrazio del suggerimento e ti dirò che l'ho seguito scrivendo a futura elettronica, mi dispiace essermi espresso male non era mia intenzione, e che sono da 1 settimana che sto diventando matto a capire perché non funziona bene questo benedetto gsm ho cercato nel web soluzioni ma nessuna risolutiva, ho provato a scrivere al forum per un aiuto per sapere se anche a qualcun altro era nella mia stessa situazione.
Comunque mi scuso di nuovo.

No problem, questione assolutamente chiusa :slight_smile:
Allora, se non hai risposte entro venerdì alle 13, scrivimi in PM e dammi tutti i necessari riferimenti, che ti faccio contattare personalmente dal Direttore Tecnico di Futura o dal suo braccio destro, abbi fiducia che risolveremo :wink:

se lo interrogo dopo qualche minuto mi risponde con la temperatura letta senza problemi e proprio per questo che non riesco a capire e mi fa andar fuori di matto perché dopo qualche ora non funge più e non so neanche dove aggrapparmi se e un errore di sketch che manda in conflitto qualcosa o e proprio il gsm

flavio86:
se lo interrogo dopo qualche minuto mi risponde con la temperatura letta senza problemi e proprio per questo che non riesco a capire e mi fa andar fuori di matto perché dopo qualche ora non funge più e non so neanche dove aggrapparmi se e un errore di sketch che manda in conflitto qualcosa o e proprio il gsm

Quando dici dopo qualche ora... ma nel frattempo hai continuato a leggere o lo hai lasciato a risposo?
Cioè se ipoteticamente tu ti mettessi a leggere di continuo la temperatura, dopo qualche ora si bloccherebbe lo stesso o no? Questo è un dato importante, immagino tu l'abbia verificato

Allora ho fatto diverse prove, se io mando di continuo un sms per interrogarlo lui mi risponde tranquillamente, se lo lascio a riposo per X tempo e riprovo a interrogarlo lui non mi risponde più al sms e non capisco il perchè.

spiego meglio questo sketch lo uso per una telegestione di una caldaia, io uso una sonda di temperatura che mi rileva quanto caldo sto mandando nell impianto di riscaldamento e ogni tot tempo devo verificare che temperatura sta mandando.
L'altra settimana ho provato a installarlo sulla caldaia e dopo qualche minuto lo interrogavo e mi mandava l'sms con la temperatura recepita, riprovato dopo 4 ore ho riprovato a interrogarlo e non mi ha piu risposto.
PS: faccio un reset sul gsm e tutto torna normale come prima. e avanti cosi all infinito, solo che ha me serve che la sonda legga sempre la temperatura.
Uso un trasformatore 9V

flavio86:
Allora ho fatto diverse prove, se io mando di continuo un sms per interrogarlo lui mi risponde tranquillamente, se lo lascio a riposo per X tempo e riprovo a interrogarlo lui non mi risponde più al sms e non capisco il perchè.

secondo me è attiva una qualche funzione di modalità sleep del gsm, dalla quale poi lo sketch non è in grado di farlo riprendere e quindi non risponde più, la cosa sembrerebbe avvalorata dallo spegnimento delle spie (e da quello che sto leggendo ora sul tuo post in diretta...)
Se esiste un pulsantino o comunque un modo per resettare il SOLO shield GSM fai questa prova:
Accendi tutto e manda il solito sms di controllo, poi non mandarne più
Controlla il tempo che trascorre tenendo sotto osservazione il led del gsm (prendi nota di quanto ne trascorre, è importante!!!)
Quando si spegne pensiamo che sia andato in sleep
A questo punto resetta il GSM, aspetta che riagganci la linea e rimanda il comando, se funziona hai certezza che il problema è quello, devi solo disabilitarlo, capendo (dalle istruzioni) se è fattibile con un qualche jumper o va fatto via firmware.
Credo proprio che il problema sia questo :slight_smile:

una possibile prova: metti un led che lampeggia: se continua a lampeggiare anche qnd nn risponde più ai mex,potresti risolvere nel seguente modo.
ogni tot tempo,verifichi se il gsm è ancora connesso alla rete cellulare,e se da esito negativo,riavvi lo shield..

EDIT:nel frattempo menniti ha dato un suggerimento simile

Controlla il tempo che trascorre tenendo sotto osservazione il led del gsm (prendi nota di quanto ne trascorre, è importante!!!)

Il led lampeggia sempre, dopo chissa quante ore non lampeggia più.
In questo momento il led lampeggia ho mandato l'sms ma lui non mi risponde e come se non avesse rete che in realtà la ha.

bisogna dare un'occhiata alla documentazione, insisto sul fatto che secondo me si attiva una qualche funzione di riposo che lo sketch non è più in grado di svegliare; hai dei link ai manuali?

no nulla,ne link ne manuali tutto quello che ho fatto lo postato ( skatch)

flavio86:
no nulla,ne link ne manuali tutto quello che ho fatto lo postato ( skatch)

allora bisogna aspettare per forza la loro risposta, però è strano che non forniscano materiale, di solito mandano le pagine dell'articolo di presentazione, cerca anche sul loro BLOG, credo che esistano già una serie di risposte utili.

secondo me è attiva una qualche funzione di modalità sleep del gsm

.. oppure la memoria a disposizione di esaurisce....
Se utilizzi una UNO, considera che con la libreria fornita, la ram utilizzata è molta.
In una realizzazione di un collega dell'AUG, volendo utilizzare anche una SD, alla fine si è dovuto optare per una mega.

pitusso:

secondo me è attiva una qualche funzione di modalità sleep del gsm

.. oppure la memoria a disposizione di esaurisce....
Se utilizzi una UNO, considera che con la libreria fornita, la ram utilizzata è molta.
In una realizzazione di un collega dell'AUG, volendo utilizzare anche una SD, alla fine si è dovuto optare per una mega.

in questo caso un watchdog potrebbe risolvere il problema no?se si blocca per esaurimento di memoria va in reset e riparte.
correggetimi pure se sbaglio tanto non mi offendo :grin: