Servidor Web en Esp8266 con MicroPython




Presentación


El presente proyecto surge a partir de la necesidad de buscar un modo de programación alternativa al propuesto por el IDE de Arduino que permitiera superar la molesta necesidad de que ante la menor modificación hubiera que subir todo el proyecto completo a la placa para poder probar su funcionamiento.

De la lectura de diverso material surgió la idea de trabajar con MicroPython que es el desarrollo de un una implementación del lenguaje de programación Python orientada a dispositivos con muy bajos recursos.

MicroPython, no solo ofrece la posibilidad de fraccionar el proyecto en diversos archivos lo que permite que al realizarse alguna modificación sólo deban ser subidos a la placa los archivos afectados, sino que ademas permite la edición directa de los archivos desde la placa para su modificación.

Habiendo considerado que MicroPython era el lenguaje apropiado para la programación de las placas Esp8266 y Esp32 fue necesario hallar un IDE de fácil manejo y que permitiera aprovechar las ventajas el MicroPython por lo que descartado el Visual Studio Code debido a la complejidad del mismo se optó por Thonny que es mas simple.

Thonny es un IDE de Python sencillo en su funcionamiento que permite que la visualización de programas sea una parte natural del flujo de trabajo, entre sus características destacadas se encuentran diferentes formas de recorrer el código, la evaluación paso a paso de la expresión, la visualización intuitiva de la pila de llamadas y ademas un depurador simple con el que se puede ejecutar los programas paso a paso, sin necesidad de puntos de interrupción. Aun estando los archivos guardados en la placa.

A partir de lo expresado inicie el primer proyecto que aca pongo a consideración donde se montó en una placa Esp8266 un pequeño servidor web consistente en una pagina principal y dos secundarias, en una de las cuales se controla el encendido y apagado de un led.



Materiales


Placa Esp8266 Wifi

Modulo Adaptador Usb Esp-01s Programador Esp8266 Wifi


Si bien por ser mas cómodo y práctico se ha usado el adaptador el mismo puede ser remplazado por una placa FTDI y el cableado pertinente.

Led


Circuito



El circuito es solamente el de funcionamiento para encendido y apagado del Led el para la conexion de la placa Esp8266 a la computadora dependera del metodo que su utilice (módulo adaptador/módulo FTDI).



Montaje del proyecto en la placa Esp8266


Para utilizar la placa Esp8266 con MicroPython es necesario flashear primero la misma con el firmware correspondiente. En el caso de la utilizada en este modelo ESP8266 with 1MiB flash se utilizó el provisto por la página de MicroPython

Una vez instalado el firmware en la placa utilizando la utilidad que viene provista por el IDE Thonny, o por aquella que ustedes utilicen además del firmware quedara grabado en la placa un archivo boot.py que debe ser reemplazo por el que se incluye en el código desarrollado a continuación.


Código


El código se ha escrito en tres archivos boot.py, main.py y pagina.py.

El archivo boot.py además de contener los datos necesarios para el arranque de la placa, contiene los datos de la red wifi a la que se va a conectar los cuales deben ser agregados en el lugar indicado, en este archivo también deben inicializarse los pines que se vayan a utilizar en este caso el pin 2.

El archivo main.py es el núcleo del servidor, el nombre elegido para el mismo es a efectos que el programa se inicie automaticamente. Este archivo contiene las llamadas y respuestas a las páginas web y las funciones correspondientes al manejo de los pines de la placa.

El archivo pagina.py esta destinado a contener las distintas páginas html que seran servidas por el servidor conforme las llamadas que se realicen a través de la función 'pagina_web(n_pag):' que se encuentra en el archivo main.py.


boot.py



main.py



pagina.py



Quedo disposición de quien quiera hacerme consultas o sugerencias mi correo electronico es carlosvaccaro1960@gmail.com