Tabla de contenido:

ESP8266 y ESP32 con WiFiManager: 10 pasos
ESP8266 y ESP32 con WiFiManager: 10 pasos

Video: ESP8266 y ESP32 con WiFiManager: 10 pasos

Video: ESP8266 y ESP32 con WiFiManager: 10 pasos
Video: ✅ WifiManager para GESTIONAR redes WIFI dinamicamente con ESP | curso IOT con ESP32 y ARDUINO (No7) 2024, Noviembre
Anonim
Image
Image
PINOUT
PINOUT

¿Está familiarizado con WiFiManager? Es una biblioteca que sirve como administrador de conexiones inalámbricas y, con ella, tenemos una manera más fácil de configurar tanto un punto de acceso como una estación. He recibido varias sugerencias para discutir este tema; así que hoy les presentaré esta biblioteca y sus funciones. También haré una demostración de su uso tanto con ESP32 como con ESP8266.

Paso 1: PINOUT

PINOUT
PINOUT

Aquí les muestro el PINOUT de los dos dispositivos que usaremos:

  • NodeMCU ESP-12E
  • NodeMCU ESP-WROOM-32

Paso 2: WiFiManager

WiFiManager no es más que una biblioteca escrita sobre WiFi.h para una fácil gestión de las conexiones inalámbricas. Recuerda que con ella tenemos una mayor facilidad para configurar tanto un Punto de Acceso como una Estación. Para el modo Estación, lo configuramos a través de un portal en el navegador.

Algunas caracteristicas:

• Depende de la conectividad automática

• Inicialización del portal de configuración no automática

• Funciona de forma selectiva en modo dual

Paso 3: cómo funciona

Cómo funciona
Cómo funciona
Cómo funciona
Cómo funciona

El ESP iniciará un portal de configuración WiFi cuando esté conectado y guardará los datos de configuración en la memoria no volátil. Posteriormente, el portal de configuración solo se iniciará nuevamente si se presiona un botón en el módulo ESP.

Aquí puede verificar el flujo de configuración y seguir este paso a paso:

1. Usando cualquier dispositivo habilitado para WiFi con un navegador, conéctese al punto de acceso recién creado e ingrese la dirección 192.168.4.1.

2. En la pantalla tendrá dos opciones para conectarse a una red existente:

• Configurar WiFi

• Configurar WiFi (sin escaneo)

3. Elija una de las redes e ingrese la contraseña (si es necesario). Luego guarde y espere a que el ESP se reinicie.

4. Al final del arranque, ESP intenta conectarse a la red guardada. Si no puede hacer esto, habilitará un punto de acceso.

Paso 4: Bibliotecas

Bibliotecas
Bibliotecas

Agregue la biblioteca "WifiManager-ESP32".

Vaya a https://github.com/zhouhan0126/WIFIMANAGER-ESP32 y descargue la biblioteca.

Descomprima el archivo y péguelo en la carpeta de bibliotecas del IDE de Arduino.

C: / Archivos de programa (x86) / Arduino / bibliotecas

Agregue la biblioteca "DNSServer-ESP32".

Vaya al enlace https://github.com/zhouhan0126/DNSServer---esp32 y descargue la biblioteca.

Descomprima el archivo y péguelo en la carpeta de bibliotecas del IDE de Arduino.

C: / Archivos de programa (x86) / Arduino / bibliotecas

Agregue la biblioteca "WebServer-ESP32".

Vaya al enlace https://github.com/zhouhan0126/WebServer-esp32 y descargue la biblioteca.

Descomprima el archivo y péguelo en la carpeta de bibliotecas del IDE de Arduino.

C: / Archivos de programa (x86) / Arduino / bibliotecas

Nota:

La biblioteca WiFiManager-ESP32 ya tiene la configuración que funciona con ESP8266, por lo que solo usaremos esto, en lugar de dos bibliotecas WiFiManager (una para cada tipo de chip).

Como veremos más adelante, ESP8266WiFi y ESP8266WebServer son bibliotecas que no necesitamos descargar, porque ya vienen cuando instalamos ESP8266 en el IDE de Arduino.

Paso 5: funciones

Funciones
Funciones
Funciones
Funciones
Funciones
Funciones

Estas son algunas de las funciones que nos ofrece WiFiManager.

1. autoConnect

La función autoConnect es responsable de crear un punto de acceso. Podemos utilizarlo de tres formas.

• autoConnect ("nombre de red", "contraseña"); - crea una red con el nombre y la contraseña definidos.

• autoConnect ("nombre de la red"); - crea una red abierta con el nombre definido.

• autoconectar (); - crea una red abierta y automáticamente nombrada con el nombre 'ESP' + chipID.

2. startConfigPortal

La función startConfigPortal es responsable de crear un punto de acceso sin intentar conectarse a una red previamente guardada.

• startConfigPortal ("nombre de red", "contraseña"); - crea una red con el nombre y la contraseña definidos.

• startConfigPortal (); - crea una red abierta y automáticamente nombrada con el nombre 'ESP' + chipID.

3. getConfigPortalSSID

Devuelve el SSID del portal (Access Point)

4. getSSID

Esto devuelve el SSID de la red a la que está conectado.

5. getPassword

Esto devuelve la contraseña de la red a la que está conectado.

6. setDebugOutput

La función setDebugOutput es responsable de imprimir mensajes de depuración en el monitor serial. Estos mensajes ya están definidos en la biblioteca. A medida que avanza por las funciones, se imprimirán los datos.

