Connessioni GPRS con la SXPY e modem Telit GM862Data di pubblicazione: 22-02-2007 | Versione Italiana | (No English Version) Parole chiave: - GPRS - Python - |
In questo articolo vediamo un esempio su come avviare una
connessione GPRS con la SXPY e un modem Telit GM862-PY
Nell'esempio descritto in questo articolo vediamo come,
sfruttando la funzione EASY GPRS integrata nei modem prodotti
dalla Telit, scrivere un
semplice programma Python che instaura un collegamento internet tramite rete GPRS ed effettua una GET HTTP verso un server WEB pubblico.
Vediamo anche come scrivere, lato WEB server, un semplice script in PHP che se
richiamato tramite GET HTTP, memorizza in un file
di log lo stato delle
variabili passate come argomento e genera in risposta dell'XML che verr� a
sua volta processato dal programma Python in esecuzione sul modem.
EasyGPRS in sintesi
La modalit� EASY GPRS, implementata solo sui
prodotti della Telit, consente di effettuare e gestire connessioni TCP/IP direttamente
dal modem tramite semplici comandi AT. Grazie a questa modalit� �
possibile effettuare connessioni direttamente su rete Internet verso qualsiasi
server dotato di IP pubblico senza doversi preoccupare di gestire lo stack PPP e scrivendo pochissime righe di codice.
Questa caratteristica consente di trasformare il
binomio SXPY - modem GM862-PY in un terminale remoto in grado di inviare
segnalazioni di allarme tramite E-MAIL oppure con delle GET o POST HTTP
di inserire dati direttamente in un Database SQL tramite una semplice
interfaccia WEB realizzata con script ASP o
PHP.
Per avviare una connessione GPRS con il modem GM862-PY �
sufficiente inviare i seguenti comandi AT:
AT+CGDCONT=1,"IP","APN"
Il valore
APN varia a seconda dell'operatore
telefonico.
AT#SKTSET=0,xxxx,"XXX.XXX.XXX.XXX"
Dove xxxx � il numero di porta
mentre XXX.XXX.XXX.XXX � l'IP del server remoto a cui
ci si vuole connettere.
AT#SKTOP
Comando per avviare il contesto GPRS.
Hardware e collegamenti elettrici
L'hardware usato in quest'articolo � composto da:
- Una scheda SXPY
- Un modem GM862-PY
- Un antenna GSM
- Una alimentatore a parete 220v -12V
L'unico collegamento elettrico da effettuare consiste nell'applicare una
tensione continua o alternata compresa tra 9 e 24V sul morsetto "PWR IN" della
SXPY.
Prima di alimentare la SXPY verificare che sia connessa l'antenna GSM al
modem Telit
Sorgente in Python
Il sorgente scritto in Python 1.5.2+ da caricare nella memoria del modem
Telit (la documentazione su come caricare ed eseguire programmi Python sulla SXPY �
disponibile nell'articolo : Guida all'utilizzo della SX-PY) � composto da un loop
principale che controlla continuamente lo stato dei due ingressi "INP1" e "INP2"
/ pulsante TEST presenti sulla SXPY. Appena una di questi cambia stato, il programma Python invia al
core GSM i comandi AT, precedentemente visti, per attivare il contesto GPRS.
Una volta avviata la connessione GPRS, il programma invia una richiesta GET HTTP
verso il server internet puntato dalle variabili riportate di seguito:
SRV_ADDR = "195.130.xxx.xxx" #Indirizzo del server
SRV_PORT = 80 #Porta su cui � in ascolto il server
WEB_PATH = "sxpy.php" #Script da richiamare
La GET HTTP oltre a richiamare lo script PHP passa a questo anche due
variabili IN1 e IN2 che riportano rispettivamente lo stato degli ingressi
INP1 e INP2.
Lo script PHP in esecuzione sul server WEB, una volta processata la richiesta
GET risponde con una struttura XML come quella visibile di seguito.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<SXPY>
<R1>0</R1>
<R2>0</R2>
</SXPY>
L'XML generato viene analizzato dal programma Python che, a seconda del valore
dei TAG <R1> e <R2>, gestisce lo stato dei due rel� "K1" e "K2" montati sulla SXPY.
Sorgente: SXPY_GPRS.zip
Script PHP
Lo script WEB fornito in questo articolo � stato scritto in
linguaggio PHP (www.php.net) e
fatto girare su un web server Apache (www.apache.org),
naturalmente � possibile riscrivere lo script usando il linguaggio di
programmazione web che si preferisce e lo si pu� far girare su un altro server web
ad es: IIS di Microsoft .
Se il proprio server pubblico � una macchina con sistema
operativo Windows e non si dispone dell'ambiente Apache-PHP, lo si pu�
installare facilmente usare il pacchetto easyPHP scaricabile
gratuitamente dall''URL:
www.easyphp.org.
Analizzando lo script sxpy.php vediamo che prima di
pubblicare l'XML riportante lo stato delle linee della SXPY, genera un
file di log "log.txt" contenete data / ora, IP della sessione e stato delle
due linee INP1 e IMP2.
Connessione GPRS del 15/2/2007 delle 14:40:00 da IP:
83.225.80.157. Stato ingresso 1: 1 Stato ingresso 2: 0
Connessione GPRS del 15/2/2007 delle 14:44:56 da IP: 83.225.189.200. Stato
ingresso 1: 0 Stato ingresso 2: 1
Connessione GPRS del 15/2/2007 delle 14:46:02 da IP: 83.225.172.17. Stato
ingresso 1: 0 Stato ingresso 2: 1
Il file di log viene salvato nella stessa directory WEB in cui �
stato copiato lo script sxpy.php.
Sorgente: SCRIPT_PHP.zip
Download
Guida utente EASY GPRS:
EasyGPRS_UserGuide_r0.pdf
Segnala questo articolo:
Parole chiave: - GPRS - Python -
|