Cómo hacer un servidor asíncrono en ESP8266 Deja un comentario

Continuamos con las entradas del ESP8266 viendo cómo configurar un servidor asíncrono con la ayuda de la librería AsyncServer.

Llevamos varias entradas viendo cómo montar un servidor con el ESP8266. Progresivamente hemos llegado en la última entrada a una solución funcional, sirviendo ficheros estáticos comprimidos en Gzip desde la memoria SPIFFS.

¿Es posible mejorar esta solución? Sí, gracias a la genial librería ESPAsyncWebServer disponible en https://github.com/me-no-dev/ESPAsyncWebServer. Gracias a esta librería Open Source podemos crear un servidor asíncrono, es decir, que es capaz de atender a varios clientes de forma simultánea.

Además, la librería ESPAsyncWebServer dispone de ventajas adicionales como su velocidad, la sencillez de uso. Por supuesto, incorpora de serie la gestión de ficheros comprimidos en Gzip. Es decir, una maravilla de librería que dispone de muchas mejoras podéis consultar en la documentación de la página del proyecto.

Por tanto, vamos a modificar nuestro código de ejemplo de servidor para funcionar con ESPAsyncWebServer. En primer lugar, el Skecth principal queda de la siguiente forma.

Donde veremos que el cambio más notorio es que no tenemos nada en la función ‘loop’. No es necesario ya que, cómo hemos dicho, el servidor ESPAsyncWebServer es asíncrono (¡oh yeah!).

Por su parte, el fichero Server.hpp también se ha modificado, para adecuarse a la nueva librería.

No obstante, como vemos su uso es muy similar. Establecemos un ruteo para contenido estático en el SPIFFS, un endpoint ante llamadas GET a la URL /hello y, finalmente, un callback para ‘Not found’.

¡Así de fácil! Subimos los mismos ficheros de la página web «Hola mundo» que tenemos en la carpeta ‘data’ de las entradas anteriores (comprimidos en Gzip, o no, a vuestro gusto) y accedemos para comprobar, una vez más, que todo sigue funcionando correctamente.

La librería ESPAsyncWebServer es una gran opción para incluir en nuestros proyectos. De hecho, lo usaremos con frecuencia a partir de ahora en nuestros ejemplos como la solución preferida para servir contenido.

En la próxima entrada haremos un breve parón en el uso de ESP8266 como servidor, para ver la actualización de contenidos por el aire (OTA). Después empezaremoscon los ejemplos donde intercambiaremos información entre el ESP8266 y el cliente a través de distintos mecanismos (formularios, Ajax y websocket). ¡Hasta pronto!

Descarga el código

Todo el código de esta entrada está disponible para su descarga en GitHub.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

0
    0
    Tu Carrito
    Tu carrito esta vacíoVolver a la tienda
    Enviar Whatsapp
    Hola 👋
    ¿En qué podemos ayudarte?