Koble til eSPTOP 10 til WiFi -nettverk etter tapt tilkobling

Koble til eSPTOP 10 til WiFi -nettverk etter tapt tilkobling
ESP32 er et wifi -basert mikrokontrollertavle. ESP32 kommer med en forhåndsinstallert WiFi-modul som gir den trådløse kommunikasjonsevner. ESP32 kan betjenes i tre wifi -modus stasjon, adgang, eller begge. Noen ganger blir ESP32 WiFi koblet fra når ESP32 er i stasjonsmodus, så vi må justere den eller koble til den på nytt. Les denne guiden for å lære hvordan du kobler til ESP32 til WiFi -nettverk:

Hvordan koble til ESP32 med WiFi -nettverk på nytt med WiFi

Tre forskjellige funksjoner kan brukes til å koble til igjen WiFi etter en tapt forbindelse. Følgende er de tre måtene:

  1. Wifi.Rekonnect () -funksjonen
  2. Esp.omstart()
  3. ESP32 WiFi -hendelser

1: Koble til wifi på nytt ved bruk av wifi.Rekonnect () -funksjonen

For å koble til ESP32 med WiFi kan vi bruke følgende funksjon som sjekker til de tilgjengelige WiFi -nettverkene. Når WiFi er koblet fra, vil ESP32 -styret prøve å koble seg igjen med det.

Wifi.koble til igjen ()

Eller alternativt kan vi også først koble fra det tilkoblede nettverket ved hjelp av Wifi.koble fra() Og så begynn igjen wifi -tilkoblingen ved å bruke kommandoen Wifi.Begynn (SSID, passord).

2: Koble til wifi -nettverk etter tapt forbindelse ved bruk av WiFi.Restart () -funksjonen

En annen måte å koble. Nå skal vi skrive en kode som vil se etter tilkoblingsstatus hver 30. sekund, og hvis tilkoblingen går tapt, vil den starte forbindelsen på nytt og prøve å koble seg igjen til ESP32 med det tapte nettverket.

Åpne Arduino IDE og kjør koden.

#include /*wifi -bibliotek inkludert* /
const char* ssid = "abc"; /*Ssid av nettverket for å koble til*/
const char* passord = "passord123"; /*Passord for SSID*/
usignert lang tidligere millis = 0;
usignert langt intervall = 30000;
void initwifi ()
Wifi.modus (wifi_sta);
Wifi.Begynn (SSID, passord);
Serie.print ("koble til wifi ...");
mens (wifi.status() != Wl_connected)
Serie.skrive ut('.');
forsinkelse (1000);

Serie.Println (wifi.localip ());

void setup ()
Serie.Begin (115200);
initwifi ();
Serie.print ("rssi (wifi styrke):");
Serie.Println (wifi.Rssi ());

void loop ()
usignert lang currentMillis = millis ();
/*Hvis betingelse for å sjekke wifi -tilkobling*/
hvis ((wifi.status() != Wl_connected) && (currentMillis - forrige Millis> = intervall))
Serie.trykk (millis ());
Serie.println ("Tilbakekobling til wifi ...");
Wifi.koble fra();
Wifi.koble til igjen ();
Forrige Millis = CurrentMillis;

HER I OVER KODE FØRSTE SKRIV SSID og passord for nettverket man vil koble til. Neste definer millis og total tid, hvoretter ESP32 vil sjekke tilkoblingsstatusen. Husk å definere tidligere millis ved start fordi hver gang kode kjører ESP32 vil ta millis som en referanse for tid til å beregne 30 sek. Tidsintervaller.

Kode vil se etter det tilgjengelige nettverket hvis nettverket er tilgjengelig og riktig legitimasjon er skrevet i koden ESP32 automatisk blir koblet til det.

Utgang på seriell skjerm

Følgende utgang vises på seriemonitoren. Her kan vi se IP -adressen og styrken til WiFi -nettverket ESP32 er koblet til.

Merk: RSSI -tiltak i DBM og verdien er negativ.

3: Hvordan koble til ESP32 WiFi ved hjelp av WiFi -hendelser

