Trasmettere le coordinate GPS via GPRS con un modem TelitData di pubblicazione: 20-08-2009 | Versione Italiana | (No English Version) Parole chiave: - GPRS - GPS - Localizzazione - |
Il progetto proposto in questo articolo mostra come realizzare con un EZ863-GPS un trasmettitore GPS che
ad intervalli regolari trasmette le coordinate ad un WEB server tramite una connessione internet su rete GPRS.
(schema)
Il funzionamento del sistema proposto e raffigurato nello schema sopra riportato può
essere riassunto in 3 semplici fasi:
Fase 1: Il modulo EZ863-GPS con l'apposito programma in python riceve costantemente le coordinate dal satellite,
e verifica se l'apparato su cui è installato ha superato la velocità (in nodi) di guardia configurata.
Fase 2: Appena viene superato la soglia di velocità impostata, il modulo EZ863-GPS attiva il contesto GPRS
per collegarsi ad internet e trasmettere tramite una semplice POST HTTP
le coordiante GPS ad un WEB server
su cui è stato precedentemente caricato un apposito script in PHP.
Fase 3: Per visualizzare l'ultima posizione GPS registrata relativa all'apparato su cui è installato il modulo
EZ863-GPS, è sufficiente connettersi ad internet tramite un PC e digitare sul browser l'indirizzo URL del nostro WEB
server.
Requisiti hardware
Per realizzare il sistema proposto è necessario disporre di:
- Un modulo EZ863-GPS equipaggiato di antenna GSM e GPS o un modem Telit con GPS ed interprete
Python
- Una SIM GSM con il codice PIN disabilitato ed abilitata al traffico GPRS.
- Un server WEB (con interprete PHP) connesso su IP pubblico (questo servizio può essere acquistato su Aruba,
Tol o altri provider simili)
Software python per Telit
Il software da caricare nella memoria del modem Telit contenuto nell'engine EZ863-GPS è composto da tre file:
il programma compilato in Python 1.5.2 e due file di configurazione .
Il primo file di configurazione system.conf contiene i parametri fondamentali per il funzionamento del programma come:
#CENTRO SERVIZI
SERVICE_CENTER="+393359607000"
#
#Parametri per la connessione GPRS
GPRS_APN="ibox.tim.it"
GPRS_UID=""
GPRS_PWD=""
#
#Identificativo DEVICE 15 caratteri max
ID_DEVICE="000000000000001"
#
#Velocità di soglia trasmissione(in miglia, dato intero)
SPEED=3
#
#Hardware su cui gira il programma
#0 SXPY
#1 EZ863
#2 EZ10
HARDWARE=0
Il terzo file server.conf contiene i parametri necessari al programma Python per raggiungere il WEB server per l'invio del POST HTTP.
Di seguito è riportato un esempio:
#Indirizzo IP del web server
SRV_IP="213.203.130.203"
#Porta TCP su cui ascolta il web server
SRV_PORT=8080
#Path del web server (senza indirizzo) che contiene gli script PHP
SRV_URL="/localizzatore/index.php"
#Password da trasmettere nella QUERY POST
SRV_PWD="12345"
Caricare il software nella memoria del modem Telit
La procedura per caricare il software python sulla memoria del modem Telit contenuto nel modulo EZ863-GPS
notevolmente semplificata usando il tool SxPythonDownload scaricabile gratuitamente nella sezione download.
Una volta installato il programma SxPythonDownload su un
PC con sistema operativo Windows 2000/XP/Vista è necessario collegare l'EZ863-GPS alla porta seriale
del PC tramite un cavo seriale a 9 poli dritto.
Nel caso il proprio PC non fosse dotato di porta seriale COM è possibile usare
un convertitore USB-Seriale come quello disponibile al link che segue: Convertitore da USB a Seriale RS232
Tutte le informazioni su come caricare e gestire gli script Python nei modem Telit
sono disponibili negli articoli linkati di seguito:
Guida all'utilizzo della SX-PY
Dalla sezione download di quest'articolo possiamo scaricare e successivamente
decomprimere su un PC il file TrasmettitoreGPS-GPRS.zip. Al termine della
decompressione avremo tre file di seguito descritti:
- GPS_GPRS.pyo programma principale compilato
- system.conf file di configurazione generale
- server.conf file di configurazione server web remoto
Tutti i file sopra elencati, vanno caricati nella memoria del modem e soltanto
il file GPS_GPRS.pyo va reso eseguibile cliccando sul tasto "Attiva"
presente nel software SxPythonDownload.
Il programma viene fornito in formato sorgente acquistando un EZ863_GPS_KIT .
o un SXPY_GPS_KIT
Il server WEB
Come descritto all'inizio di questo articolo, al superamento di una precisa soglia di velocità, il modulo EZ863-GPS,
dopo aver arrivato il contesto GPRS, ad intervalli regolari effettua delle richieste HTTP di tipo POST verso un WEB server
pubblico (per pubblico intendiamo dotato di indirizzo IP raggiungibile su internet).
Ad ogni richiesta POST HTTP il modulo EZ863-GPS trasmette al Web server
tre variabili: PW, ID, PR
- La variabile PW contiene la password configurata nel file system.conf caricato nel modem
- La variabile ID contiene l'identificativo (ID) configurata nel file system.conf caricato nel modem.
Se questo campo non viene impostato, il modem trasmette il codice IMEI del modem.
- La variabile PR contiene 11 elementi separati dal carattere "," (simile al costrutto NMEA).
Partendo dal primo elemento:
- latitudine,
- latitudine direzione,
- longitudine,
- longitudine direzione,
- altitudine,
- velocità (in nodi),
- cursore (0-360),
- data,
- ora (formato UTC),
- satelliti,
- fix
Esempio:
4152.2095,N,01228.0818,E,9.0,0.0,130.37,030809,084523.999,07,1
Gli script PHP proposti in questo articolo (contenuti nel file Trasmettitore_GPS_GPRS_SCRIPT_PHP.zip disponibile nella sezione Download) ha una duplice funzione:
ricevere, parsare e salvare in un DB SQLite le trasmissioni effettuare dal modulo EZ863-GPS;
Visualizzate su cartografia Google Maps l'ultima posizione ricevuta.
Per il corretto funzionamento dello script è necessario disporre di un WEB server con:
indirizzo IP pubblico e interprete PHP 5.0 o superiore.
Se non si vuole o non si può configurare in casa un proprio server web è possibile acquistare dello
spazio web da provider come: Aruba, Tol o altri.
Prima di caricare gli script PHP nella document root del nostro WEB server,
è necessario ottenere gratuitamente da Google una API KEY.
Questa chiave è fondamentale per effettuare la visualizzazione
delle coordinate GPS su cartografia google.
Per ottenere una API KEY è necessario disporre di un account Gmail (http://mail.google.com)
e una volta loggati aprire il seguente link:
http://code.google.com/intl/it-IT/apis/maps/signup.html
inserire l'indirizzo WEB del proprio server, accettare le condizioni di contratto e cliccare sul tasto
"Generate API KEY".
Dopo qualche istante viene visualizzata una pagina WEB che riporta la nostra nuova API KEY,
che appare come una stringa simile alla seguente:
ABQIAAAAPtuU__7hrfMGJNN0oUqVlxRht1t4l1nM7rRklwbstsZZV6w4ixzzzz_000000000000000000000000AA
La API KEY così ottenuta va copiata nel file config.inc.php (contenuto nel file LocalizzatoreGPS_PHP.zip)
$GOOGLE_KEY = "ABQIAAAAPtuU__7hrfMGJNN0oUqVlxRht1t4l1nM7rRklwbstsZZV6w4ixzzzz_000000000000000000000000AA";
prima che questo venga caricato nel server WEB.
Per testare il corretto funzionamento degli script PHP è sufficiente richiamare da un qualsiasi PC
connesso ad internet
il seguente link:
http://proprio server WEB/
per vedere dopo pochi istanti apparire la pagina WEB con visualizzata l'ultima posizione GPS salvata nel DB.
Lo script PHP proposto in questo articolo è puramente dimostrativo e può essere modificato e/o ampliato a piacimento
per realizzare sistemi di visualizzazione cartografica molto più complessi.
Download
Programma per modem Telit: Trasmettitore_GPS_GPRS.zip
Script PHP per Web Server: Trasmettitore_GPS_GPRS_SCRIPT_PHP.zip
Tool SxPyDownloadToolSetup.zip
Segnala questo articolo:
Parole chiave: - GPRS - GPS - Localizzazione -
|