Conéctese a la red WiFi más fuerte en ESP32 usando WiFiMulti Función

Conectese A La Red Wifi Mas Fuerte En Esp32 Usando Wifimulti Funcion



ESP32 es una placa de microcontrolador basada en IoT que tiene soporte WiFi y Bluetooth. ESP32 puede operar en tres modos WiFi diferentes (Estación, Acceso o ambos). El uso de todos estos modos ESP32 puede mejorar su conectividad inalámbrica en muchos aspectos. Hoy discutiremos el soporte multi-WiFi en ESP32 para conectarse a la red más fuerte disponible.

ESP32 con WiFiMulti Función

ESP32 puede conectarse a múltiples redes si tenemos acceso a más de una red, solo necesitamos definir su SSID y contraseña dentro del código. Buscará la red disponible y se conectará a la red Wi-Fi más fuerte que definamos en el código.







Nota: Recuerde que se conectará a una red a la vez si se pierde la conexión a esa red, ESP32 se conectará a otras redes WiFi disponibles.



Podemos abrir el ejemplo WiFiMulti en Arduino IDE:



Ir : Archivo > Ejemplos > WiFi > WifiMulti





Cómo agregar múltiples redes WiFi en ESP32

Para agregar múltiples redes WiFi en la placa ESP32. Usaremos el WiFiMulti funcionar con añadirAP() . La función addAP() puede aceptar varios SSID y contraseñas como argumento. Para agregar múltiples redes, su SSID y contraseñas deben definirse por separado. La siguiente es la sintaxis para agregar más de una red usando WiFiMulti funcionar con añadirAP() :



wifiMulti. añadirAP ( 'SSID Red1' , 'Contraseña1' ) ;

wifiMulti. añadirAP ( 'SSID Red2' , 'Contraseña2' ) ;

wifiMulti. añadirAP ( 'SSID Red3' , 'Contraseña3' ) ;

Cómo conectarse a la red WiFi más fuerte en ESP32

Para conectar ESP32 con la red más fuerte disponible, combinaremos el escaneo WiFi ESP32 y el ejemplo múltiple WiFi. Escribiremos un código en Arduino IDE que hará los siguientes pasos:

  • Buscar las redes disponibles
  • Imprime su RSSI (Intensidad de la señal) en el monitor serie. Entonces, podemos verificar la red más fuerte disponible
  • Se conecta automáticamente a la red más potente
  • Si pierde la conexión, se conectará automáticamente a la siguiente red más fuerte disponible

Para probar el código, usaremos un teléfono inteligente punto de acceso y una red WiFi. Asigne siempre un nombre simple a la red del punto de acceso móvil para evitar cualquier error.

Ahora cargue el código dado en la placa ESP32 usando Arduino IDE.

Código

Abra Arduino IDE y cargue el código en ESP32. Recuerde seleccionar el puerto COM.

#include /*Biblioteca WIFI incluida*/

#include /*Biblioteca Multi WIFI incluida*/