De forma predeterminada, esta función está establecida en VERDADERO. Si desea deshabilitar los mensajes, simplemente configure la función en FALSO.

7. setMinimumSignalQuality

La función setMinimumSignalQuality es responsable de filtrar redes en función de la calidad de la señal. De forma predeterminada, WiFiManager no mostrará redes de inicio de sesión por debajo del 8%.

8. setRemoveDuplicateAPs

La función setRemoveDuplicateAPs es responsable de eliminar los duplicados de la red.

De forma predeterminada, está establecido en VERDADERO.

9. setAPStaticIPConfig

La función setAPStaticIPConfig es responsable de establecer la configuración de la dirección estática en el modo de punto de acceso.

(IP, GATEWAY, SUBRED)

10. setSTAStaticIPConfig

La función setSTAStaticIPConfig es responsable de establecer la configuración de la dirección estática en el modo de estación.

(IP, GATEWAY, SUBRED)

Debe agregar el comando antes de autoConnect !!!

11. setAPCallback

La función setAPCallback es responsable de informarle que se ha iniciado el modo AP.

El parámetro es una función que debe crearse para indicarlo como devolución de llamada;

12. setSaveConfigCallback

La función setSaveConfigCallback se encarga de informarle que se ha guardado una nueva configuración y que la conexión se ha completado con éxito.

El parámetro es una función para crear y lo indica como un allback.

Debe agregar el comando antes de autoConnect !!!

Paso 6: Montaje

Montaje
Montaje

Ejemplo

En nuestro ejemplo, crearemos un punto de acceso con ESP (el código servirá tanto para ESP8266 como para ESP32). Luego de la creación del AP, accederemos al portal a través de la IP 192.168.4.1 (que es la predeterminada para acceder a él). Así que obtengamos las redes disponibles, seleccione una y guarde. A partir de ahí, el ESP se reiniciará e intentará conectarse a él, y luego funcionará como una estación y ya no como un punto de acceso.

Después de ingresar al modo de estación, puede hacer que el ESP vuelva al modo de punto de acceso solo a través del botón.

Paso 7: Código

Bibliotecas

Primero definamos las bibliotecas que usaremos.

Tenga en cuenta que tenemos los comandos #if definido, #else y #endif. Están condicionados a incluir las bibliotecas necesarias relacionadas con el chip. Esta parte es extremadamente importante para ejecutar el mismo código en ESP8266 y ESP32.

#if definido (ESP8266)

#include // ESP8266 Core WiFi Library #else #include // ESP32 Core WiFi Library #endif

#if definido (ESP8266)

#include // Servidor web local utilizado para servir el portal de configuración

#demás

#include // Servidor DNS local utilizado para redirigir todas las solicitudes al portal de configuración (https://github.com/zhouhan0126/DNSServer---esp32)

#terminara si

#include // Servidor web local utilizado para servir el portal de configuración (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINAL)

Paso 8: configuración

En la instalación, estamos configurando nuestro WiFiManager de la manera más sencilla. Simplemente definamos las devoluciones de llamada y creemos la red.

const int PIN_AP = 2;

configuración vacía () {Serial.begin (9600); pinMode (PIN_AP, ENTRADA); // declaración del objeto wifiManager WiFiManager wifiManager;

// utilizando esse comando, as configurações são apagadas da memória // caso tiver salvo alguma rede para conectar automáticamente, ela é apagada. // wifiManager.resetSettings (); // devolución de llamada para entrar en modo de configuración AP wifiManager.setAPCallback (configModeCallback); // callback para quando se conecta em uma rede, ou seja, quando passa a trabalhar em modo estação wifiManager.setSaveConfigCallback (saveConfigCallback); // cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect ("ESP_AP", "12345678"); }

Paso 9: bucle

En el bucle, leeremos el pin del botón para ver si se ha presionado, y luego llamaremos al método para volver a habilitar el modo AP.

bucle vacío () {

WiFiManager wifiManager; // se o botão foi pressionado if (digitalRead (PIN_AP) == HIGH) {Serial.println ("resetar"); // tenta abrir el portal if (! wifiManager.startConfigPortal ("ESP_AP", "12345678")) {Serial.println ("Falha ao conectar"); retraso (2000); ESP.restart (); retraso (1000); } Serial.println ("Conectou ESP_AP !!!"); }

Cuando presione el botón, el ESP saldrá del modo de estación y abrirá su punto de acceso y portal.

Recuerde que no usamos el comando resetSettings (). La configuración aún se guarda para la próxima vez que se inicie el ESP.

Paso 10: devoluciones de llamada

Las funciones callback, que están asociadas a eventos, sirven para que tengas el momento exacto de una operación, en nuestro caso, entrando en modo AP y modo Station. Luego podemos implementar alguna rutina deseada, como recuperar el SSID de la red conectada, por ejemplo.

// devolución de llamada que indica que o ESP entrou no modo AP

void configModeCallback (WiFiManager * myWiFiManager) {// Serial.println ("Ingresó al modo de configuración"); Serial.println ("Entrou no modo de configuração"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP Serial.println (myWiFiManager-> getConfigPortalSSID ()); // imprime o SSID criado da rede

}

// callback que indica que salvamos uma nova rede para se conectar (modo estação)

void saveConfigCallback () {// Serial.println ("Debería guardar la configuración"); Serial.println ("Configuração salva"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP}

Recomendado: