Como projetar um gerenciador WiFi ESP32 usando MicroPython

Cómo diseñar un administrador WiFi ESP32 usando MicroPython

Casi todos los dispositivos que utilizamos hoy en día (desde teléfonos inteligentes, tabletas, dispositivos portátiles e incluso muchos de nuestros electrodomésticos) se conectan a Internet a través de una red WiFi en el hogar (u oficina). El acceso a Internet para dispositivos inteligentes normalmente se gestiona a través de una interfaz web o una aplicación móvil.

Asimismo, cuando estemos fuera de casa accederemos al WiFi de nuestros dispositivos móviles conectándonos a una red específica e introduciendo la contraseña. Sin embargo, gestionar el acceso a Internet puede resultar más complicado con los dispositivos de Internet de las cosas (IoT) de fabricación propia. Esto se debe a que estas credenciales suelen estar codificadas en dispositivos IoT.

Pero ¿qué pasaría si un puerto MicroPython tan simple como el ESP32 pudiera servir como administrador WiFi universal? Esto permitiría que todos los dispositivos conectados a IoT (incluidos nuestros teléfonos inteligentes, computadoras portátiles y dispositivos portátiles) se conecten a redes WiFi aleatorias, sin ingresar contraseñas cada vez.

Un administrador de WiFi configurado en el ESP32 buscará redes disponibles y almacenará credenciales para uso actual y futuro, ahorrando tiempo y energía.

Componentes necesarios

  • Placa ESP32 o ESP8266 x1

Requisitos previos

Debe haber cargado el firmware MicroPython para ESP32/ESP8266 e instalado uPyCraft IDE o Thonny IDE en su computadora. Haga clic aquí para aprender cómo instalar uPyCraft IDE y cargar el firmware MicroPython para ESP32/ESP8266.

Conexiones de circuito

No se requieren conexiones. Sólo necesita instalar y configurar el ESP32/ESP8266 para que funcione como administrador de WiFi.

La biblioteca MicroPython

Para este proyecto, utilizaremos la biblioteca de administrador de WiFi creada por Tayfunulu. Está disponible en Github a través de este enlace. El código fuente de la biblioteca se encuentra a continuación.

Para cargar la biblioteca del administrador de WiFi a ESP32/ESP8266, conecte la placa ESP a su computadora mediante un cable Micro-USB. Abra uPyCraft IDE y navegue hasta Archivo->Nuevo. Copie el código fuente de la biblioteca del administrador de WiFi en el nuevo archivo y haga clic en el botón Guardar.

Nombra el nuevo archivo 'WiFiManager.py' y guárdalo haciendo clic en Aceptar.

Haga clic en el botón 'Descargar y ejecutar' para cargar la biblioteca en la placa ESP.

El script MicroPython
La biblioteca del administrador de WiFi debe implementarse en el código de la aplicación principal en el firmware MicroPython. Para hacer esto, cree un nuevo archivo navegando a Archivo->Nuevo y guárdelo como 'main.py'.

Copie el siguiente código en main.py. Luego cárguelo en el tablero ESP haciendo clic en el botón 'Descargar y ejecutar'.

H cómo funciona el administrador de WiFi
Cuando la placa ESP se inicializa por primera vez después de cargar el código, se define como un punto de acceso WiFi. Este punto se ve como el 'WiFiManager', que se puede conectar a una computadora o teléfono celular.

La contraseña para conectarse a WiFiManager es 'tayfunulu'. La contraseña y el SSID de ESP WiFiManager se pueden cambiar modificando WiFiManager.py.

Después de conectarse a WiFiManager, abra su panel accediendo a la dirección IP 192.168.4.1. Las conexiones WiFi disponibles se mostrarán en la página web. Seleccione una conexión WiFi e ingrese su clave de red para configurar la conexión a la tarjeta ESP. Una vez que se ingresan las credenciales correctas, cualquier dispositivo puede acceder a la conexión WiFi conectándose a WiFiManager.

Código
El código principal de la aplicación importa la biblioteca WiFiManager. Las conexiones WiFi disponibles se verifican llamando al método WiFiManager.get_connection. Si no hay una red WiFi disponible, se imprimirá el mensaje "No se puede inicializar la conexión de red" en la consola. De lo contrario, se podrá acceder a las conexiones WiFi en 192.168.4.1.

Cuando la tarjeta ESP se inicia por primera vez como punto de acceso, deja un zócalo abierto, lo que puede bloquear la tarjeta ESP. Para evitar esto, la conexión del socket es administrada por un controlador de excepciones 'try-except'.

Luego, el código principal de la aplicación aloja la página web para conectarse a una conexión WiFi disponible, así como una página web que controla el LED en la placa ESP.

Probando el administrador de WiFi
Después de cargar el código de la aplicación principal, reinicie la placa ESP presionando el botón RESET. Se activará el ESP WiFiManager y se imprimirá un mensaje en la consola MicroPython.

Luego abra la configuración de WiFi en su computadora o teléfono inteligente y conéctese a la red WiFiManager.

Después de conectarse a la red WiFiManager, abra la URL 192.168.4.1 en un navegador web. Verás las conexiones de red WiFi disponibles. Seleccione uno e ingrese su contraseña. Luego guarde las credenciales en WiFiManager haciendo clic en el botón enviar.

La tarjeta ESP ahora está conectada a la red WiFi. Cualquier otro dispositivo que tenga también puede acceder directamente a todas las redes WiFi disponibles conectándose a WiFiManager sin ingresar una contraseña ni codificar credenciales en el código de la aplicación.

Conclusión
El administrador de WiFi integrado en este proyecto ahorra tiempo al hacer que el WiFi sea fácilmente accesible para todos sus dispositivos inteligentes, incluidos portátiles y teléfonos inteligentes. De esta manera, ya no necesitarás ingresar un usuario y contraseña para cada uno; Tampoco necesitarás codificar las credenciales WiFi en cada dispositivo. Un administrador de WiFi configurado en el ESP32 busca redes disponibles y almacena credenciales para uso actual y futuro.

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.