WiFiMulti wifiMulti ;
/*Por tiempo de conexión AP. Aumente cuando ESP32 tome más tiempo para la conexión*/
constante uint32_t connectTimeoutMs = 10000 ;
vacío configuración ( ) {
De serie. empezar ( 115200 ) ;   /*Comienza la comunicación serial*/
demora ( 10 ) ;
Wifi. modo ( WIFI_STA ) ;     /*ESP32 WIFI inicializado como Estación*/
  /*Escriba todos los SSID conocidos y sus contraseñas*/
wifiMulti. añadirAP ( 'TU SSID' , 'CLAVE' ) ;   /*Red 1 que queremos conectar*/
wifiMulti. añadirAP ( 'teléfono' ) ;   /*Red 2 que queremos conectar*/
  // WiFi.scanNetworks dará redes totales
  En t norte = Wifi. escanear redes ( ) ;   /*Buscar red disponible*/
De serie. imprimir ( 'escaneo hecho' ) ;  
  si ( norte == 0 ) {
De serie. imprimir ( 'No hay redes disponibles' ) ;   /*Imprime si no se encuentra ninguna red*/
  }
  más {
De serie. impresión ( norte ) ;
De serie. imprimir ( 'Redes encontradas' ) ;   /*Imprime si se encuentra la red*/
    por ( En t i = 0 ; i < norte ; ++ i ) {
De serie. impresión ( i + 1 ) ;   /*Imprime el SSID y RSSI de la red disponible*/
De serie. impresión ( ': ' ) ;
De serie. impresión ( Wifi. SSID ( i ) ) ;
De serie. impresión ( ' (' ) ;
De serie. impresión ( Wifi. RSSI ( i ) ) ;
De serie. impresión ( ')' ) ;
De serie. imprimir ( ( Wifi. Tipo de cifrado ( i ) == WIFI_AUTH_OPEN ) ? ' ' : '*' ) ;
demora ( 10 ) ;
    }
  }
  /*Se conecta a la red definida disponible más potente con SSID y contraseña disponibles*/
De serie. imprimir ( 'Conectándose a Wi-Fi...' ) ;
  si ( wifiMulti. correr ( ) == WL_CONECTADO ) {
De serie. imprimir ( '' ) ;
De serie. imprimir ( 'Conectado a la red WIFI' ) ;
De serie. imprimir ( 'Dirección IP de la red conectada: ' ) ;
De serie. imprimir ( Wifi. IP local ( ) ) ;     /*Imprime la dirección IP de la red conectada*/
  }
}
vacío círculo ( ) {
    si ( wifiMulti. correr ( connectTimeoutMs ) == WL_CONECTADO ) {   /*si la conexión se pierde, se conectará a la siguiente red*/
De serie. impresión ( 'Wi-Fi conectado:' ) ;
De serie. impresión ( Wifi. SSID ( ) ) ;
De serie. impresión ( ' ' ) ;
De serie. imprimir ( Wifi. RSSI ( ) ) ;
  }
  más {
De serie. imprimir ( '¡WiFi no conectado!' ) ;   /*si todas las condiciones fallan imprime esto*/
  }
demora ( 1000 ) ;
}

El código comenzó definiendo bibliotecas WiFi para ESP32, luego creamos un WiFiMulti objeto. A continuación, en la parte de configuración agregamos dos redes. Una es una red WiFi que está cifrada con contraseña, por lo que debemos proporcionar una contraseña, mientras que la segunda red, que es un punto de acceso de teléfono inteligente, está abierta, por lo que no necesitamos ninguna contraseña, solo escriba el SSID de la red.

A continuación, utilizando wifiMulti.run() El comando ESP32 se conectará a la red más fuerte disponible. Una vez que el WiFi esté conectado, el código imprimirá el SSID de la red conectada, la dirección IP y el RSSI.

Producción

Después de cargar el código a ESP32, primero buscará la red disponible y luego se conectará a la red más fuerte disponible. Aquí podemos ver el valor de RSSI para cada red, un RSSI más bajo significa que la red es más fuerte.

  Texto Descripción generado automáticamente

Podemos ver que el ESP32 está conectado al red telefónica porque tiene un RSSI valor de -62 y la otra red cuyo SSID y contraseña están definidos es Equipo SAM cuyo valor es -73. Aquí, la red de punto de acceso móvil tiene un valor de RSSI más cercano a cero, lo que significa una conexión más fuerte.

Ahora desconecte el punto de acceso del teléfono inteligente. ESP32 se conectará a otras redes disponibles más potentes. Como en la salida, podemos ver que ESP32 ahora está conectado a la siguiente red más fuerte disponible. La red a la que está conectado es Team SAM con valor RSSI 0f -65.

Conclusión

ESP32 puede conectarse a la red más fuerte disponible en su círculo. Solo necesitamos definir varias redes SSID y contraseña dentro del código. Utilizando el WiFiMulti la función ESP32 buscará redes disponibles y cuando se pierda la conexión, se conectará a otras redes disponibles dentro del rango de ESP32.