Principiante con Arduino Uno R3 e GSM shield con antenna integrata

Salve,
volevo collegarmi con Arduino Uno R3 e GSM Shield con antenna integrata, per prima mi sono registrato su bluevia.com per la SIM (questo ho già fatto).Ho seguito il video su Arduino Blog http://arduino.cc/blog/2013/03/19/make-a-voice-call-with-arduino-gsm-shield/ ,ma con un buon risultato.Ho aperto il software Arduino 1.0.4 e ho provato un esempio dello sketch GSM già pronto questo “send SMS”:

/*
 SMS sender
 
 This sketch, for the Arduino GSM shield,sends an SMS message 
 you enter in the serial monitor. Connect your Arduino with the 
 GSM shield and SIM card, open the serial monitor, and wait for 
 the "READY" message to appear in the monitor. Next, type a 
 message to send and press "return". Make sure the serial 
 monitor is set to send a newline when you press return.
 
 Circuit:
 * GSM shield 
 * SIM card that can send SMS
 
 created 25 Feb 2012
 by Tom Igoe
 
 This example is in the public domain.
 
 http://arduino.cc/en/Tutorial/GSMExamplesSendSMS
 
 */

// Include the GSM library
#include <GSM.h>

#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

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("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }
  
  Serial.println("GSM initialized");
}

void loop()
{

  Serial.print("Enter a mobile number: ");
  char remoteNum[20];  // telephone number to send sms
  readSerial(remoteNum);
  Serial.println(remoteNum);
    
  // sms text
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];
  readSerial(txtMsg);
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);
  
  // send the message
  sms.beginSMS(remoteNum);
  sms.print(txtMsg);
  sms.endSMS(); 
  Serial.println("\nCOMPLETE!\n");
}

/*
  Read input serial
 */
int readSerial(char result[])
{
  int i = 0;
  while(1)
  {
    while (Serial.available() > 0)
    {
      char inChar = Serial.read();
      if (inChar == '\n')
      {
        result[i] = '\0';
        Serial.flush();
        return 0;
      }
      if(inChar!='\r')
      {
        result[i] = inChar;
        i++;
      }
    }
  }
}

Devo aggiungere o modificare qualcosa per fare funzionare?Vorrei che qualcuno mi fa un esempio come posso far funzionare il GSM Shield.Grazie.

Sicuramente devi inserire il PIN della SIM in:

define PINNUMBER ""

Ciao Uwe

Dove si trova questo PIN della SIM? E' scritto questo: The SIM cards not have PIN code.

La PIN Ti da l'operatore. È la "password" per attivare la SIM. Se sbagli 3 volte di seguito il PIN ti serve il PUC per resettare e modificare il PIN. Puó essere che sulla SIM é disattivato la PIN. Se metti la SIM nel telefonino si accende o chiede il PIN? Ciao Uwe

christiaan: Vorrei che qualcuno mi fa un esempio come posso far funzionare il GSM Shield.Grazie.

Tu stesso ha pubblicato un esempio di sketch. Ti funziona oppure no?

@leo72 ho provato fare questo sketch come esempio “Receive SMS” ho inserito il diodo LED al pin 13 è lampeggia,ma non mi funziona tramite GSM shield,perchè non c’è l’ho il codice PIN della SIM che è la Movistar della Telefonica.Devo scrivere la mail e inserire il codice IMEI? Nel sito web di http://www.bluevia.com non c’è scritto il codice PIN della SIM?Come posso fare?Grazie.

/*
 SMS receiver
 
 This sketch, for the Arduino GSM shield, waits for a SMS message 
 and displays it through the Serial port. 
 
 Circuit:
 * GSM shield attached to and Arduino
 * SIM card that can receive SMS messages
 
 created 25 Feb 2012
 by Javier Zorzano / TD
 
 This example is in the public domain.
 
 http://arduino.cc/en/Tutorial/GSMExamplesReceiveSMS
 
*/

// include the GSM library
#include <GSM.h>

// PIN Number for the SIM
#define PINNUMBER ""

// initialize the library instances
GSM gsmAccess;
GSM_SMS sms;

// Array to hold the number a SMS is retreived from
char senderNumber[20];
int led=13;

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("SMS Messages Receiver");
  pinMode(led,OUTPUT);
    
  // connection state
  boolean notConnected = true;
  
  // Start GSM connection
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }
  
  Serial.println("GSM initialized");
  Serial.println("Waiting for messages");
}

void loop() 
{
  char c;
  
  // If there are any SMSs available()  
  if (sms.available())
  {
    Serial.println("Message received from:");
    digitalWrite(led,HIGH);
    
    // Get remote number
    sms.remoteNumber(senderNumber, 20);
    Serial.println(senderNumber);

    // An example of message disposal    
    // Any messages starting with # should be discarded
    if(sms.peek()=='#')
    {
      Serial.println("Discarded SMS");
      sms.flush();
    }
    
    // Read message bytes and print them
    while(c=sms.read())
      Serial.print(c);
      
    Serial.println("\nEND OF MESSAGE");
    
    // Delete message from modem memory
    sms.flush();
    Serial.println("MESSAGE DELETED");
  }

  delay(1000);

}

