Rivista #231: GSM Shield 3^ puntata

Tra i contenuti del fascicolo 231 (Dicembre 2018/Gennaio 2019), attualmente in edicola, la terza e ultima puntata del progetto dello Shield universale GSM.

Nella precedente puntata abbiamo descritto la libreria e le funzioni messe a disposizione dalla stessa. Ora presenteremo una serie di sketch attraverso i quali vedrete in pratica come funziona la libreria e le sue potenzialità. Gli sketch implementeranno funzioni tra cui ricezione o invio di SMS, chiamate vocali, gestione di alcuni comandi generici, nonché la scrittura in EEPROM dei codici PIN, PUK ecc.

La libreria è pensata per svolgere la gran parte del lavoro e lasciare il compito più facile allo sviluppatore, che dovrà semplicemente adattare la libreria alle necessità proprie e delle proprie applicazioni. Ricordiamo che la programmazione dei codici PIN e PUK in EEPROM non può essere fatta direttamente dall’IDE Arduino ma solo con apposito sketch di scrittura dei dati in EEPROM. Ciò detto, iniziamo la descrizione degli sketch dalla programmazione in EEPROM dei codici.

PROGRAMMAZIONE EEPROM

La prima operazione da compiere per utilizzare il GSM Shield è programmare la EEPROM di Arduino con i codici necessari al corretto funzionamento degli altri sketch.

Il file “GenericCmd_GSM.h”, subito all’inizio del file, contiene l’elenco dei dati da memorizzare nella memoria EEPROM. Allo stato attuale si tratta di una serie di codici numerici che identificano le seguenti voci:

  • Password generica 1 8 caratteri numerici, spazio occupato 11 byte (comprende le virgolette e il carattere di chiusura della stringa);
  • Password PH PUK → caratteri numerici, spazio occupato 11 byte;
  • Password PUK2 → 8 caratteri numerici, spazio occupato 11 byte;
  • Password SIM PUK → 8 caratteri numerici, spazio occupato 11 byte;
  • Password generica 2 4 caratteri numerici, spazio occupato 7 byte;
  • Password PH PIN 4 caratteri numerici, spazio occupato 7 byte;
  • Password PIN2 4 caratteri numerici, spazio occupato 7 byte;
  • Password SIM PIN 4 caratteri numerici, spazio occupato 7 byte.

L’articolo prosegue con:

 

SKETCH INVIO COMANDI GENERICI:

SKETCH GESTIONE SMS E CHIAMATA VOCALE

SKETCH GESTIONE COMANDI DI SICUREZZA E RUBRICA TELEFONO

 

CONCLUSIONI

Con quest’ultimo sketch abbiamo concluso la carrellata degli esempi. Vogliamo dare ancora qualche consiglio sull’utilizzo della libreria e in particolare sul file “Io_GSM.h” nel quale ritroviamo tutte le definizioni necessarie a configurare il funzionamento della libreria in base al modulo GSM che si vuole utilizzare e in base allo hardware a disposizione. Quindi ricordatevisempre di:

  • selezionare uno dei moduli GSM supportati;
  • selezionare quale scheda Arduino si intende usare tra quelle supportate;
  • selezionare la revisione hardware, la quale deve corrispondere alla revisione hardware stampata sul PCB;
  • selezionare tra UART1 hardware o software (la scelta dipende dalla configurazione dei jumper, per la quale rimandiamo alla tabella presente nel file);
  • abilitare le sezioni di gestione delle risposte da parte del modulo GSM, rammentando che sono disponibili diverse sezioni a seconda delle categorie di comandi AT; in questo caso si possono abilitare più sezioni contemporaneamente, quindi abbiamo:

– abilitazione sezione di gestione risposte a comandi AT generici (ENABLE_ANSWER_GENERIC_AT_CMD_STATE);

– abilitazione sezione di gestione risposte a comandi AT inerenti la sicurezza (ENABLE_ANSWER_SECURITY_AT_CMD_STATE);

– abilitazione sezione di gestione risposte a comandi AT inerenti la rubrica (ENABLE_ANSWER_PHONEBOOK_AT_CMD_STATE);

– abilitazione sezione di gestione risposte a comandi AT inerenti gli SMS (ENABLE_ANSWER_SMS_AT_CMD_STATE);

– abilitazione sezione di gestione risposte a comandi AT inerenti le chiamate vocali (ENABLE_ANSWER_PHONIC_ CALL_AT_CMD_STATE).

Se si omette di abilitare una sezione inerente ai comandi AT inviati, il sistema non riuscirà a gestire le risposte e rimarrà in attesa. Se necessario, abilitare/disabilitare le sezioni di debug.

Ricordate che esiste una definizione globale che disabilita tutto il codice di debug nella libreria e sotto-definizioni per attivare codice di debug mirato.

L’articolo completo è pubblicato sul numero 231 (Dicembre 2018/Gennaio 2019), acquistabile in tutte le edicole.

 

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Main Menu