Conecte -se à rede WiFi mais forte no ESPPOP 10 usando a função Wifimulti

Conecte -se à rede WiFi mais forte no ESPPOP 10 usando a função Wifimulti
Esp32 é uma placa de microcontrolador baseada em IoT com suporte de Wi -Fi e Bluetooth. O ESP32 pode operar em três modos WiFi diferentes (estação, acesso ou ambos). O uso de todos esses modos ESP32 pode melhorar sua conectividade sem fio em muitas dobras. Hoje estaremos discutindo o suporte multi-wifi no ESP32 para conectar-se à rede mais forte disponível.

Esp32 com função wifimulti

O ESP32 pode se conectar a várias redes se tivermos acesso a mais de uma rede, apenas precisamos definir seu SSID e senha dentro do código. Ele procurará a rede disponível e se conectará à rede Wi-Fi mais forte que definimos no código.

Observação: Lembre -se de que ele se conectará a uma rede de cada vez se a conexão com essa rede for perdida, o ESP32 se conectará a outras redes WiFi disponíveis.

Podemos abrir o exemplo wifimulti no Arduino IDE:

Vá para: Arquivo> Exemplos> Wifi> Wifimulti

Como adicionar várias redes WiFi no ESP32

Para adicionar várias redes WiFi na placa ESP32. Vamos usar o Wifimulti função com addap (). A função Addap () pode aceitar vários SSIDs e senhas como argumento. Para adicionar várias redes, seu SSID e senhas devem ser definidos separadamente. A seguir está a sintaxe para adicionar mais de uma rede usando Wifimulti função com addap ():

Wifimulti.addap ("ssid rede1", "senha1");
Wifimulti.addap ("ssid network2", "senha2");
Wifimulti.addap ("ssid network3", "senha3");

Como se conectar à rede WiFi mais forte no ESP32

Para conectar o ESP32 com a rede mais forte disponível, combinaremos a digitalização WiFi e Multi Exemplo de WiFi ESP32. Escreveremos um código no Arduino IDE que fará as seguintes etapas:

  • Digitalizar para as redes disponíveis
  • Imprima seu RSSI (força do sinal) no monitor serial. Então, podemos verificar a rede mais forte disponível
  • Se conecta automaticamente à rede mais forte
  • Se perder a conexão, ele se conectará automaticamente à próxima rede mais forte disponível

Para testar o código, usaremos um Smartphone Hotspot e uma rede wifi. Sempre atribua um nome simples à rede de hotspot móvel para evitar qualquer erro.

Agora envie o código fornecido na placa ESP32 usando o Arduino IDE.

Código

Abra o Arduino IDE e o Código de Carregar no ESP32. Lembre -se de selecionar a porta COM.

#include /*biblioteca wifi incluída* /
#include /*biblioteca multi wi -fi incluída* /
Wifimulti wifimulti;
/*Por AP Connect Time. Aumente quando o ESP32 leva mais tempo para a conexão*/
const uint32_t ConnectTimeOutms = 10000;
Void Setup ()
Serial.começar (115200); /*A comunicação serial começa*/
atraso (10);
Wi-fi.modo (wifi_sta); /*Esp32 wifi inicializado como estação*/
/*Digite todo o SSID conhecido e suas senhas*/
Wifimulti.addap ("seu ssid", "senha"); /*Rede 1 queremos conectar*/
Wifimulti.addap ("telefone"); /*Rede 2, queremos conectar*/
// Wi-fi.Scannetworks dará redes totais
int n = wifi.scannetworks (); /*Digitalizar a rede disponível*/
Serial.println ("Scan DOED");
if (n == 0)
Serial.println ("sem redes disponíveis"); /*Imprime se nenhuma rede encontrada*/

outro
Serial.impressão (n);
Serial.println ("redes encontradas"); /*Imprime se a rede encontrada*/
para (int i = 0; i < n; ++i)
Serial.impressão (i + 1); /*Imprima o SSID e o RSSI da rede disponível*/
Serial.imprimir(": ");
Serial.Imprimir (wifi.Ssid (i));
Serial.imprimir(" (");
Serial.Imprimir (wifi.Rssi (i));
Serial.imprimir(")");
Serial.println ((wifi.EncryptionType (i) == wifi_auth_open)?"": "*");
atraso (10);


/*Se conecta à rede definida mais forte disponível com SSID e senha disponíveis*/
Serial.println ("conectando -se ao wifi ...");
if (wifimulti.run () == wl_connected)
Serial.println ("");
Serial.println ("conectado à rede wifi");
Serial.println ("Endereço IP da rede conectada:");
Serial.println (wifi.localip ()); /*Imprime o endereço IP da rede conectada*/


Void Loop ()
if (wifimulti.RUN (ConnectTimeOutms) == WL_CONNECTEND) /*Se a conexão a perdê -la se conectar à próxima rede* /
Serial.print ("wifi conectado:");
Serial.Imprimir (wifi.Ssid ());
Serial.imprimir(" ");
Serial.println (wifi.Rssi ());

outro
Serial.println ("wifi não conectado!"); /*Se todas as condições falharem imprimindo este* /

atraso (1000);

Código iniciado definindo bibliotecas wifi para ESP32, depois criamos um Wifimulti objeto. Em seguida, na parte de configuração, adicionamos duas redes. Uma é uma rede wifi que é criptografada de senha, então precisamos fornecer uma senha enquanto a segunda rede que é um ponto de acesso para smartphone está aberto, para que não precisemos de nenhuma senha, apenas digitada na rede SSID.

Em seguida, usando Wifimulti.correr() O comando ESP32 se conectará à rede mais forte disponível. Depois que o código WiFi estiver conectado será imprimir o SSID de rede conectado, endereço IP e RSSI.

Saída

Depois de enviar o código para o ESP32 primeiro, ele digitalizará a rede disponível, ele se conectará à rede mais forte disponível. Aqui podemos ver o valor RSSI para cada rede, um RSSI mais baixo significa mais forte é a rede.

Podemos ver que o ESP32 está conectado ao rede telefônica Porque tem um Rssi valor de -62 e a outra rede cuja SSID e senha é definida é Equipe Sam cujo valor é -73. Aqui a rede de hotspot móvel tem um valor RSSI mais próximo de zero significa uma conexão mais forte.

Agora desconecte o hotspot do smartphone. O ESP32 se conectará a outras redes disponíveis mais fortes. Como na saída, podemos ver o ESP32 agora está conectado à próxima rede disponível mais forte. Rede à qual está conectada é a equipe Sam com RSSI Value 0f -65.

Conclusão

O ESP32 pode se conectar à rede mais forte disponível em seu círculo. Só precisamos definir várias redes SSID e senha dentro do código. Usando o Wifimulti A função ESP32 será digitalizada em busca de redes disponíveis e, quando a conexão for perdida, ela se conectará a outras redes disponíveis dentro da linha Esp32.