
Este guia rápido mostra como reconectar seu ESP32 a uma rede Wi-Fi após uma desconexão. Isso é útil quando: o ESP32 perde temporariamente o sinal Wi-Fi; o ESP32 está temporariamente fora do alcance Wi-Fi do roteador; o roteador é reiniciado; o roteador perde a conectividade com a Internet ou outras situações.
A função WiFi.reconnect() foi criada para que o ESP32 reconecte a rede WIFI novamente em caso de perda repentina da conexão, e quando o serviço estiver restabelecido e o roteador esteja online novamente, o ESP32 consiga conectar sem a necessidade de reiniciar todo sistema.
Estamos usando a biblioteca WiFi.h que pode ser adquirida no gerenciador de biblioteca da IDE Arduino ou no GitHub, LINK
Código completo para testar no seu ESP32
#include <WiFi.h>
const char* ssid = "rede";
const char* password = "senhadarede";
void WiFiStationConnected(WiFiEvent_t event, WiFiEventInfo_t info){
Serial.println("Conectado ao AP com sucesso!");
}
/*
* Essa função simplesmente imprime o endereço IP no Serial Monitor.
*/
void WiFiGotIP(WiFiEvent_t event, WiFiEventInfo_t info){
Serial.println("WiFi conectado");
Serial.print("IP : ");
Serial.println(WiFi.localIP());
}
/*
* Essa função imprime uma mensagem indicando que a conexão foi perdida e tenta reconectar:
*/
void WiFiStationDisconnected(WiFiEvent_t event, WiFiEventInfo_t info){
Serial.println("Desconectado do ponto de acesso WiFi");
Serial.print("WiFi perdeu a conexão. Motivo: ");
Serial.println(info.disconnected.reason);
Serial.println("Tentando reconectar");
WiFi.begin(ssid, password);
}
void setup(){
Serial.begin(115200);
// delete old config
WiFi.disconnect(true);
delay(1000);
/*
* SYSTEM_EVENT_STA_CONNECTED: o ESP32 está conectado em modo estação a um ponto de acesso/hotspot (seu roteador);
* SYSTEM_EVENT_STA_DISCONNECTED: a estação ESP32 desconectada do ponto de acesso.
*/
WiFi.onEvent(WiFiStationConnected, SYSTEM_EVENT_STA_CONNECTED);
WiFi.onEvent(WiFiGotIP, SYSTEM_EVENT_STA_GOT_IP);
WiFi.onEvent(WiFiStationDisconnected, SYSTEM_EVENT_STA_DISCONNECTED);
/* Remove WiFi event
Serial.print("WiFi Event ID: ");
Serial.println(eventID);
WiFi.removeEvent(eventID);*/
WiFi.begin(ssid, password);
Serial.println();
Serial.println();
Serial.println("Aguarde pelo WiFi... ");
}
void loop(){
delay(1000);
}
.
Teste realizado na IDE Arduino
Veja na saída serial vemos que o ESP32 conectou no WIFI com sucesso exibindo o IP que recebeu do roteador WIFI.

Ao desligar o roteador o programa detectou a falta da conexão com o roteador e exibiu a mensagem na saída serial da IDE Arduino. Após religar o roteador o programa detectou o sinal novamente e reconectou no WiFi.



