Servidor web con ESP8266

En un post que escribí hace un tiempo te mostré cómo hacer un servidor web con la tarjeta NodeMCU ESP8266 pero en ese caso tenías que conectarte a la red WiFi que la tarjeta crea, es decir, la misma creaba una red WiFi y actuaba como Access Point.

Ahora te mostraré cómo hacer un servidor web pero que a su vez se conectará a tu red local. De este modo te podrás conectar a la tarjeta dentro de tu red local, ya que la misma se conectará como cualquier otro dispositivo, pero va a tener un servidor web ejecutándose.

Setup

En el setup vamos a conectarnos a la red WiFi y configurar las rutas del servidor web. Cada ruta del servidor estará ligada a una función. Podemos configurar varias rutas.

Para el caso del WiFi puedes invocar al método addAP las veces que quieras, agregando alternativas de redes WiFi. Esto es para que la tarjeta se conecte a la red más cercana o de mayor calidad.

En este caso la ruta raíz va a invocar a la función rutaRaiz. También estamos manejando cualquier ruta encontrada con el método onNotFound.

Por cierto, podrías configurar más rutas. Por ejemplo, la siguiente ruta:

servidor.on("/apagar", rutaApagar);

Podría ser una ruta que apaga determinado LED o algo parecido.

Rutas web

Las funciones de rutas quedan así:

Puedes colocar todo el código HTML en una sola línea o en varias líneas. Al final tienes que responder con una cadena.

Fíjate que la sintaxis de send es:

servidor.send(código de respuesta, tipo de contenido, contenido);

En el caso de la ruta no encontrada estamos enviando un código HTTP 404, pero para el otro caso enviamos un código 200 de OK.

Loop

Lo único que hacemos en el loop es atender las solicitudes de los clientes en caso de que existan. Para ello simplemente invocamos a handleClient.

Poniendo todo junto

Es momento de ver el código fuente y probar si funciona. El código completo queda así:

Yo lo he cargado a mi tarjeta y al visitar la IP de la misma, me muestra la página web:

Servidor web embebido en NodeMCU ESP8266 programado en C++

Obviamente podrías agregar estilos, cargar frameworks, agregar scripts, etcétera; pues al final tenemos un servidor web que va a procesar los datos antes de enviárselos al cliente. Solo recuerda no abusar, pues no tenemos memoria ni almacenamiento ilimitado.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario