Enviar una solicitud http mediante un modem gprs serial
Actividades:
1. Instalar una version reciente de python.
Url: https://www.python.org/downloads/
D
Descargamos e instalamos la version 3.5.1Personalizamos la instalacion para incluir el modulo pip
Verificamos que esté instalado el modulo serial:
En caso que no se encuentre instalado, usar pip para instalarlo usando:
Copiar el siguiente script de python, que habilita una sencilla consola para enviar comandos al puerto serial:
# configure the serial connections (the parameters differs on the device you are connecting to)
ser = serial.Serial(
port='com22',
baudrate=38400,
)
ser.isOpen()
print('Enter your commands below.\r\nInsert "exit" to leave the application.')
car=""
while 1 :
# get keyboard input
# input = raw_input(">> ")
# Python 3 users
car = input(">> ")
if car == 'zzz':
car = '\r\n\x1a\r\n'
ser.write(car.encode())
if car == 'exit':
ser.close()
exit()
else:
# send the character to the device
# (note that I happend a \r\n carriage return and line feed to the characters - this is requested by my device)
car = car + '\r\n'
ser.write(car.encode())
out = ''
# let's wait one second before reading output (let's give device time to answer)
time.sleep(1)
while ser.inWaiting() > 0:
out += str(ser.read(1),"utf-8")
if out: # If it isn't a blank line
print('<< '+out)
Mediante el uso de la terminal que nos proporciona el script ingresamos los comandos:
| Comando | Significado | Respuesta esperada | Posibles errores |
|---|---|---|---|
| AT+CPIN? | Verifica estatus del SIM | +CPIN: READY OK |
|
| AT+CREG? | Verifica si el SIM está registrado en la red | +CREG: 0,1 OK |
|
| AT+CGATT? | Verifica estatus de la red GPRS | +CGATT:1 OK |
|
| AT+CIPSHUT | Reestablece la sesión en la red | SHUT OK | |
| AT+CIPSTATUS | Verifica estatus de la sesión | OK STATE: IP INITIAL |
|
| AT+CIPMUX=0 | Establece el modo de conexión a 1 | OK | |
| AT+CSTT= “APN”, “UNAME”, “PWD” | Abre una conexión GPRS al APN indicado, las dobles comillas son requeridas | OK | |
| AT+CIICR | Habilita la conexión | OK | |
| AT+CIFSR | Verifica la dirección IP que nos asignó la red (Debemos ver nuestra dirección IP) | xxx.xxx.xxx.xxx | |
| AT+CIPSTART="TCP","MIDOMINIO.COM","80" | Establece conexión con nuestro servidor, indicar tipo de servidos, url y puerto | OK | |
| AT+CIPSEND | Envía los parámetros de la solicitud al servidor, en este ejemplo usaré una solicitud HTTP/Get | CONNECT OK | |
| Teclear los siguientes parámetros de la solicitud, ajustar de acuerdo a nuestras necesidades específicas | |||
| GET http://url.de.mi.pagina HTTP/1.1 | |||
| User-Agent: mozilla | |||
| Host: midominio.com | |||
| Connection: keep-alive | |||
| Dar enter para enviar una línea en blanco, a continuacion enviar Ctrl-Z para indicar que la solicitud esta completa, si usamos el script de python esto se hace tecleando zzz y damos enter. | SEND OK | ||
| Debemos ver en la consola la respuesta del servidor | HTTP/1.1 200 OK | ||
| AT+CIPSHUT | Cerramos la conexión | SHUT OK |