ESP32 på grunn av WiFi -biblioteket har flere WiFi -hendelser som er velsignelse i forkledning. ESP32 har noen spesifikke hendelser som automatisk kjøres hvis en bestemt hendelse skjer, etter det vil den automatisk ringe en viss funksjon.

Følgende er noen viktige funksjoner som hjelper ESP32 O automatisk gjenopprettet den tapte forbindelsen:

  • Arduino_event_wifi_sta_connected: ESP32 i stasjonsmodus koblet til ruter
  • Arduino_event_wifi_sta_disconnected: ESP32 bli koblet fra ruteren

Kode for wifi -arrangementer

Nedenfor er koden for tre forskjellige hendelser med WiFi -tilkobling i ESP32. Åpne Arduino IDE, kompiler og last opp den gitte koden.

#include /*wifi -bibliotek inkludert* /
const char* ssid = "abc"; /*Ssid av nettverket for å koble til*/
const char* passord = "passord123"; /*Passord for SSID*/
void wifi_connected (wifievent_t -hendelse, wifieventinfo_t info)
Serie.println ("ESP32 wifi koblet til tilgangspunkt");

void get_ipaddress (wifievent_t -arrangement, wifieventinfo_t info)
Serie.Println ("WiFi tilkoblet!");
Serie.println ("IP -adresse til tilkoblet wifi:");
Serie.Println (wifi.localip ());

void wifi_disconnected (wiFievent_t -hendelse, wifieventinfo_t info)
Serie.println ("koblet fra wifi");
Serie.trykk ("Tilkobling tapt fornuft:");
Serie.Println (info.koblet fra.grunnen til);
Serie.println ("Tilbakekobling ...");
Wifi.Begynn (SSID, passord);

void setup ()
Serie.Begin (115200);
Wifi.koble fra (sant);
forsinkelse (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.Begynn (SSID, passord);
Serie.Println ("Waiting for WiFi Network ...");

void loop ()
forsinkelse (1000);

I kode over er tre forskjellige hendelser definert:

  • System_event_sta_connected: Når ESP32 koblet til wifi
  • System_event_sta_got_ip: Når ESP32 får IP -adressen til det tilkoblede nettverket
  • System_event_sta_disconnected: Da ESP32 ble koblet fra et nettverk

Når ESP32 blir koblet til et nettverk Wifistation Connected () Funksjon vil bli kalt. Det vil ganske enkelt skrive ut at ESP32 er koblet til et nettverk med hell. Vi kan imidlertid også endre den til å tenne en LED eller noe annet når ESP32 blir koblet til et nettverk.

For det andre når ESP32 får IP -adressen til et nettverk Wifigotip () funksjonen vil kjøre. Denne funksjonen som den forrige vil skrive ut IP -adressen.

Og den siste hendelsen som vi beskriver er når den skal kjøre funksjonen WifistationDisconnected (), Denne funksjonen vil skrive ut meldingen om at WiFi er koblet fra og prøver å koble til ESP32 med WiFi -nettverket på nytt med WiFi -nettverket.

Utgang på seriell skjerm

Følgende utdata vises på seriemonitoren: Den viser IP -adressen og en melding om at WiFi er tilkoblet. Tilsvarende, hvis WiFi er koblet fra, vil den automatisk sjekke for WiFi -tilkobling hvert 30. sekund og prøve å koble til ESP32 med nettverket på nytt med nettverket.

Vi har sortert ut problemet med ESP32 WiFi Lost Connection ved hjelp av tre forskjellige metoder.

Konklusjon

ESP32 WiFi blir noen ganger koblet fra å koble til igjen tre forskjellige metoder kan brukes. Først er det å bare gjenbestemme forbindelsen ved hjelp av Wifi.Begynn (SSID, passord) kommando. Den andre metoden inkluderer en konstant sjekk for ESP32 Internett -tilkobling og kobler automatisk igjen når forbindelsen er tapt. Den siste metoden som vi dekket ville kjøre visse funksjoner når en spesifikk WiFi -hendelse skjer, for eksempel tilkobling eller kobling.