domingo, 29 de mayo de 2016

Objetivo:

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.1

Personalizamos 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

1 comentario:

  1. Thanks for sharing, nice post! Post really provice useful information!

    FadoExpress là một trong những top công ty vận chuyển hàng hóa quốc tế hàng đầu chuyên vận chuyển, chuyển phát nhanh siêu tốc đi khắp thế giới, nổi bật là dịch vụ gửi hàng đi đài loan uy tín, giá rẻ

    ResponderEliminar