Http request con PIC

Hola a todos.

Actualmente estoy trabajando en un proyecto donde un microcontrolador PIC 18f4550 porgramado en MIKROC realiza algunas mediciones de ciertas variables y las almacena de manera local. Adicionalmente, se requiere hacer el envío a un servidor web de las variables medidas a través de un http request (GET o POST). La verdad no tengo mucha información respecto si es posible hacer este tipo de envíos de información a través de un microcontrolador o si es necesario replantear todo el proyecto y pasarme a algún dispositivo más potente. Antes de descartar el uso del microcontrolador, me gustaría consultar con la comunidad la viabilidad de hacer esto y si alguien conoce algo de información al respecto.

En MikroC he encontrado la librería Network Ethernet Library [LibStock - Network Ethernet Library]. Sin embargo, no encontre la información suficiente para saber si es posible hacer los http request.






Muchas gracias por su ayuda.
 
Aquí debes resolver un "pequeño" problema: ¿cómo conectas el microcontrolador a la red local?

Este micro dispone de soporte para USB y puertos serie SPI e I²C. Entonces, debes pensar en un intermediario que sea capaz de conectar el micro a la red local por alguno de estos periféricos. Y... ¿cómo es la red local? ¿por cable ethernet o inalámbrica? Eso te dará la pista del hardware adicional que necesitas ponerle al micro.

Hay una excepción: si conectas el micro a un equipo (ordenador) por el conector de USB, el ordenador podría crear una pasarela entre su sistema de red y el puerto USB, de tal manera que el microcontrolador se haría visible a la red local.

Una vez conseguido lo anterior, necesitas una pila TCP/IP dentro del microcontrolador, y sobre él, una biblioteca de funciones par hablar con el protocolo HTTP. Esta última parte debería ser muy sencilla, ya que solo necesitas emitir cadenas del tipo

GET /medicion/sensor1/117

y el servidor remoto sabe en ese momento el valor del sensor1. Bueno... o quizás no. Quizás también debas programar la parte del servidor para recoger esas peticiones.
 
La biblioteca de acceso a la red es el primer paso. Tambien debes tener hardware ethernet para conectarte a la red e implementar el http, que si solo vas a enviar datos es extremadamente simple.
Busca y lee la RFC1945 para que veas de que se trata, o busca alguna biblioteca que implemente la parte cliente del protocolo http.
 
Porqué no usas una placa con el controlador ESP8266, aquí un enlace a ebay! este controlador ya se consigue desde 1,99 Euros y te ofrece desde su funcionalidad el acceso al internet! Yo "juego" con el controlador "ESP32" que ya contiene WiFi y Bluetooth! Por 1,99 Euros ni ncecesidad de meterse a redescubrir como acceder el Internet, verdad?
Aquí un enlace al ESP32 en ebay, tambien ya empezando por 1,99 Euros!
 
Efectivamente estoy implementando Hadware adicional. En este sentido tengo en la mira el ENC28J60 y el W5100 el cual ya cuenta con una pila TCP/IP implementada.
En cuanto a implementar una comunicación USB con un computador me parece una muy buena solución. Sin embargo, la tarjeta donde se leen los datos se va a ubicar dentro de una subestación eléctrica y colocar un computador será un poco complicado. Únicamente cuento con un puerto Ethernet.
La solución implementado el modulo ESP32 me encuentro analizándola. Haré una visita este fin de semana a la subestación para ver si tengo alcance de cobertura de la red WIFI.

Muchas gracias por todos su aportes. Han sido muy valiosos en el desarrollo de este proyecto.
 
Atrás
Arriba