Ricollegare ESPTOP 10 alla rete WiFi dopo la connessione persa

Ricollegare ESPTOP 10 alla rete WiFi dopo la connessione persa
ESP32 è una scheda microcontrollore basata su wifi. ESP32 viene fornito con un modulo WiFi preinstallato che lo fornisce capacità di comunicazione wireless. ESP32 può essere gestito in tre modalità di wifi stazione, accesso, o entrambi. A volte ESP32 WiFi viene disconnesso quando ESP32 è in modalità stazione, quindi dobbiamo regolarlo o riconnetterlo. Leggi questa guida per imparare a riconnettersi ESP32 alla rete WiFi:

Come riconnettersi ESP32 con la rete WiFi

Tre diverse funzioni possono essere utilizzate per ricollegare il WiFi dopo una connessione persa. Di seguito sono riportati i tre modi:

  1. Wifi.funzione riconnect ()
  2. Esp.ricomincia()
  3. EVENTI WIFI ESP32

1: riconnetti il ​​wifi usando wifi.funzione riconnect ()

Per riconnettersi ESP32 con WiFi possiamo utilizzare la seguente funzione che controlla le reti WiFi disponibili. Una volta che il WiFi viene disconnesso, la scheda ESP32 proverà a connettersi di nuovo con essa.

Wifi.riconnect ()

O in alternativa possiamo anche disconnettere prima la rete connessa utilizzando Wifi.disconnessione () e poi iniziare di nuovo la connessione WiFi usando il comando Wifi.Inizia (SSID, password).

2: riconnettersi alla rete WiFi dopo la connessione persa utilizzando WiFi.Restart () funzione

Un altro modo di collegare ESP32 con WiFi perduto è il riavvio dell'ESP32 una volta che la connessione è persa. Ora scriveremo un codice che verificherà lo stato di connessione ogni 30 sec e se la connessione viene persa, riavverrà la connessione e proverà a connettersi di nuovo a ESP32 con la rete smarrita.

Apri Arduino IDE ed esegui il codice.

#include /*libreria wifi inclusa* /
const char* ssid = "ABC"; /*Ssid della rete per connettere*/
const char* password = "password123"; /*password per ssid*/
Non firmato Long PrecedentiMillis = 0;
intervallo lungo non firmato = 30000;
void initWifi ()
Wifi.modalità (wifi_sta);
Wifi.inizio (SSID, password);
Seriale.stampa ("connessione a wifi ...");
mentre (wifi.stato() != Wl_connected)
Seriale.stampa('.');
ritardo (1000);

Seriale.println (wifi.localip ());

void setup ()
Seriale.Inizia (115200);
initWifi ();
Seriale.print ("RSSI (forza WiFi):");
Seriale.println (wifi.RSSI ());

