Stellen Sie mit der Wifimulti -Funktion eine Verbindung zum stärksten WLAN -Netzwerk in ESPTOP 10 her

Stellen Sie mit der Wifimulti -Funktion eine Verbindung zum stärksten WLAN -Netzwerk in ESPTOP 10 her
ESP32 ist eine IoT -basierte Mikrocontroller -Karte mit WLAN- und Bluetooth -Unterstützung. ESP32 kann in drei verschiedenen WLAN -Modi (Station, Zugang oder beides) betrieben werden. Mit all diesen Modi kann ESP32 seine drahtlose Konnektivität um viele Falten verbessern. Heute werden wir über die Multi-WLAN-Unterstützung in ESP32 diskutieren, um eine Verbindung zum stärksten verfügbaren Netzwerk herzustellen.

ESP32 mit Wifimulti -Funktion

ESP32 kann eine Verbindung zu mehreren Netzwerken herstellen, wenn wir Zugriff auf mehr als ein Netzwerk haben. Wir müssen nur ihre SSID und Kennwort im Code definieren. Es wird nach dem verfügbaren Netzwerk suchen und eine Verbindung zum stärksten Wi-Fi-Netzwerk herstellen, das wir in Code definieren.

Notiz: Denken Sie daran, dass es jeweils eine Verbindung zu einem Netzwerk herstellt, wenn die Verbindung zu diesem Netzwerk verloren geht, dann wird ESP32 eine Verbindung zu anderen verfügbaren WLAN.

Wir können Wifimulti -Beispiel in Arduino IDE eröffnen:

Gehe zu: Datei> Beispiele> WiFi> Wifimulti

So fügen Sie mehrere WLAN -Netzwerke in ESP32 hinzu

Fügen Sie mehrere WLAN -Netzwerke in das ESP32 -Board hinzu. Wir werden die verwenden Wifimulti Funktion mit addap (). Die Funktion addap () kann mehrere SSIDs und Passwörter als Argument akzeptieren. Um mehrere Netzwerke hinzuzufügen, sollten ihre SSID und Passwörter separat definiert werden. Im Folgenden finden Sie die Syntax, um mehr als ein Netzwerk mithilfe der Verwendung hinzuzufügen Wifimulti Funktion mit addap ():

Wifimulti.AddAP ​​("SSID Network1", "Password1");
Wifimulti.AddAP ​​("SSID Network2", "Password2");
Wifimulti.AddAP ​​("SSID Network3", "Password3");

So stellen Sie eine Verbindung zum stärksten WLAN -Netzwerk in ESP32 her

Um ESP32 mit dem stärksten verfügbaren Netzwerk zu verbinden. Wir werden einen Code in Arduino IDE schreiben, der die folgenden Schritte ausführt:

  • Scannen Sie nach den verfügbaren Netzwerken
  • Drucken Sie ihre RSSI (Signalstärke) auf Serienmonitor aus. Wir können also das stärkste verfügbare Netzwerk überprüfen
  • Stellt sich automatisch eine Verbindung zum stärksten Netzwerk her
  • Wenn es eine Verbindung verliert, stellt es automatisch eine Verbindung zum nächsten verfügbaren, stärksten Netzwerk her

Um den Code zu testen, werden wir a verwenden Smartphone Hotspot und ein WLAN -Netzwerk. Weisen Sie dem mobilen Hotspot -Netzwerk immer einen einfachen Namen zu, um Fehler zu vermeiden.

Laden Sie nun den in ESP32 -Board angegebenen Code mit Arduino IDE hoch.

Code

Öffnen Sie Arduino IDE und hochladen Code in ESP32. Denken Sie daran, den COM -Port auszuwählen.

#include /*WiFi -Bibliothek enthalten* /
#include /*Multi -WiFi -Bibliothek inklusive* /
Wifimulti Wifimulti;
/*Pro AP -Verbindungszeit. Erhöhen Sie, wenn ESP32 mehr Zeit für die Verbindung benötigen*/
const Uint32_t ConnectTimeOutms = 10000;
void setup ()
Serie.Beginnen Sie (115200); /*Serielle Kommunikation beginnt*/
Verzögerung (10);
W-lan.Modus (WiFi_Sta); /*ESP32 WiFi als Station initialisiert*/
/*Geben Sie alle bekannten SSID und ihre Passwörter ein*/
Wifimulti.Addap ("Ihr SSID", "Passwort"); /*Netzwerk 1 Wir möchten eine Verbindung herstellen*/
Wifimulti.Addap ("Telefon"); /*Netzwerk 2 Wir möchten eine Verbindung herstellen*/
// W-lan.Scannetworks geben insgesamt Netzwerke
int n = wiFi.scannetworks (); /*Scannen nach verfügbarem Netzwerk*/
Serie.println ("scan dad");
if (n == 0)
Serie.println ("Keine verfügbaren Netzwerke"); /*Druckt, wenn kein Netzwerk gefunden wurde*/

