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 |