Data di pubblicazione: 11-05-2016 | Versione Italiana | (No English Version) Parole chiave: - GPRS - GPS - Localizzazione - Python - SMS -
In questo articolo vediamo come realizzare un localizzatore GPS
usando un engine TELIT. Il programma python in esecuzione sul modem
acquisite le coordinate GPS potr� trasmetterle via GPSR o via SMS.
In questo articolo vediamo come realizzare un localizzatore GPS
usando un modem Telit GE910-GNS o HE910-GNS.
Il Telit GE910 o HE910 integrano nell'engine un sofisticato modem 2G (GE910) o 3.5G (HE910)
con interprete Python 2.7, 2Mb di RAM e fino a 5Mb di file system oltre ad un preciso ricevitore
GPS.
Il firmware scritto in linguaggio Python 2.7 da caricare nel engine Telit, � disponibile gratuitamente nella sezione download di questo articolo.
Questo svolge le seguenti funzioni base:
ad intervalli regolari, acquisisce dal ricevitore GPS le coordinate e le trasmette,
via connessione dati GPRS o UMTS, ad un server WEB remoto.
La trasmissione dei dati tra il modem Telit ed il WEB server avviane tramite un
normale POST HTTP.
In caso di errore di trasmissione o assenza rete dati, sar� usato un SMS come backup.
Oltre alla trasmissione dati automatica, il firmware supporta anche interazione con l'utente.
Infatti, � possibile interrogare il modem Telit, tramite
un RING o un SMS di comando, per ottenere in risposta un SMS con le ultime coordinate
acquisite cos� come modificare impostazioni da remoto via SMS.
Hardware e collegamenti
Per realizzare questa applicazione � necessario disporre del seguente
hardware:
Una SIM abilitata al traffico dati e chiamata vocale (se si desidera usare la funzione di RING)
Prima di alimentare il modem, � importante aver inserito la SIM (con codice OIN disattivato)
e collegato le due antenne GSM/UMTS e GPS. Per la corretta ricezione GPS � necessario
tenere all'esterno l'antenna.
I modem modem GT-xE910 sono dotati di un supplementare connettore microFit da 6 poli che fornisce:
2 x ingressi optoisolati
2 x uscite opencollector optoisolate
Le due uscite vengono gestite dal firmware Python e comandate via SMS; mentre lo stato degli ingressi viene
trasmesso dal POST HTTP.
Software Python per Telit
Il software da caricare nella memoria del modem Telit � composto da tre file: GPSbaseP27.pyo, CFG_SYS.conf e
CFG_APP.conf.
Il primo file � il programma compilato in Python 2.7,
il secondo (CFG_SYS.conf) contiene la configurazione per la connessione dati e il terzo (CFG_APP.conf)
file contenente i parametri funzionali dell'applicazione.
Il file di configurazione CFG_SYS.conf, modificabile con un qualsiasi editor di testo
(es. Notepad ++),
contiene i parametri necessari al modem per instaurare la connessione dati GPRS o UMTS e per
inviare SMS (il centro servizi cambia da operatore a operatore).
Di seguito la struttura del file CFG_SYS.conf (nel caso di SIM della TIM):
#Centro servizi
SMSC="+393359609600"
#Connessione dati
GPRS_APN="ibox.tim.it"
GPRS_UID=""
GPRS_PWD=""
#Rete AUTO GSM WCDMA
NETWORK="GSM"
#Roaming dati 1 == ON 0 == OFF
ROAMING="0"
Struttura del file CFG_APP.conf:
#Etichetta dispositivo
LABEL="prova"
#Dati del server WEB remoto
WEB_SRV_IP="adsl.areasx.com"
WEB_SRV_PORT="8080"
WEB_SRV_URL="/log.php"
#Password trasmissione POST HTTP
POST_PWD="1234"
#Numero GSM abilitato ad inviare RING e SMS di comando
ADMIN_GSM_NUMBER="+393478000000"
#Abilita o disabilita il backup di trasmissione su SMS
BACKUP_SMS="1"
#Numero GSM abilitato a ricevere SMS di BACKUP
GW_GSM_NUMBER="+393478000000"
#Intervallo in Sec trasmissione POST HTTP. 0 disattivato
DELAY_SEND_DATA="300"
#Velocit� minima. 0 disattivato
MIN_SPEED="0"
Caricare il software nella memoria del modem Telit
La procedura per caricare il software Python sulla memoria del modem Telit
contenuto nel modulo GT-xE910 � notevolmente semplificata usando il tool
SxPythonDownload scaricabile gratuitamente nella sezione download.
Una volta installato il programma SxPythonDownload su un PC con sistema
operativo Windows, � necessario collegare la seriale DB9 dell'engine Telit 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
Trasmissione dati POST HTTP
Il programma GPSbaseP27.pyc ciclicamente, a intervalli regolari ( definiti dal parametro DELAY_SEND_DATA),
acquisisce le coordinate GPS, le formatta e le invia tramite post HTTP ad un server WEB.
Non solo, � anche possibile impostare una velocit� minima rilevata cos� da interrompere la trasmissione
quando il terminale � fermo in modo da risparmiare traffico dati/SMS.
La struttura del POST HTTP � come quella riportata nell'esempio che segue:
Nella richiesta di esempio, il valore /log.php e Host: www.areasx.com:80 corrispondono
rispettivamente al valore:
WEB_SRV_URL, WEB_SRV_IP e WEB_SRV_PORT
configurati nel file CFG_SYS.conf.
La stringa data (es. LABEL=359785020092253&GPS=....&IN1=1&IN2=1&ADC=0&PWD=6abba8aff0975505b258eab4f107eb90\r\n) del POST HTTP si compone dei valori:
LABEL stringa impostata nel file CFG_APP.conf o codice IMEI del modem;
IN1 e IN2 valore logico degli ingressi presenti su connettore microfit a 6 poli;
ADC tensione applicata sull'ingresso del morsetto a 6 poli.
Il parametro GPS contiene le coordinate acquisite separate da ";":
Il parametro PW contiene il valore md5 calcolato dalla stringa:
LABEL=[label o IMEI]&GPS=[valori ;]&IN1=[0 o 1]&IN2=[0 o 1]&ADC=[valore]&PW=[POST_PWD in file CFG_APP.conf]
Lo script WEB ricevente, per autenticare la trasmissione, deve confrontare il valore
md5 ricevuto con il valore md5 calcolato dalla stringa ricevuta
in POST; sostituendo al valore md5 la password che ha in comune con il modem.
Risposta del Server WEB (nel esempio Apache/PHP in ambiente LINUX):
Per considerare la trasmissione conclusa, il modem Telit attende dal server WEB un HTTP/1.x 200 OK\r\n
Trasmissione dati via SMS
In caso di fallita trasmissione dati via GPRS e, se abilitato nel file di configurazione (CFG_APP.conf parametro BACKUP_SMS="1"),
il programma python provvede a trasmettere le coordinate via SMS al numero configurato nel parametro GW_GSM_NUMBER.
Di seguito la struttura del SMS trasmesso:
Con i campi seprati da ; aventi lo stesso significato sopra descritto:
latitudine,latitudine direzione,longitudine,longitudine direzione,fix gps,satelliti,HDOP,altitudine,velocit�(nodi),data gps(M.D.Y),orario gps (H:M:S)
In questo modo, abbinando al proprio WEB server una SMS Machine HTTP (SMS Machine HTTP/EMAIL )
per la ricezione degli sms � possibile avere un backup di trasmissione in tutti i casi in cui la copertura GPRS
� assente o insufficiente.
Il firmware python � in grado di gestire alcuni SMS di comando in ingresso, come:
Gli SMS di comando possono essere
inviati esclusivamente dal numero GSM configurato nel parametro ADMIN_GSM_NUMBER presente nel file CFG_APP.conf.
Inviando un SMS con il testo POSIZIONE:GOOGLE oppure, in alternativa, eseguendo un RING, ossia una chiamata senza risposta e quindi senza costi,
(il comando SMS � utile in quanto l'uso di SIM M2M potrebbe non prevedere le chiamate vocali)
� possibile ottenere la posizione istantanea del dispositivo. Dopo pochi secondi il Telit, invia
un messaggio di risposta con il testo come il seguente:
https://www.google.it/maps/place/41.870350N+12.468030E/
il link google contenuto nel SMS pu� essere aperto e visualizzato direttamente sul terminale ricevente.
Se, al momento della richiesta, il segnale GPS non � valido, il modem invia un SMS con i dati della cella GSM su cui �
registrata la SIM:
es.
GPS ERROR;222;01;EAD0;1E7A
GPS ERROR;MCC;MNC;LAC;BSIC
dove: MCC: Mobile Country Code (222 Italia) MNC: Mobile Network Code (01 TIM,10 Vodafone, 88 Wind) LAC: Location Area Code BSIC: Base Station Identity Code
Inviando l'SMS AUTO: ON o OFF si abilita o disabilita la trasmissione dei dati via POST HTTP.
Con il messaggio OUT:1 o 2 ON e OUT:1 o 2 OFF rispettivamenet si attivano o disattivano le uscite opencollector presenti
sul connettore microfit a 6 poli posizionato dal lato della porta seriale.
L'ultimo sms di comando SETUP: permette la modifica da remoto del file di configurazione CFG_APP.conf.
I marchi citati sono propriet� dei titolari dei relativi diritti. Le caratteristiche tecniche e i prezzi riportati
sono indicativi e soggetti a variazioni senza preavviso. Le foto non hanno valore contrattuale.
Nonostante accurate verifiche, il presente documento pu� contenere prezzi o specifiche errati.
Area SX si scusa in anticipo e si impegna ad evitare tali imprecisioni.
Area SX store In questa sezione puoi ordinare direttamente i prodotti descritti in questo articolo EZ-PWS;AMM.575;AMM.90;ANT-DYN526;AMM.860B;GT-GE910-GNS;EZ863H-2G-GNSS;EZ10-PWS;GT-HE910-EUD-KIT
Tutti i prezzi indicati sono espressi in Euro con IVA e spese di trasporto escluse. I prezzi si riferiscono al singolo pezzo
Descrizione
Codice
Prezzo
Alimentatore per moduli EZ e Telit serie GT Alimentatore per modem EZ e Telit serie GT.
Principali caratteristiche tecniche
Input: 110-240v AC 50/60 Hz
Output: 12V CC 1.25A
Spina: Italiana
Connettore bassa tensione: Molex a 4 vie
Certificazione: CE
Questo alimentatore è compatibile con i seguenti prodotti:
Antenna GPS attiva con base magnetica Antenna GPS con cavo di 5 metri e connettore SMA maschio.
Il prodotto è testato per l'utilizzo con modem Telit GM862-GPS
Principali caratteristiche tecniche:
Antenna con base magnetica per moduli GSM/GPRS con SMA/M Antenna con base magnetica per moduli GSM/GPRS Quadri Band 850/900/1800/1900 MHz, con
cavo coassiale 3mt e connessione SMA Maschio.
Impedenza: 50 Ohms
Polarizzazione: verticale
Guadagno: 2.2 dBi Max
VSWR: <1.5:1
Cavo: RG174
Lunghezza cavo: 2.5mt
Temperatura operativa: da -40°C a +85°C
Questa antenna è compatibile con i seguenti prodotti:
.
Antenna Shark per GPS/Glonass e GSM/GPRS/WIFI con doppio attacco SMA/F Antenna a pinna unica per GPS/Glonass e GSM/GPRS/WIFI, con doppio cavo coassiale da 3mt di lunghezza e connessione SMA maschio.
Caratteristiche tecniche:
GT-GE910-GNS Modem GSM con GPS interprete Python e linee GPIO Il nuovo GT-GE910-GNS è un modulo GSM/GPRS con supporto di GPS e GLONASS basato su modem Telit GE910-GNSS,
racchiuso in un robusto case in alluminio di circa 8 x 6 x 3cm.
Il range esteso di alimentazione da 6 a 50V e l'ancor più performante interprete Python 2.7 integrato nel modem Telit, che rende
possibile scrivere programmi da far eseguire all'EZ863H-2G-GNSS senza l'ausilio di microcontrollori esterni, fanno del GT-GE910-GNS
il terminale ideale per applicazioni M2M.
Nel GT-GE910-GNS è presente anche un preciso ricevitore di nuova generazione, con supporto integrato e ottimizzato dei sitemi GLONASS, GPS e A-GPS,
ideale per sviluppare sistemi di localizzazione anche complessi e, con buona precisione, anche indoor.
Completano la dotazione tecnica linee di I/O e un ADC.
Principali caratteristiche tecniche:
Modem quad-band EGSM 850/900/1800/1900MHz - GPRS classe 10
Ricevitore GPS-GNSS integrato
Interprete Python 2.7.2
PIC16F1824 Micro per ON/OFF del modem e Watchdog PYTHON script (opzionale)
Ingresso analogico in tensione 0-50V con ADC a 10bit
Seriale Full RS232 su connettore DB9 femmina
Connettori 3mm Micro Mate-N-LOK 6 poli per gli I/O
Connettori SMA femmina per antenne GSM/GPRS e GPS/GNSS
Connettore USB tipo B
LED di segnalazione
Alimentazione da 6 a 50V DC - assorbimento min 20mA max 2000mA con connettore 4 poli 3mm Micro Mate-N-LOK
Temperatura operativa da -20°C a +55°C
Peso e dimensioni: 180g - 83 x 64 x 35mm
Il modem GT-GE910-GNS, viene fornito completo di cavetteria per le connessioni esterne, esclusi: antenna GSM, antenna GPS/GNSS ed alimentatore 220V - 12V.