anders
Serie.print (n);
Serie.println ("Netzwerke gefunden"); /*Druckt, wenn das Netzwerk gefunden wird*/
für (int i = 0; i < n; ++i)
Serie.print (i + 1); /*Drucken Sie die SSID und RSSI des verfügbaren Netzwerks*/
Serie.drucken(": ");
Serie.Druck (WiFi.Ssid (i));
Serie.drucken(" (");
Serie.Druck (WiFi.Rssi (i));
Serie.drucken(")");
Serie.println ((WiFi.Verschlüsselungstyp (i) == Wifi_auth_open)?"": "*");
Verzögerung (10);


/*Stellt eine Verbindung zu dem stärksten verfügbaren definierten Netzwerk mit SSID und Passwort her*////////
Serie.println ("Verbindung zu WiFi ...");
if (Wifimulti.run () == wl_connected)
Serie.println ("");
Serie.println ("mit dem WLAN -Netzwerk verbunden");
Serie.println ("IP -Adresse des vernetzten Netzwerks:");
Serie.println (WiFi.localip ()); /*Druckt die IP -Adresse des vernetzten Netzwerks*/drucken


void Loop ()
if (Wifimulti.run (ConnectTimeOutms) == WL_CONNECT) /*Wenn die Verbindung verloren hat, wird eine Verbindung zum nächsten Netzwerk hergestellt* /
Serie.print ("WiFi Connected:");
Serie.Druck (WiFi.SSID ());
Serie.drucken(" ");
Serie.println (WiFi.Rssi ());

anders
Serie.println ("WiFi nicht verbunden!"); /*Wenn alle Bedingungen dies nicht drucken* /drucken

Verzögerung (1000);

Der Code begann mit der Definition von WLAN -Bibliotheken für ESP32, dann haben wir a erstellt Wifimulti Objekt. Als nächstes haben wir im Setup -Teil zwei Netzwerke hinzugefügt. Eines ist ein WLAN -Netzwerk, das Passwort verschlüsselt ist, sodass wir ein Passwort angeben müssen, während das zweite Netzwerk, das ein Smartphone -Hotspot ist.

Als nächstes verwenden Wifimulti.laufen() Der Befehl ESP32 wird eine Verbindung zu dem verfügbaren stärksten Netzwerk herstellen. Sobald das WLAN angeschlossen ist, druckt Code das angeschlossene Netzwerk -SSID, die IP -Adresse und die RSSI.

Ausgang

Nach dem Hochladen von Code auf ESP32 wird zuerst nach dem verfügbaren Netzwerk gescannt, dann wird es eine Verbindung zum stärksten verfügbaren Netzwerk herstellen. Hier sehen wir den RSSI -Wert für jedes Netzwerk. Ein niedrigerer RSSI bedeutet stärker das Netzwerk.

Wir können sehen, dass ESP32 mit dem verbunden ist Telefonnetzwerk Weil es eine hat RSSI Wert von -62 und das andere Netzwerk, dessen SSID und Passwort definiert sind Team Sam deren Wert ist -73. Hier hat das mobile Hotspot -Netzwerk einen RSSI -Wert, der näher an Null ist, eine stärker.

Trennen Sie jetzt den Smartphone -Hotspot. ESP32 verbindet sich mit anderen stärkeren verfügbaren Netzwerken. Wie bei der Ausgabe ist wir sehen, dass ESP32 jetzt mit dem nächsten am stärksten verfügbaren Netzwerk verbunden ist. Netzwerk, an das es verbunden ist, ist Team Sam mit RSSI -Wert 0f -65.

Abschluss

ESP32 kann eine Verbindung zu dem stärksten Netzwerk in seinem Kreis herstellen. Wir müssen nur mehrere Netzwerke SSID und Kennwort im Code definieren. Verwendung der Wifimulti Function ESP32 scannt nach verfügbaren Netzwerken. Wenn die Verbindung verloren geht, wird eine Verbindung zu anderen verfügbaren Netzwerken im ESP32 -Bereich hergestellt.