Dopo aver conosciuto il modulo AZ-Delivery SIM800L e compreso il suo ambito di utilizzo (GSM–GPRS) iniziamo a creare un progetto che funzioni.
Prima di iniziare, occorre decidere se si desideri utilizzare l’antenna Plug-in o l’antenna che richieda una saldatura. Se si sceglie di saldare sull’antenna, occorre utilizzare flussante e adottare una saldatura con il punto di fusione più basso possibile. Bisogna inoltre assicurarsi che l’antenna non tocchi altri componenti. Un pezzo di cartone o plastica come distanziatore per la saldatura semplifica il processo di saldatura. RIcordiamoci che una cattiva connessione di saldatura disturba la ricezione, vanificando le operazioni di upgrade effettuate!
L’antenna esterna è particolarmente adatta se il modulo è installato in una custodia metallica. Se si utilizza un’antenna esterna, il giunto di saldatura per l’antenna interna deve rimanere libero per evitare interferenze. È possibile utilizzare direttamente le intestazioni dei pin in dotazione oi cavi di saldatura.
La scheda microSD
Guardando la presa della scheda SIM, la Micro-SIM è contrassegnata con la tacca n alto a sinistra , e deve essere premuta fino a quando il meccanismo a molla non si innesta.
Creare il circuito
Effettuare tutti i collegamenti mostrati nell’immagine sottostante. È possibile selezionare i pin RX e TX su altri pin dell’Atmega328p sesi utilizza un corretto sistema di assegnazione attraveso il pilotaggio della libreria software serial. L’alimentazione dell’Atmega328p deve ovviamente essere effettuata attraverso l’apposita porta USB.
Se la funzione telefono non è necessaria, è ovviamente possibile omettere il microfono e gli altoparlanti.
Successivamente può essere utile collegare il pin di reset del modulo.
Configurazione di Arduino IDE
In linea di principio, il modulo SIM800L non richiede una libreria, in quanto può essere controllato direttamente con comandi AT tramite comunicazione seriale. Di seguito è disponibile una panoramica dei possibili comandi AT:
https://simcom.ee/documents/SIM800H/SIM800%20Series_AT%20Command%20Manual_V1.10.pdf
Tuttavia, controllare il modulo utilizzando una libreria è molto più semplice e conveniente.
Innanzitutto si installa il modulo GSMS nella libreria di Erdem Arslan tramite il gestore della libreria. Su Github c’è una buona documentazione in lingua inglese per la biblioteca
sotto il link https://github.com/erdemarslan/GSMSim .
In alternativa è possibile scaricare GSMSim direttamente da Github ed estrarlo nella directory delle librerie della cartella Arduino.
In caso di problemi, controllare se la libreria SoftwareSerial sia installata come necessario. Ricordiamo che le versioni attuali dell’IDE Arduino dovrebbero avere la libreria SoftwareSerial installata per impostazione predefinita.
Codice di esempio per il modulo
Se il progetto risulta collegato correttamente, è possibile aprire l’esempio GSMSim_Module_Info andando su
1 |
File > Esempi > GSMSim > GSMSim_Module_Info |
Poiché non è ancora stato collegato il pin di ripristino del modulo, bisognerà prima apportare due piccole modifiche allo sketch. Per prima cosa rimuovere la riga:
1 |
#define RESET 2 |
Quindi cambiare questa riga:
1 |
GSMSim gsm(RX, TX, RESET); |
con
1 |
GSMSim GSM(RX, TX); |
Per renderlo un po’ più flessibile, si puo aggiungere una riga di codice dopo le righe:
1 2 |
void setup() { Serial.begin(9600); |
aggingere la seguente riga di codice:
1 |
while (!Serial){ } |
L’Atmega328p attenderà quindi di aver aperto il monitor seriale prima di procedere con il programma.
Dopo aver caricato lo sketch sull’Atmega328p e avviato il monitor seriale, dopo poco tempo si dovrebbe visualizzare qualcosa di simile:
Se non è stato aggiunto il comando di attesa, occorre premere il pulsante RESET sul modulo Atmega328p dopo aver aperto il monitor seriale.
Si prega di controllare i seguenti dati prima di procedere:
- L’IMEI dovrebbe corrispondere all’IMEI sul tuo modulo.
- Sul campo “Is Connected?”: dovrebbe esserci il valore 1, per “vero”
- Il valore di “Qualità del segnale” deve essere compreso tra 1 e 31 (un valore di 0 o 99 indica un errore dell’antenna)
- L’operatore della sim dovrebbe corrispondere al tuo provider
Se non ci sono valori o sono errati nella seconda riga della tabella, il Atmega328p non riesce a stabilire una buona connessione al modulo. In tal caso bisognerà controllare il cablaggio.
Si può cambiare la riga
1 |
gsm.start(BAUD); |
con
1 |
gsm.start(); |
così da garantire al Modulo e Atmega328p un baud rate valido attraverso un corretto handshaking.
Se “Is COnnected?” è seguito da uno 0 (il valore che indica “falso”), controllare se la carta SIM ha un PIN, perché deve essere disattivata. (Standard ad esempio per le schede SIM ThingsMobile).
Se infine il modulo continua a non stabilire una connessione nonostante una buona potenza del segnale, verificare se la SIM è attivata presso il provider.
Considerazioni finali
Abbiamo visto in che modo configurare l’hardware ed il software del modulo AZ-Delivery SIM800L. Attraverso il programma di esempio scelto abbiamo anche estratto le informazioni necessarie per identificare la nostra SIM card.
Nel prossimo articolo inizieremo a programmare la scheda sul serio, e vedremo un esempio di sketch funzionante per inviare (e leggere!) un SMS.
Non perdetevi la prossima puntata!
Link utili:
- AZ-Delivery SIM800L
- Arduino Uno R3 originale
- Arduino Uno R3 (clone)
- Altre schede compatibili
- Librerie per moduli SimCom
- Documentazione uso comandi AT
Articoli precedenti:
- Imparare ad usare la scheda AZ-Delivery SIM800L #1
- Imparare ad usare la scheda AZ-Delivery SIM800L #2
Iscrivetevi ai nostri gruppi Telegram…