Simple Portal Web para ESP8266

Este proyecto pretende ser el punto de partida para construir dispositivos IoT de bajo costo, basados en el microcontrolador ESP8266. Permite lanzar un portal web (Captive Portal) para configurar las credenciales de una red WiFi fácilmente, es decir, orientado a un supuesto usuario final de nuestro proyecto.

El sistema genera una red WiFi local, mediante el uso del modo Soft-AP del ESP8266, para luego servir un pequeño portal web en la IP 192.168.4.1.

Vista del Captive Portal desde Mozilla Firefox sobre Android.

El funcionamiento del sistema es muy simple:

  1. Inicia el sistema con el encendido de la placa.
  2. wifiConnect() intenta conectar durante 5 segundos utilizando las credenciales almacenadas en la memoria EEPROM interna, para luego ejecutar funciones auxiliares (como manejar un LED Status). En caso contrario, es decir si falla la conexión, invoca a wifiAP().
  3. wifiAP() genera una red WiFi para que el cliente se pueda conectar. Acto seguido deberá ingresar mediante el navegador a la dirección IP del Captive Portal, completar el formulario con los datos de la red a la que desea conectar el dispositivo y presionar el botón Guardar. El sistema se reiniciará y volverá a ejecutar el paso (1).
  4. Es posible forzar el Captive Portal en caso de querer cambiar las credenciales almacenadas, para esto simplemente se pulsa el botón RESET.

Ejemplo de uso

El siguiente código Arduino permite comenzar un proyecto, centrándose únicamente en la lógica que deberá llevar adelante el dispositivo, sin preocuparse por la gestión de la conexión.

#include "espSetup.h"

void setup() {
  espSetup();
}

void loop() {

  espLoop();

  /*
      Acá tu código...
      Considerar no utizar retardos bloqueantes (delay).
  */
}

El proyecto completo está alojado en GitHub, y aún hay mucho trabajo por delante (por ejemplo, agregar soporte para ESP32), así que las colaboraciones son bienvenidas.

Actualmente, el proyecto ofrece soporte para SoC ESP32.