| Un localizzatore GPS con la SXPY e il modem Telit GM862-GPS | Data di pubblicazione: 24-01-2007 | Articolo | Livello | Versione Italiana | English Version  Parole chiave: - GPS - Localizzazione - Python - SMS - |
In questo articolo vediamo come realizzare un semplice localizzatore GPS
capace di rivelare le coordinate geografiche ed inviarle tramite un SMS alla
chiusura di un contatto o la pressione di un pulsante.

In questo articolo vediamo un'interessante applicazione
realizzata usando la SXPY (Guida all'utilizzo della SX-PY)
e il modem Telit GM862-GPS. In pratica quello che andremo a costruire è un
semplice localizzatore GPS che, appena viene chiuso un contatto o premuto un
pulsante, acquisisce le coordinate geografiche ricevitore GPS integrato nel
modem della Telit e le invia tramite SMS.
Hardware e collegamenti
Per realizzare questa applicazione è necessario disporre del seguente
hardware:
Una volta montato il modem Telit sulla SXPY nell'apposito
alloggio, bisogna collegare l'antenna GSM tramite il
cavo adattatore MMCX - FME al connettore posto sul fianco del modem ed indicato
dall'etichetta "GSM" come visibile nella foto che segue.

Oltre all'antenna GSM in questa applicazione è richiesta una
seconda antenna per il ricevitore GPS. Questa va collegata al connettore posto
sul fianco del modem ed indicato dall'etichetta "GPS" usando il cavo adattatore MMCX-SMA.

Completati i collegamenti delle due antenne bisogna alimentare
la SXPY applicando una tensione compresa tra 8 e
24V sul morsetto JP2 etichettato "PWR IN".
Il programma in Python
Il programma scritto in linguaggio Python dopo aver
inizializzato il modem passa in un loop infinito che sorveglia lo stato della
linea GPIO8 connessa sulla SXPY all'ingresso optoisolato "IMP2" e al pulsante
"TEST". Appena lo stato di questa linea passa a livello basso, causa la pressione del
tasto "TEST" o un segnale applicato sull'ingresso optoisolato, il programma Python invia il
comando AT$GPSACP al modem che risponde dopo pochi istanti con una speciale sentence contenente le coordinate GPS.
Esempio di risposta
$GPSACP:
173932.999,4152.4644N,01229.3719E,50.0,88.5,2,170.48,4.24,2.29,231106,03
Di seguito sono descritti in dettaglio i valori tra "," della
sentence
-
173932.999 orario in formato UCT (hhmmss.sss)
-
4152.4644N latitudine formato ddmm.mmmm N/S
-
01229.3719E longitudine formato ddmm.mmmm E/W
-
50.0 Horizontal Diluition (ricavata dalla GGA sentence)
-
88.5 Altitudine
-
2 Fix valore 1 Fix non valido
-
170.48 Couser over Graund
-
4.24 Velocità in Km/h
-
2.29 Velocità in Knots
-
231106 Data ddmmyy
-
03 Numero totale di satelliti visti
Il valore dell'intera sentence viene inviato tramite SMS al
numero di cellulare settato nella variabile _GSMNUMBER posta all'inizio del
sorgente Python.
Prima di caricare il firmware nella memoria,procedura questa
descritta nell'articolo: , è necessario impostare: la
variabile _GSMNUMBER con il numero GSM su cui si vuole ricevere l'SMS e la
variabile _SERVICE_CENTER. Quest'ultima va settata con il numero del centro
servizi fornito dall'operatore telefonico della propria SIM GSM.
Per testare il sistema realizzato è
indispensabile posizionare l'antenna GPS all'aperto e in un punto non troppo
coperto. Infatti non è possibile ricevere il segnale GPS stando dentro casa,
nel garage o in galleria. In tutti questi casi interrogando il ricevitore GPS
riceveremo la sentence con il valore FIX a 1 che significa lettura non valida.

Una soluzione per la ricezione e la visualizzazione degli SMS
Gli SMS inviati dal nostro localizzatore possono essere
visualizzati attraverso un normalissimo cellulare oppure è
possibile raccoglierli con
una SMS Machine/HTTP (SMS Machine/HTTP - Gateway SMS - HTTP) e un applicazione WEB
scritta usando il linguaggio script PHP e un database MySQL.
Per realizzare questa seconda soluzione è necessario disporre
di:
L'applicazione sviluppata in PHP, disponibile nella sezione Download di
quest'articolo, si occupa di processare i POST HTTP provenienti dalla SMS Machine/HTTP
ogni qualvolta questa riceve un SMS, salvarli in un database MySQL e di
visualizzarli correttamente formattati in una pagina web sul proprio browser internet.
Per installare l'unico script .php che compone l'applicazione web è
sufficiente copiarlo nella document root (o in una delle sue sottodirectory) del
proprio web server e richiamarlo da un browser internet con l'URL
http://indirizzo_web_server/globalix.php
Lo script in automatico crea se non presente il database sul server MySQL e
la tabella in cui verranno salvati gli SMS provenienti dal nostro localizzatore
GPS.
I parametri di accesso al server MySQL vanno impostati nelle variabili poste
all'inizio dello script globalix.php
$mySqlHost = "localhost"; // Server MySQL
$mySqlUser = "root"; // Utenza MySQL
$mySqlPassword = ""; // Password
$mySqlDatabase = "globalix"; // Database
Sulla SMS Machine gli unici settaggi da effettuare usando l'apposito
configuratore smsconfig (tool fornito assieme alla SMS Machine/HTTP)
riguardano l'impostazione che specifica lo script da richiamare all'arrivo degli
SMS.

Come precedentemente detto lo script PHP oltre a salvare nel database gli SMS
ricevuti dalla SMS Machine ha anche il compito di visualizzarli formattati come
visibile nello screenshot che segue.
Per ogni SMS ricevuto e ritenuto valido viene visualizzata una riga nella
pagina WEB generata dallo script che riporta: data e ora della ricezione, il
numero GSM del mittente, latitudine, longitudine e altitudine.
Sulla destra di ogni riga è presente un'icona a forma di mondo che se cliccata
apre un link verso il sito Google Maps su cui possibile vedere la cartina della
posizione rivelata dal nostro localizzatore GPS.

Download
Sorgente script per Telit:
LOCALIZZATORE_GPS_SMS.zip
Sorgente script PHP: globalix.zip
Parole chiave: - GPS - Localizzazione - Python - SMS -
|