Introduccion libreria WifiManager

El principal inconveniente es configurar las credenciales de red en un esp8266   sin requerir modificar y descargar nuevamente el firmware, he realizado pruebas con varios métodos para almacenar dinamicamente el SSID y el PASSWORD  de una red.

En el caso de los esp8266 programados en Arduino IDE desde hace un tiempo he visto una propuesta llamada WIfimanager  presentada por Tzapu, la cual permite una conexión agil y rapida, las primeras pruebas estan registradas desde 2015.

WifiManager

En esta ocasión realizaremos una breve introducción a la librería Wifimanager, he realizado prueba a 2 versiones de similares.

Version 1: WifiManager creada por tzapu – creador

Version 2: WifiManager por Ken Taylor version modificada y basada en WifiManager creada por tzapu.

Nota: funcionan perfectamente, obviamente entre las 2 librerías existen variaciones en implementaciones de código y eso genera incompatibilidades o errores en algunas funciones entre la versión 1 y 2.





 

 

 

Funcionalidades

A continuación mencionare algunas de las funcionalidades de las librerías WifiManager, en caso de utilizarlas la información completa y detallada de cada librería esta disponible en github, en este caso he utilizado la libreria Version 2: WifiManager por Ken Taylor.

 

Funcionalidad principal configuración de credenciales de RED

-Timeout de modo AP “180 s”, si no se configura wifi el modulo se reinicia automáticamente después el tiempo definido en segundos ej: 180.

 

-Función texto html personalizado, permite agregar títulos en formulario HTML.

-Función formulario para ingresar string “parámetros”, crear campos de ingreso de parámetros, para capturar parámetros y almacenar datos se requiere manejo de funciones SPIFFS y Json.

-Función checkbox booleano para seleccionar, habilitar o  des-habilitar parámetros, para capturar parámetros y almacenar datos se requiere manejo de funciones SPIFFS y Json.

 

-Funcion agregar estilos ccs en html, modificar estilos de formulario HTML via ccs, en este caso invertir colores.





 

 

 

Materiales

1 Modulo ESP8266 12E Node MCU o ESP8266 12F

1 Pulsador NA “normalmente abierto”

2 Resistencias 220 Ohm

1 Resistencia 10K

2 Diodos led, rojo y verde.

cables de conexión

Pruebas Realizadas

Se ha descargado un ejemplo desde Github y se ha recortado para hacer una versión liviana y sencilla, sin las funcionalidades un poco complejas que veremos mas adelante, esta versión realizara lo básico configuración de credenciales de RED.

Montaje

Hemos utilizado un ESP8266 12E, le hemos adicionado un pulsador para configurar el Wifi y 2 diodos led como indicadores.

Conexiones

  •  GPIO 5 ( Pin D1 ) – Pulsador  Config Wifi + Resistencia 10K
  • GPIO 14 ( Pin D5 ) – led rojo + Resistencia 220 Ohm
  • GPIO 4 ( Pin D2) – led verde + Resistencia 220 Ohm
  1. El pulsador tecnicamente detiene la ejecución del void loop, reinicia parámetros de red y habilita el modo AP , esta funcionalidad depende del código o bucle ejecutado.
  2. diodo led ROJO, indica estado de configuración wifi,
    1. led=”On” modo configuración de wifi, en proceso.
    2. led=”Off” configuración de red Exitosa.
  3. diodo led VERDE , en esta prueba no lo utilizaremos, pero su función es indicar el estado de conexión en modo cliente, ejemplo: esp8266 enviando datos a una plataforma, emoncms,  blink, thinger.io, thinkspeak, Node-RED etc.
    1. led=”On” envio y recepción de datos Ok.
    2. led=”Off” envio y/o conexión con servidor fallido.

 

Descripción de Secuencia

Explicacion basica:

  1. Pulsar Boton “config wifi”.
  2. esp8266 reinicia parámetros de Red e inicia modo AP “Access Point”.
  3. Se crear un nueva RED Wifi desde el esp8266.
  4. Conectarse a la red ESPXXXX.
  5. Desde navegador ingresar a 192.168.4.1.
  6. Desde formulario realizar configuración de SSID y PASS.
  7. Reset esp8266, desaparece red ESPXXXX.
  8. esp8266 modo STA conectara y ejecutara codigo void loop normalmente.

Nota: si se retira el pulsador, el esp8266 estara siempre en modo AP “configuracion Wifi”





 

 

 

 Introduction library WifiManager explained – explicado

Se ha realizado este vídeo para probar algunas de las funcionalidades mencionadas arriba.

Depuración Serial

ESP8266  en modo Access Point “ESPTest” para configuracion de parametros Red.

ESP8266  en modo Estación conectado a RED “1503523” ejecutando “void loop”

 Codigo Arduino IDE

Nota: En este caso el código es una versión recortada,permitiendo lo básico configuración y conexión , enlace de descarga al final del post y requieren las siguientes librerías:

  • FS.h
  • ESP8266WiFi.h
  • ArduinoJson.h
  • ESP8266WebServer.h
  • DNSServer.h
  • WiFiManager.h

 

 





 

 

 

Otras funcionalidades

Parametros de Red fijos – librerias Version 1

En el caso de las pruebas anteriores realizamos una configuración y conexión Wifi via DCHP asignado por nuestro router, pero existe un método de asignación de parámetros completos desde formulario:

  • Dirección IP fija
  • Mascara de subnet
  • Puerta de enlace.

Almacenamiento de parámetros y funcionalidades HTML –  librerias  Wifimanager Version 2

  • Ingreso de parámetros adicionales
  • Habilitación de checkbox

 

Lectura de parámetros via JSON desde navegador en modo configuración – Version 2.

 

  • lectura de  scaneo  de /scan





 

 

 

Conclusiones

Aunque solo hemos realizado algunas pruebas, Wifimanager es una buena solución rápida y fácil funciona correctamente.

Estamos analizando los métodos utilizados para agregar  y almacenar mas parámetros, segun los ejemplos se crea un archivo Json en el que se escriben los parámetros, este archivo “config.json”  se guarda en SPIFFS el sistema de archivos interno el ESP8266, y se escribe solo al configurar parámetros y se lee cada vez que se reinicia el modulo.

Probaremos mas adelante funcionalidades de configuración pretendemos integrar y  ambas librerías en una aplicación, probaremos cada una de las 2 versiones, cada versión tiene sus propias características.

En próximas aplicaciones empezaremos a implementar esta librería nuestras pruebas.

Agradecimiento a todos los desarrolladores  y colaboradores de estas librerias.

  • Si tienen algún aporte, sugerencia, o han realizado pruebas comenten…

Proximos tutoriales

integraremos :
esp8266 + WifiManager + Modbus TCP/IP
esp8266 + WifiManager + Modbus RTU
esp8266 + WifiManager + MQTT
esp8266 + WifiManager + CoAP

Descargas 

Referencias

 





 

 

 

Deja un comentario