Connecteu-vos a la xarxa WiFi més forta a ESP32 mitjançant la funció WiFiMulti

Connecteu Vos A La Xarxa Wifi Mes Forta A Esp32 Mitjancant La Funcio Wifimulti



ESP32 és una placa de microcontrolador basada en IoT que té suport per WiFi i Bluetooth. ESP32 pot funcionar en tres modes WiFi diferents (estació, accés o tots dos). L'ús de tots aquests modes ESP32 pot millorar la seva connectivitat sense fil per molts plecs. Avui parlarem del suport multi-WiFi a ESP32 per connectar-se a la xarxa més forta disponible.

ESP32 amb WiFiMulti Funció

ESP32 es pot connectar a diverses xarxes si tenim accés a més d'una xarxa, només hem de definir el seu SSID i contrasenya dins del codi. Cercarà la xarxa disponible i es connectarà a la xarxa Wi-Fi més forta que definim al codi.







Nota: Recordeu que es connectarà a una xarxa alhora si es perd la connexió a aquesta xarxa, llavors ESP32 es connectarà a altres xarxes WiFi disponibles.



Podem obrir un exemple de WiFiMulti a l'IDE d'Arduino:



Anar a : Fitxer > Exemples > WiFi > WifiMulti





Com afegir diverses xarxes WiFi a ESP32

Per afegir diverses xarxes WiFi a la placa ESP32. Farem servir el WifiMulti funcionar amb addAP() . La funció addAP() pot acceptar diversos SSID i contrasenyes com a argument. Per afegir diverses xarxes, els seus SSID i contrasenyes s'han de definir per separat. A continuació es mostra la sintaxi per afegir més d'una xarxa utilitzant WifiMulti funcionar amb addAP() :



wifiMulti. addAP ( 'SSID Xarxa1' , 'Contrasenya 1' ) ;

wifiMulti. addAP ( 'SSID Xarxa 2' , 'Contrasenya2' ) ;

wifiMulti. addAP ( 'SSID Network3' , 'Contrasenya3' ) ;

Com connectar-se a la xarxa WiFi més forta a ESP32

Per connectar l'ESP32 amb la xarxa més forta disponible, combinarem l'escaneig WiFi ESP32 i l'exemple WiFi multi. Escriurem un codi a l'IDE d'Arduino que farà els passos següents:

  • Busqueu les xarxes disponibles
  • Imprimiu el seu RSSI (Força del senyal) al monitor sèrie. Així, podem comprovar la xarxa més forta disponible
  • Es connecta automàticament a la xarxa més potent
  • Si perd la connexió, es connectarà automàticament a la següent xarxa més forta disponible

Per provar el codi, farem servir a Smartphone hotspot i una xarxa WiFi. Asigneu sempre un nom senzill a la xarxa del punt d'accés mòbil per evitar qualsevol error.

Ara carregueu el codi que es proporciona a la placa ESP32 mitjançant l'IDE d'Arduino.

Codi

Obriu l'IDE Arduino i carregueu el codi a ESP32. Recordeu seleccionar el port COM.

#include /*Biblioteca WIFI inclosa*/

#include /*Biblioteca WIFI múltiple inclosa*/

