Arduino e gsm

Salve a tutti.
Mi trovo in difficoltà con la scheda gsm modello 9000.
Ho copiato lo sketch trovato nel sito riguardante il funzionamento del relè.

http://playground.arduino.cc/Italiano/TutorialWired#SMSHeather

però guarda e riguarda non capisco perché non mi funzioni il relé.

il mio scopo e di usare la gsm e comandare i relè per svariate applicazioni.
Sarei felicissimo se qualcuno mi potesse aiutare..
Ringrazio anticipatamente

saluti Ricky

ciao
non ho guardato lo sketch, ma meglio postarlo qui, con "non funziona" intendi che hai qualche messaggio di errore dall'ide durante il caricamento, hai controllato bene i collegamenti

cncduino:
Salve a tutti.

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Come detto da @stefa, non dai molte info. Cosa vuol dire non funziona il rele ?
Quale relè ? Che modello ?

Ciao si scusate.. lo sketch funziona ed riesco a caricarlo. però quando mando il messaggio sms nel uscita impostata non mi da HIGH. il problema del relé e nullo, cioè a livello di collegamenti o relè me la cavo. Proprio lo sketch che non mi riconosce il comando.
In realtà potrei abbandonare questo sketch però a livello di gsm non me la cavo molto bene

Un saluto e grazie

Fai il debug con il Monitor Seriale ? In quello sketch ci sono molti msg che vanno sulla seriale per vedere se funziona. Ricevi i msg giusti ?
Hai tenuto conto di questo?

  • "Dispositivo": questa keyword è variabile. Nel nostro caso: Stufetta

Si poi sento che a scheda gsm riceve i sms ma poi nulla..
il mio scopo era accendere relè con sms ma non trovo nulla, e questo sketch non mi funziona

Quali msg (print) vedi su monitor seriale ?