christiaan: Dove si trova questo PIN della SIM? E' scritto questo: The SIM cards not have PIN code.

Se è scritto così, chiaramente quella SIM NON ha il PIN code (... o meglio, probabilmente è semplicemente disattivato). Fai una controprova, inseriscila in un telefonino ... se all'accensione NON ti chiede il PIN, significa che è disabilitato e quindi NON devi dargli il PIN :)

Piuttosto ... se ricordo bene, quella SIM (... che è quella che arriva a corredo dello shield originale GSM), DEVE essere attivata/registrata sul loro sito ... verifica ed eventualmente procedi con l'attivazione ... ;)

Guglielmo

uwefed: Puó essere che sulla SIM é disattivato la PIN. Se metti la SIM nel telefonino si accende o chiede il PIN? Ciao Uwe

@Leo : ... si, ma pare che la cosa non gli fosse chiara, quindi "to be sure, to be sure" ... :D :D :D

Guglielmo

.... aggiungo, SI, [u]se non lo hai già fatto[/u], devi andare QUI : https://bluevia.com/en/page/tech.arduino e c'è l'apposito bottone ("Activate SIM") per attivare la SIM che era inclusa con lo shield. ;)

Guglielmo

@gpb01 questo ho già fatto https://bluevia.com/en/page/tech.arduino,ma c’è scritto deactivate.“Your SIM card was already disabled”.Vedi foto sotto.Che cosa devo fare? Devo ritornare la SIM card indietro?Grazie.

Schermata 2013-03-31 a 18.25.20.png

Schermata 2013-03-31 a 18.25.43.png

christiaan:
@gpb01 questo ho già fatto https://bluevia.com/en/page/tech.arduino,ma c’è scritto deactivate.“Your SIM card was already disabled”.Vedi foto sotto.Che cosa devo fare? Devo ritornare la SIM card indietro?Grazie.

Questa frase mi preoccupa … Quando è che ti esce fuori ? Ma tu hai prima attivato e poi disattivato la SIM sul sito di bluevia ? Come mai dice che la SIM è “disabled” ??? :astonished:

Guglielmo

Ma non puoi provare con una SIM tua, giusto per fare un test?

leo72: Ma non puoi provare con una SIM tua, giusto per fare un test?

+1 :)

... e magari, prima di toglierla dal telefonino, vai nelle impostazioni e disabilitagli il PIN, così ti semplifichi la vita !

Guglielmo

Ho inserito un’altra SIM card e ho impostato PINNUMBER “0000”, ma al monitor seriale mi appare “SMS Message Sender” e sotto “Not connected”

// If your SIM has PIN, pass it as a parameter of begin() in quotes
  while(notConnected)

che cosa devo scrivere su questo codice? (vedi sopra).Grazie.

/*
 SMS sender
 
 This sketch, for the Arduino GSM shield,sends an SMS message 
 you enter in the serial monitor. Connect your Arduino with the 
 GSM shield and SIM card, open the serial monitor, and wait for 
 the "READY" message to appear in the monitor. Next, type a 
 message to send and press "return". Make sure the serial 
 monitor is set to send a newline when you press return.
 
 Circuit:
 * GSM shield 
 * SIM card that can send SMS
 
 created 25 Feb 2012
 by Tom Igoe
 
 This example is in the public domain.
 
 http://arduino.cc/en/Tutorial/GSMExamplesSendSMS
 
 */

// Include the GSM library
#include <GSM.h>

#define PINNUMBER "0000"

// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

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("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }
  
  Serial.println("GSM initialized");
}

void loop()
{

  Serial.print("Enter a mobile number: ");
  char remoteNum[20];  // telephone number to send sms
  readSerial(remoteNum);
  Serial.println(remoteNum);
    
  // sms text
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];
  readSerial(txtMsg);
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);
  
  // send the message
  sms.beginSMS(remoteNum);
  sms.print(txtMsg);
  sms.endSMS(); 
  Serial.println("\nCOMPLETE!\n");
}

/*
  Read input serial
 */
int readSerial(char result[])
{
  int i = 0;
  while(1)
  {
    while (Serial.available() > 0)
    {
      char inChar = Serial.read();
      if (inChar == '\n')
      {
        result[i] = '\0';
        Serial.flush();
        return 0;
      }
      if(inChar!='\r')
      {
        result[i] = inChar;
        i++;
      }
    }
  }
}

In "PINNUMBER" devi mettere [u]esattamente[/u] il PIN della SIM che inserisci ... sei sicuro che la SIM che hai inserito abbia effettivamente PIN 0000 ? Hai fatto la verifica con un telefonino ?

Guglielmo

Grazie,sono riuscito a risolvere il collegamento con la scheda Arduino Uno R3 e GSM Shield.

BENE ! Ma alla fine ... dove era il problema (... nel senso .. spiegaci come hai risolto ;) ) ???

Guglielmo

Ho avviato l'applicazione Arduino 1.0.4 e ho seguito lo sketch degli esempi GSM --->Tools----> BandManagement per selezionare tipo di rete GSM ed ho seguito monitor seriale.Prima ho attivato tramite BlueVia e andato tutto bene.Ma la SIM card non aveva bisogno del PIN perché non aveva il codice.Alla fine ce l'ho fatta.Grazie.