void loop ()
CurrentMillis a lungo non firmato (millis ();
/*Se la condizione per controllare la riconnessione WiFi*/
if ((wifi.stato() != Wl_connected) && (CurrentMillis - precedenteMillis> = intervallo))
Seriale.print (millis ());
Seriale.println ("riconnettersi al wifi ...");
Wifi.disconnect ();
Wifi.riconnect ();
PrecedentiMillis = CurrentMillis;

Qui in codice sopra prima scrivi l'SSID e la password per la rete che si vuole connettersi. Quindi definire il millis e il tempo totale dopo il quale ESP32 controllerà lo stato di connessione. Ricorda di definire il precedente Millis all'avvio perché ogni codice temporale ESP32 impiegherà Millis come riferimento per il tempo per calcolare gli intervalli di tempo di 30 secondi.

Il codice verificherà la rete disponibile se la rete è disponibile e le credenziali corrette vengono scritte all'interno del codice ESP32 verranno automaticamente connesse ad esso.

Output sul monitor seriale

Seguendo l'output apparirà sul monitor seriale. Qui possiamo vedere l'indirizzo IP e la forza della rete WiFi ESP32 è connessa.

Nota: Misure di RSSI in DBM e il suo valore è negativo.

3: come riconnettersi ESP32 WiFi usando eventi WiFi

ESP32 A causa della sua libreria WiFi ha più eventi WiFi che sono bene la benedizione. ESP32 ha alcuni eventi specifici che eseguono automaticamente se si verifica un determinato evento, dopo di che chiamerà automaticamente una determinata funzione.

Di seguito sono riportate alcune funzioni importanti che aiutano ESP32 o ristabilire automaticamente la connessione persa:

  • Arduino_event_wifi_sta_connected: ESP32 in modalità stazione collegata al router
  • Arduino_event_wifi_sta_disconnected: ESP32 diventa disconnesso dal router

Codice per eventi WiFi

Di seguito è riportato il codice per tre diversi eventi di connessione WiFi in ESP32. Apri Arduino IDE, compila e carica il codice dato.

#include /*libreria wifi inclusa* /
const char* ssid = "ABC"; /*Ssid della rete per connettere*/
const char* password = "password123"; /*password per ssid*/
void wifi_connected (wifieveent_t event, wifieventinfo_t info)
Seriale.println ("ESP32 WiFi collegato al punto di accesso");

void get_ipaddress (evento Wifievent_t, wifieventinfo_t info)
Seriale.println ("wifi connesso!");
Seriale.println ("Indirizzo IP del wifi connesso:");
Seriale.println (wifi.localip ());

void wifi_disconnected (wifievent_t event, wifieventinfo_t info)
Seriale.println ("disconnesso dal wifi");
Seriale.print ("Connection Lost Reason:");
Seriale.println (informazioni.disconnesso.motivo);
Seriale.println ("Reconnecting ...");
Wifi.inizio (SSID, password);

void setup ()
Seriale.Inizia (115200);
Wifi.disconnessione (vero);
ritardo (1000);
Wifi.Onevent (wifi_connected, system_event_sta_connected);
Wifi.Onevent (get_ipaddress, system_event_sta_got_ip);
Wifi.Onevent (wifi_disconnected, system_event_sta_disconnected);
Wifi.inizio (SSID, password);
Seriale.println ("in attesa di rete wifi ...");

void loop ()
ritardo (1000);

Nel codice sopra riportato sono definiti tre diversi eventi:

  • System_event_sta_connected: Quando ESP32 è collegato a WiFi
  • System_event_sta_got_ip: Quando ESP32 ottiene l'indirizzo IP della rete connessa
  • System_Event_sta_disconnected: Quando ESP32 è stato disconnesso da una rete

Quando ESP32 si collega a una rete WifistationConnected () La funzione verrà chiamata. Stamperà semplicemente che ESP32 è collegato a una rete correttamente. Tuttavia, possiamo anche modificarlo per illuminare un LED o qualcos'altro quando ESP32 si collega a una rete.

In secondo luogo quando ESP32 ottiene l'indirizzo IP di una rete Wifigotip () la funzione verrà eseguita. Questa funzione come quella precedente stamperà l'indirizzo IP.

E l'ultimo evento che descriviamo è quando eseguirà la funzione WifistationDisconnected (), Questa funzione stamperà il messaggio che WiFi è disconnesso e cerca di riconnettersi ESP32 con la rete WiFi.

Output sul monitor seriale

Seguendo l'output verrà visualizzato sul monitor seriale: visualizza l'indirizzo IP e un messaggio che WiFi è connesso. Allo stesso modo, se il WiFi viene disconnesso, verificherà automaticamente la connessione WiFi ogni 30 sec e proverà a riconnettersi ESP32 con la rete.

Abbiamo risolto con successo il problema della connessione persa ESP32 WiFi usando tre diversi metodi.

Conclusione

ESP32 WiFi a volte viene disconnesso, quindi è possibile utilizzare tre diversi metodi. Il primo è semplicemente di rebeginare la connessione utilizzando Wifi.Inizia (SSID, password) comando. Il secondo metodo include un controllo costante per la connessione Internet ESP32 e si riconnette automaticamente una volta che la sua connessione è persa. L'ultimo metodo che abbiamo trattato avrebbe eseguito alcune funzioni quando si verifica un evento WiFi specifico come la connessione o la disconnessione.