Servicio HTTP I
Saberes previos
- Saber interpretar circuitos electrónicos.- Ser capaz de analizar hoja de datos o dataship del sim800l.- Conocer el entorno de Arduino.- Conocer comandos AT para poder programar y comunicar el modulo sim800l.- Conocer como realizar tipo de peticiones, GET, POST para el protocolo HTTP.
Materiales Utilizados:
- Saber interpretar circuitos electrónicos.
- Ser capaz de analizar hoja de datos o dataship del sim800l.
- Conocer el entorno de Arduino.
- Conocer comandos AT para poder programar y comunicar el modulo sim800l.
- Conocer como realizar tipo de peticiones, GET, POST para el protocolo HTTP.
Materiales Utilizados:
- Tarjeta de Arduino mega 2560
- Modulo sim800l
- Módulo tp4056
- Sim card de Claro "para Colombia". Si esta en un pías distinto, puedes probar con distintas sim card y ver con cual funciona bien.
Circuito
Protocolo HTTP
Antes de empezar hacer pruebas a través de comandos AT, y hacer peticiones a un servidor utilizando el módulo sim800l, se debe conocer un poco del protocolo HTTP (Hypertext Transfer Protocol, protocolo de transferencia de hipertexto). Este protocolo permite la transferencia de datos, entre un cliente y un servidor web.
HTTP utiliza URL o direcciones para identificar los recursos en la web, donde se puede añadir o concatenar parámetros que definen información especifica, y a partir de ello obtener información deseada. Para el protocolo HTTP se definen diferente métodos de acción para invocar un servicio, entre los métodos más usados están:
GET: obtener datos o recurso.
POST: enviar datos al servidor.
PUT: actualizar datos o recurso en el servidor.
DELETE: eliminar datos o recurso en el servidor.
Cuando se invoca un servicio HTTP, el resultado de la solicitud se suele identificar a través de códigos de respuesta, propios del protocolo:
200 (OK): es una solicitud satisfactoria.
404 (No encontrado): solicitud donde no se encontró el recurso.
500 (Error interno del servidor): se tuvo problema en el servidor y no responde.
Teniendo en cuenta lo anterior, se describe a continuación los comandos AT utilizados para realizar una petición GET, a un servicio de prueba implementado con el lenguaje PHP.
AT+SAPBR=3,1,"Contype","GPRS" : Configurar perfil de portador
AT+SAPBR=3,1,"APN","internet.comcel.com.co": Establecer contexto de portador, el valor internet.comcel.com.co depende del operador móvil que se esté utilizando, en esta prueba se utiliza Claro-Colombia.
AT+SAPBR=1,1: Contexto de portador activo.
AT+SAPBR=2,1: Leer parámetro de portador.
AT+HTTPINIT: Se inicia el servicio HTTP.
AT+HTTPPARA="CID",1: Para llamar HTTP.
AT+HTTPPARA="URL","http://pruebasim800lphp.atwebpages.com/pruebasim800l.php?tuNombre=James Rodríguez": Se estable IP del servicio expuesto para invocar.
AT+HTTPACTION=0: Realiza acciones HTTP (GET).
AT+HTTPREAD: Leer respuesta del servicio.
AT+HTTPTERM: Finalizar sesión HTTP.
AT+SAPBR=0,1: Desactivar contexto de portadora.
El envió de los comandos AT se debe de realiza en el orden descritos anteriormente, y la respuesta del sim800l debe ser satisfactoria "OK", para que la configuración sea la correcta. Se recomienda ver el video de esta práctica para poder ver mas detalles del funcionamiento.
Descripción del servicio de prueba
Para la implementación del servicio, se hace uso del lenguaje PHP por su simpleza en el despliegues y desarrollo de estos recursos. A continuación se describe el desarrollo de dicho servicio:
<?php
$name= $_GET["tuNombre"];
echo "Hola, $name Bienvenido al canal de YouTube: Diseño Electronico A2P.";
?>
Donde:
tuNombre: parámetro que se debe pasar en la URL cuando se invoca el servicio.
name: variable que almacena el parámetro pasado por la URL.
Nota: Se debe tener en cuenta de contar con un paquete de dato activo, para que se pueda hacer la configuración satisfactoria del servicio y poder acceder a el, no basta con tener saldo disponible en la línea móvil.
Tips para realizar las pruebas
- Si no posee el modulo tp4056, puede realizar las pruebas solo con batería, utilice una, no es necesario tener las dos, tener en cuenta que debe estar cargada más del 50%.
- Se recomienda utilizar cables de conexión para la alimentacion del sim800l, con calibre más gruesos que los dupont, para garantizar la circulación de corriente de manera fluida.
- No se recomienda hacer las conexiones sobre protoboard, porque se crean falsos contactos que impide la circulación fluida de la corriente, en lo posible realice las conexiones con cables de un calibre grueso, especialmente los de la alimentación (Vcc y GND), si es posible, soldar los cables.
- Si el sim800l no logra conectarse a la red con determinada sim card del operador móvil que esta utilizando, quítela y realice la prueba con la de otro operador disponible en su país o ciudad.
- Fijar la frecuencia del módulo en 115200 bps "Serial.begin(115200)" y "Serial1.begin(115200)", por lo que la mayoría de los módulos vienen configurado con esa frecuencia, si no le funciona con dicha frecuencia, ir modificando hasta encontrar la correcta.
- En el circuito, no olvidar la conexión en común de las tierras "GND" del Arduino Mega 2560, el modulo tp4056 y el modulo sim800l.
- Cuando se disponga a subir el código a la tarjeta de Arduino Mega, tener presente que la conexión con los pines de trasmisión TX1 y RX1, deben estar desconectado para que no se tenga error por conexión, luego conectar nuevamente para las pruebas.
Códigos Fuentes Utilizados
En el siguiente enlace, puedes encontrar el repositorio con los códigos fuentes que se utilizaron en las pruebas.
0 Comentarios