Reconecte o Esptop 10 à rede Wi -Fi após a conexão perdida

Reconecte o Esptop 10 à rede Wi -Fi após a conexão perdida
Esp32 é uma placa de microcontrolador baseada em Wi -Fi. O ESP32 vem com um módulo WiFi pré-instalado que fornece recursos de comunicação sem fio. Esp32 pode ser operado em três modos de wifi estação, acesso, ou ambos. Às vezes, o WiFi ESP32 é desconectado quando o ESP32 está no modo de estação, então temos que ajustá -lo ou reconectá -lo. Leia este guia para aprender a reconectar o ESP32 à rede WiFi:

Como reconectar o ESP32 com a rede wifi

Três funções diferentes podem ser usadas para reconectar wifi após uma conexão perdida. A seguir estão as três maneiras:

  1. Wi-fi.função reconect ()
  2. Esp.reiniciar()
  3. Esp32 WiFi Events

1: Reconecte o WiFi usando Wi -Fi.função reconect ()

Para reconectar o ESP32 com o WiFi, podemos usar a seguinte função que verifica as redes wifi disponíveis. Depois que o WiFi estiver desconectado, a placa ESP32 tentará se conectar novamente com ele.

Wi-fi.reconectar ()

Ou alternativamente, também podemos primeiro desconectar a rede conectada usando Wi-fi.desconectar() e então inicie a conexão wifi usando o comando Wi-fi.BEGIN (SSID, senha).

2: Reconecte -se à rede WiFi após a conexão perdida usando WiFi.Função de reiniciar ()

Outra maneira de conectar o ESP32 com o Lost Wifi está reiniciando o ESP32 assim que a conexão é perdida. Agora, escreveremos um código que verificará o status da conexão a cada 30 segundos e se a conexão for perdida, ela reiniciará a conexão e tentará se conectar novamente ao ESP32 com a rede perdida.

Abra o Arduino IDE e execute o código.

#include /*biblioteca wifi incluída* /
const char* ssid = "abc"; /*SSID da rede para conectar*/
const char* senha = "senha123"; /*Senha para SSID*/
não assinado longo anteriormillis = 0;
intervalo longo não assinado = 30000;
void initwifi ()
Wi-fi.modo (wifi_sta);
Wi-fi.BEGIN (SSID, senha);
Serial.print ("Conectando -se ao wifi ...");
enquanto (wifi.status() != Wl_connected)
Serial.imprimir('.');
atraso (1000);

Serial.println (wifi.localip ());

Void Setup ()
Serial.começar (115200);
initwifi ();
Serial.print ("rssi (força wifi):");
Serial.println (wifi.Rssi ());

Void Loop ()
Long CurrentMillis não assinado = millis ();
/*Se a condição para verificar a reconexão do WiFi*/
if ((wifi.status() != Wl_connected) && (currentmillis - anteriormillis> = intervalo))
Serial.impressão (millis ());
Serial.println ("Reconectando -se ao wifi ...");
Wi-fi.desconectar();
Wi-fi.reconectar ();
anteriormillis = currentMillis;

Aqui no código acima, escreva o SSID e a senha da rede que se deseja conectar. Em seguida, defina o Millis e o tempo total, após o que o ESP32 verificará o status da conexão. Lembre -se de definir milis anteriores no início, porque toda vez que o código executado ESP32 levará o Millis como uma referência para o tempo para calcular 30 segundos intervalos de tempo.

O código verificará a rede disponível se a rede estiver disponível e as credenciais corretas forem escritas dentro do código ESP32 se conectará automaticamente a ele.

Saída no monitor serial

A saída seguinte aparecerá no monitor serial. Aqui podemos ver o endereço IP e a força da rede WiFi ESP32 está conectada a.

Observação: RSSI medidas no DBM e seu valor é negativo.

3: Como reconectar o ESP32 WiFi usando eventos WiFi