WiFiMulti wifiMulti ;
/*Per temps de connexió AP. Augmenta quan l'ESP32 triga més temps a connectar-se*/
const uint32_t connectTimeoutMs = 10000 ;
buit configuració ( ) {
Serial. començar ( 115200 ) ; /*Comença la comunicació en sèrie*/
retard ( 10 ) ;
WiFi. mode ( WIFI_STA ) ; /*ESP32 WIFI inicialitzat com a estació*/
/*Escriviu tots els SSID coneguts i les seves contrasenyes*/
wifiMulti. addAP ( 'EL TEU SSID' , 'CONTRAsenya' ) ; /*Xarxa 1 que volem connectar*/
wifiMulti. addAP ( 'telèfon' ) ; /*Xarxa 2 que volem connectar*/
// WiFi.scanNetworks donarà les xarxes totals
int n = WiFi. scanNetworks ( ) ; /*Busca la xarxa disponible*/
Serial. imprimirln ( 'escaneig fet' ) ;
si ( n == 0 ) {
Serial. imprimirln ( 'No hi ha xarxes disponibles' ) ; /*Imprimeix si no es troba cap xarxa*/
}
altra cosa {
Serial. imprimir ( n ) ;
Serial. imprimirln ( 'S'han trobat xarxes' ) ; /*Imprimeix si es troba la xarxa*/
per ( int i = 0 ; i < n ; ++ i ) {
Serial. imprimir ( i + 1 ) ; /*Imprimeix el SSID i RSSI de la xarxa disponible*/
Serial. imprimir ( ': ' ) ;
Serial. imprimir ( WiFi. SSID ( i ) ) ;
Serial. imprimir ( ' (' ) ;
Serial. imprimir ( WiFi. RSSI ( i ) ) ;
Serial. imprimir ( ')' ) ;
Serial. imprimirln ( ( WiFi. encryptionType ( i ) == WIFI_AUTH_OPEN ) ? ' ' : '*' ) ;
retard ( 10 ) ;
}
}
/*Es connecta a la xarxa definida més forta disponible amb SSID i contrasenya disponibles*/
Serial. imprimirln ( 'S'està connectant a Wifi...' ) ;
si ( wifiMulti. correr ( ) == WL_CONNECTAT ) {
Serial. imprimirln ( '' ) ;
Serial. imprimirln ( 'Connectat a la xarxa WIFI' ) ;
Serial. imprimirln ( 'Adreça IP de la xarxa connectada:' ) ;
Serial. imprimirln ( WiFi. IP local ( ) ) ; /*Imprimeix l'adreça IP de la xarxa connectada*/
}
}
buit bucle ( ) {
si ( wifiMulti. correr ( connectTimeoutMs ) == WL_CONNECTAT ) { /*si es perd la connexió, es connectarà a la següent xarxa*/
Serial. imprimir ( 'WiFi connectada:' ) ;
Serial. imprimir ( WiFi. SSID ( ) ) ;
Serial. imprimir ( ' ' ) ;
Serial. imprimirln ( WiFi. RSSI ( ) ) ;
}
altra cosa {
Serial. imprimirln ( 'WiFi no connectat!' ) ; /*si fallen totes les condicions imprimiu-ho*/
}
retard ( 1000 ) ;
}

El codi va començar definint biblioteques WiFi per a ESP32, després vam crear un WiFiMulti objecte. A continuació, a la part de configuració hem afegit dues xarxes. Una és una xarxa WiFi que està xifrada amb contrasenya, de manera que hem de proporcionar una contrasenya mentre que la segona xarxa, que és un punt d'accés per a telèfons intel·ligents, està oberta, de manera que no necessitem cap contrasenya només escriure el SSID de la xarxa.

A continuació, utilitzant wifiMulti.run() l'ordre ESP32 es connectarà a la xarxa més forta disponible. Un cop connectat el codi WiFi, imprimirà el SSID de la xarxa connectada, l'adreça IP i RSSI.

Sortida

Després de carregar el codi a ESP32, primer buscarà la xarxa disponible i després es connectarà a la xarxa més forta disponible. Aquí podem veure el valor RSSI de cada xarxa, un RSSI més baix significa que la xarxa és més forta.

  Descripció de text generada automàticament

Podem veure que ESP32 està connectat al xarxa telefònica perquè té un RSSI el valor de -62 i l'altra xarxa el SSID i la contrasenya de la qual es defineixen és Equip SAM el valor del qual és -73. Aquí, la xarxa de punts d'accés mòbil té un valor RSSI més proper a zero significa una connexió més forta.

Ara desconnecteu el punt d'accés del telèfon intel·ligent. ESP32 es connectarà a altres xarxes disponibles més fortes. Com a la sortida, podem veure que ESP32 està connectat a la següent xarxa disponible més forta. La xarxa a la qual està connectat és Team SAM amb un valor RSSI 0f -65.

Conclusió

ESP32 es pot connectar a la xarxa més forta disponible al seu cercle. Només hem de definir diverses xarxes SSID i contrasenya dins del codi. Utilitzant el WiFiMulti La funció ESP32 buscarà xarxes disponibles i, quan es perdi la connexió, es connectarà a altres xarxes disponibles dins del rang ESP32.