arrivo fino ad GSM initialized. poi più nulla.. soldi nella sim ne ho e funziona per il resto non capisco quale possa essere il problema ;(

mi sembra di ricordare che la scheda gsm consumi relativamente molto, in piu c'è il rele.
con che alimentatore esterno alimenti il tutto?

Alimento il tutto con una sorgente da 1A non credo sia il problema di consumi. Il relè ora non è collegato, utilizzo un Led per fare le prove..

Grazie mille

Ma nessuno ha mai creato un semplice sketch per accendere un led via gsm? poi cambierebbe poco da led a relè.. e la base che non riesco costruire per il resto me la cavo.. grzie mille

ho lavorato con i gsm della wavecom, ma con i comandi AT che sono lo standard per i modem, ti allego uno sketch che serve per attivare un rele

/*
per apertura e chiusura garage
 */
#define rele 12  //pin rele apertura

#include <SoftwareSerial.h>  //per la comuncazione con il modem
#include <string.h>         //per le stringhe

char incoming_char = 0;  //Will hold the incoming character from the Serial Port.

String stringOne,substringa;

SoftwareSerial cell(4,5);  //Create a 'fake' serial port. cell(RX,TX)

void setup()
{ 
  pinMode(rele,OUTPUT);
  digitalWrite(rele,LOW);

  incoming_char = 0;  //inizializza
  stringOne = "";  //inizializza
  substringa = "";  //inizializza

  Serial.begin(9600);  //Initialize serial ports for communication.
  cell.begin(9600);  //Initialize serial ports for communication.

  do
  {
    delay(1000);
    cell.print("AT+CREG?;\r\n"); //verificare se questa istruzione funziona
    delay(1000);

    while(cell.available() > 0)//verifica la presenza di segnali
    {
      delay(100);  //pausa     
      incoming_char = cell.read();    //Get the character from the cellular serial port.
      stringOne += String(incoming_char);  //compone la stringa
      stringOne.trim();  //compatta la stringa tagliando le formattazioni
      //Serial.print(incoming_char);  //Print the incoming character to the terminal.
      // Serial.println(stringOne);  //stampa di controllo          
    }
    Serial.println(stringOne);  //stampa di controllo dopo il trim    

    substringa = stringOne.substring(9,18);
    Serial.println(substringa);//stampa controllo substringa

      if(substringa == "+CREG:0,1")
    {
      Serial.println("GSM registrato"); 
    }
    else
    {
      Serial.println("GSM non registrato"); 
    }
    stringOne = "";
    incoming_char = 0;
  }
  while(substringa != "+CREG:0,1");

  while(cell.available() > 0)//svuota la memoria
  {
    delay(50);
    cell.read();
  } 

  delay(1000);  //pausa

  cell.print("AT+CLIP=1 \r\n");
  delay(1000);  //pausa

  while(cell.available()>0)  //svuota i messaggi dal modem
  {
    delay(50);  //pausa
    cell.read();
    // Serial.print(incoming_char);  //stampa di controllo
  }
  delay(1000);
}

void loop() 
{ 
/*
  //verifica la registrazione del modem
  delay(1000);
  cell.print("AT+CREG?;\r\n");
  delay(1000);

  while(cell.available()>0)//verifica la presenza di segnali
  {
    delay(100);  //pausa     
    incoming_char=cell.read();    //Get the character from the cellular serial port.
    stringOne+=String(incoming_char);  //compone la stringa
    stringOne.trim();  //compatta la stringa tagliando le formattazioni
    //Serial.print(incoming_char);  //Print the incoming character to the terminal.
    // Serial.println(stringOne);  //stampa di controllo          
  }
  //Serial.println(stringOne);  //stampa di controllo dopo il trim    

    substringa=stringOne.substring(9,18);
  Serial.println(substringa);//stampa controllo substringa

    if(substringa=="+CREG:0,1")
  {
    Serial.println("GSM registrato"); 
  }
  else
  {
    Serial.println("GSM non registrato"); 
  }
  stringOne="";
  incoming_char=0;


  while(cell.available()>0)  //svuota i messaggi dal modem
  {
    delay(50);  //pausa
    cell.read();
    // Serial.print(incoming_char);  //stampa di controllo
  }   

*/
  //verifica la chiamata in arrivo  
  while(cell.available() > 0)  //while a character is coming from the terminal to the Arduino 
  {
    delay(50);  //pausa
    incoming_char = cell.read();

    stringOne += String(incoming_char);
    stringOne.trim();

    //Serial.println(stringOne);  //stampa di controllo

    substringa = stringOne.substring(11,24);
  }
  Serial.println(substringa);  //stampa di controllo
  delay(1000);

  if(substringa == "+39numero di telefono")
  {  
    cell.println("ATH\r\n");  //per interruzione chiamata
    delay(500);  //pausa

    digitalWrite(rele,HIGH);  //preme pulsante aperura
    delay(1000);  //pausa
    digitalWrite(rele,LOW);  //rilascia pulsante apertura
    delay(500);  //pausa

    while(cell.available() > 0)  //svuota i messaggi dal modem
    {
      delay(50);  //pausa
      cell.read();
      // Serial.print(incoming_char);  //stampa di controllo
    }     
  }

  if(substringa=="+39numero di telefono")
  {  
    cell.println("ATH\r\n");  //per interruzione chiamata
    delay(500);  //pausa

    digitalWrite(rele,HIGH);  //preme pulsante aperura
    delay(1000);  //pausa
    digitalWrite(rele,LOW);  //rilascia pulsante apertura
    delay(500);  //pausa

    while(cell.available() > 0)  //svuota i messaggi dal modem
    {
      delay(50);  //pausa
      cell.read();
      // Serial.print(incoming_char);  //stampa di controllo
    }     
  }

  if(substringa == "+39numero di telefono")
  {  
    cell.println("ATH\r\n");  //per interruzione chiamata
    delay(500);  //pausa

    digitalWrite(rele,HIGH);  //preme pulsante aperura
    delay(1000);  //pausa
    digitalWrite(rele,LOW);  //rilascia pulsante apertura
    delay(500);  //pausa

    while(cell.available() > 0)  //svuota i messaggi dal modem
    {
      delay(50);  //pausa
      cell.read();
      // Serial.print(incoming_char);  //stampa di controllo
    }     
  }

  if(substringa == "+39numero di telefono")
  {  
    cell.println("ATH\r\n");  //per interruzione chiamata
    delay(500);  //pausa

    digitalWrite(rele,HIGH);  //preme pulsante aperura
    delay(1000);  //pausa
    digitalWrite(rele,LOW);  //rilascia pulsante apertura
    delay(500);  //pausa

    while(cell.available()>0)  //svuota i messaggi dal modem
    {
      delay(50);  //pausa
      cell.read();
      // Serial.print(incoming_char);  //stampa di controllo
    }     
  }

  if(substringa == "+39numero di telefono")
  {  
    cell.println("ATH\r\n");  //per interruzione chiamata
    delay(500);  //pausa

    digitalWrite(rele,HIGH);  //preme pulsante aperura
    delay(1000);  //pausa
    digitalWrite(rele,LOW);  //rilascia pulsante apertura
    delay(500);  //pausa

    while(cell.available() > 0)  //svuota i messaggi dal modem
    {
      delay(50);  //pausa
      cell.read();
      // Serial.print(incoming_char);  //stampa di controllo
    }     
  }

  //Serial.println("ok");  //stampa di controllo
  incoming_char=0;  //svuota
  stringOne="";  //svuota
  substringa="";  //svuota

  /*
  //If a character is coming from the the Arduino to the terminal
   if(Serial.available()>0)
   {
   incoming_char=Serial.read();  //Get the character coming from the terminal
   cell.print(incoming_char);    //Send the character to the cellular module.
   }
   */
}

ok grazie. ci studierò dietro.. credevo fosse una cosa molto piu semplice tipo sms.read e poi un paio di variabili... alla fine devo solo azionare un relè con un sms.

grazie ancora a tutti sono felice che ci siano ancora persone capaci di aiutare il prossimo..

anche io avevo tentato di capire quelle librerie ma complice il fatto che ero all'inizio con arduino non le ho capite, alla fine mi sono trovato meglio con i comandi AT inoltre i comandi AT sono per la maggior parte uguali per ogni modem

Rieccomi.. ho trovato un altro comando molto facile come ho bisogno io..

http://workblog.plexishop.it/on-off-con-arduino-gsm-shield/

eppure anche questo non mi funziona.. ora sto quasi pensando che è il mio gsm che non va?

qualcuno potrebbe provarlo e dirmi se funziona? e subito fatto 2 led e copiare lo sketch, giusto da capire se è il mio shield oppure anche questo da errori.

Vi ringrazio veramente tanto..

cerca nel forum italiano, altri utenti hanno fatto applicazioni con GSM, solo loro possono avere un modem su cui fare prove

ciao
mi sorge un dubbio hai eliminato la richiesta del pin da parte della SIM?

un altra cosa, non so che SIM hai usato, ma quella in dotazione alla sche GSM nonostante l'avessi caricata non sono mai riuscito a farla funzionare, mentre con una banalissima telecom dati si.

Ciao si si ho tolto il pin.. ho provato e riprovato ma nulla.. ma mai nessuno ha fatto uno sketch gsm per accendere e spegnere un Led? non trovo nessuno che abbia usato questo modulo per queste operazioni..

Saluti e grazie veramente a tutti.. siete gentilissimi

ti ho postato lo sketch che uso per attivare un rele, secondo me lo puoi usare così come è