Esp32 por causa de sua biblioteca wifi tem vários eventos de wifi que estão abençoando disfarçar. O ESP32 tem alguns eventos específicos que são executados automaticamente se um determinado evento acontecer, depois disso, chamará automaticamente uma determinada função.

A seguir, estão algumas funções importantes que ajudam o ESP32 o restabeleceu automaticamente a conexão perdida:

  • Arduino_event_wifi_sta_connected: Esp32 no modo de estação conectado ao roteador
  • Arduino_event_wifi_sta_disconnected: Esp32 Seja desconectado do roteador

Código para eventos wifi

Abaixo está o código para três eventos diferentes de conexão wifi no ESP32. Abra o Arduino IDE, compile e envie o código fornecido.

#include /*biblioteca wifi incluída* /
const char* ssid = "abc"; /*SSID da rede para conectar*/
const char* senha = "senha123"; /*Senha para SSID*/
void wifi_connected (evento wifievEnt_t, wifievEntinfo_t info)
Serial.println ("esp32 wifi conectado ao ponto de acesso");

void get_ipaddress (evento wifievEnt_t, wifieventinfo_t info)
Serial.println ("wifi conectado!");
Serial.println ("Endereço IP do wifi conectado:");
Serial.println (wifi.localip ());

void wifi_disconnected (evento wifievEnt_t, wifieventInfo_t info)
Serial.println ("desconectado do wifi");
Serial.print ("Conexão Lost Motivo:");
Serial.println (info.desconectado.razão);
Serial.println ("Reconectando ...");
Wi-fi.BEGIN (SSID, senha);

Void Setup ()
Serial.começar (115200);
Wi-fi.desconectar (verdadeiro);
atraso (1000);
Wi-fi.Onevent (wifi_connected, System_Event_Sta_Connected);
Wi-fi.Onevent (get_ipaddress, system_event_sta_got_ip);
Wi-fi.Onevent (wifi_disconnected, system_event_sta_disconnected);
Wi-fi.BEGIN (SSID, senha);
Serial.println ("Aguardando rede Wi -Fi ...");

Void Loop ()
atraso (1000);

No código acima, três eventos diferentes são definidos:

  • System_Event_Sta_Connected: Quando o ESP32 conectado ao WiFi
  • System_Event_Sta_Got_ip: Quando o ESP32 obtém o endereço IP da rede conectada
  • System_Event_Sta_Disconnected: Quando o ESP32 foi desconectado de uma rede

Quando o ESP32 é conectado a uma rede WifistationConnected () A função será chamada. Simplesmente imprimirá que o ESP32 está conectado a uma rede com sucesso. No entanto, também podemos modificá -lo para acender um LED ou outra coisa quando o ESP32 é conectado a uma rede.

Em segundo lugar, quando o ESP32 recebe o endereço IP de uma rede Wifigotip () a função será executada. Esta função como a anterior imprimirá o endereço IP.

E o último evento que descrevemos é quando ele executará a função WifistationDisconnected (), Esta função imprimirá a mensagem de que o WiFi está desconectado e tenta reconectar o ESP32 com a rede WiFi.

Saída no monitor serial

A seguinte saída aparecerá no monitor serial: exibe o endereço IP e uma mensagem de que o WiFi está conectado. Da mesma forma, se o wifi estiver desconectado, ele automaticamente verificará a conexão WiFi a cada 30 segundos e tentará reconectar o ESP32 com a rede.

Encontramos com sucesso a questão da conexão Lost WiFi ESP32 usando três métodos diferentes.

Conclusão

Esp32 WiFi às vezes é desconectado para reconectar três métodos diferentes. Primeiro é simplesmente rebocar a conexão usando Wi-fi.BEGIN (SSID, senha) comando. O segundo método inclui uma verificação constante para a conexão da Internet Esp32 e se reconecta automaticamente quando sua conexão é perdida. O último método que abordamos executaria certas funções quando ocorre um evento wifi específico, como conectar ou desconexão.