Servidor Web con ESP8266

Ya sabemos como usar un cliente WiFi para conectarnos a Internet y poder recoger datos o ejecutar acciones sobre servidores con el ESP8266. Veamos ahora cómo configurar el ESP8266 como un servidor web y poder manejarlo remotamente.

Para ello veamos el ejemplo WiFiWebServer que podemos encontrar en Archivos – Ejemplos – ESP8266WiFi – WiFiWebServer.

Este ejemplo muestra  cómo hacer un servidor web en el ESP8266 y mostrar una web una vez el ESP8266 se ha conectado a una red WiFi de un punto de acceso.

La clase server crea servidores que proporcionan información a los clientes conectados:

Una vez conectado el ESP8266 a una wifi se inicia el servidor con server.begin(); y para saber la IP asignada uso la instrucción Serial.println(WiFi.localIP());

Dentro de loop, para saber cuando un cliente se conecta al servidor iniciado uso la instrucción WiFiClient client = server.available(); https://www.arduino.cc/en/Reference/WiFiServerAvailable y en la variable client corresponde al cliente conectado a nuestro servidor.

Una vez se ha conectado un cliente uso la instrucción String req = client.readStringUntil(‘\r’); donde guardo en req lo que manda el cliente que en este caso es el navegador que se ha conectado a nuestro ESP8266.

En función de la petición hecha, el ESP8266 enciende o apaga el led colocado en el pin 2.

Una vez ejecutada la acción solicitada manda la respuesta con una página web simple:

HTTP/1.1 200 OK
Content-Type: text/html
<!DOCTYPE HTML>
<html>
GPIO is now on
</html>

Ejercicio Propuesto: modifica el ejemplo para que encienda y apague el led integrado en la placa que es LED_BUILTIN y si sabes un poco de html, hacerlo con un botón mostrado por el servidor.

Solución: https://github.com/jecrespo/aprendiendoarduino-curso-esp8266-youtube/blob/master/WiFiWebServerMejorado/WiFiWebServerMejorado.ino

En este caso la web mostrada por el ESP8266 es:

 <!DOCTYPE html>
<html>
<body>
<p>LED APAGADO</p>
<form action=”” method=”post”>
<input type=”submit” value=”Enciende Led” />
</form>
</body>
</html>

Cuando se solicita la web se hace mediante GET y cuando se pulsa el botón se hace mediante POST, de esta forma se diferencian las acciones. También se hace una función muestraWeb() encarga de mandar la web cuando se solicite.

Anuncios

Un pensamiento en “Servidor Web con ESP8266

  1. Pingback: Saber Más Iniciación Arduino 2019 | Aprendiendo Arduino

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.