Połącz się z najsilniejszą siecią WIFI w ESPTOP 10 za pomocą funkcji Wifimulti

Połącz się z najsilniejszą siecią WIFI w ESPTOP 10 za pomocą funkcji Wifimulti
ESP32 to płyta mikrokontrolera oparta na IoT o obsłudze Wi -Fi i Bluetooth. ESP32 może działać w trzech różnych trybach Wi -Fi (stacja, dostęp lub oba). Korzystanie z tych wszystkich trybów ESP32 może zwiększyć swoją łączność bezprzewodową o wiele fałdów. Dzisiaj będziemy omawiać obsługę wielu Wi-Fi w ESP32, aby połączyć się z najsilniejszą dostępną siecią.

ESP32 z funkcją wifimulti

ESP32 może łączyć się z wieloma sieciami, jeśli mamy dostęp do więcej niż jednej sieci, musimy tylko zdefiniować ich SSID i hasło w kodzie. Będzie wyszukiwał dostępną sieć i połączy się z najsilniejszą siecią Wi-Fi, którą definiujemy w kodzie.

Notatka: Pamiętaj, że połączy się z jedną siecią na raz, jeśli połączenie z tą siecią zostanie utracone, wówczas ESP32 połączy się z innymi dostępnymi sieciami Wi -Fi.

Możemy otworzyć przykład Wifimulti w Arduino IDE:

Iść do: Plik> Przykłady> WiFi> wifiMulti

Jak dodać wiele sieci Wi -Fi w ESP32

Aby dodać wiele sieci Wi -Fi na tablicy ESP32. Użyjemy Wifimulti funkcja z Addap (). Funkcja Addap () może akceptować wiele SSID i hasła jako argument. Aby dodać wiele sieci, ich SSID i hasła powinny być zdefiniowane osobno. Poniżej znajduje się składnia do dodania więcej niż jednej sieci za pomocą Wifimulti funkcja z Addap ():

Wifimulti.Addap („SSID Network1”, „Password1”);
Wifimulti.Addap („SSID Network2”, „hasło2”);
Wifimulti.Addap („SSID Network3”, „Password3”);

Jak połączyć się z najsilniejszą siecią WIFI w ESP32

Aby połączyć ESP32 z najsilniejszą dostępną siecią, połączymy skanowanie WIFI ESP32 i WIFI Multi przykład. Napiszemy kod w Arduino IDE, który wykona następujące kroki:

  • Skanuj dostępne sieci
  • Wydrukuj ich RSSI (siła sygnału) na monitorze szeregowym. Możemy więc sprawdzić najsilniejszą dostępną sieć
  • Automatycznie łączy się z najsilniejszą siecią
  • Jeśli przegra połączenie, automatycznie połączy się z następną dostępną najsilniejszą siecią

Aby przetestować kod, będziemy używać Smartfon Hotspot i sieć WiFi. Zawsze przypisz prostą nazwę do sieci mobilnej hotspotu, aby uniknąć błędów.

Teraz prześlij kod podany na płycie ESP32 za pomocą Arduino IDE.

Kod

Otwórz Arduino IDE i prześlij kod w ESP32. Pamiętaj, aby wybrać port COM.

#include /*biblioteka wifi zawiera* /
#Include /*Multi WIFI biblioteka zawierała* /
Wifimulti Wifimulti;
/*Na czas łączenia AP. Zwiększ, gdy ESP32 zajmuje więcej czasu na połączenie*/
const uint32_t ConnectTimeoutms = 10000;
void setup ()
Seryjny.rozpocząć (115200); /*Rozpoczyna się komunikacja szeregowa*/
opóźnienie (10);
Wifi.tryb (wifi_sta); /*ESP32 WiFi zainicjowane jako stacja*/
/*Wpisz wszystkie znane SSID i ich hasła*/
Wifimulti.Addap („Twój SSID”, „Hasło”); /*Sieć 1 chcemy podłączyć*/
Wifimulti.Addap („Phone”); /*Sieć 2 Chcemy podłączyć*/
// wifi.Scannetworks da całkowitą sieci
int n = wifi.ScannetWorks (); /*Skanowanie dostępnej sieci*/
Seryjny.println („skanowanie zrobione”);
if (n == 0)
Seryjny.println („brak dostępnych sieci”); /*Drukuje, jeśli nie znaleziono sieci*/

w przeciwnym razie
Seryjny.druk (n);
Seryjny.println („Sieci znalezione”); /*Drukuje, jeśli sieć znaleziono*/
dla (int i = 0; i < n; ++i)
Seryjny.wydrukować (i + 1); /*Wydrukuj SSID i RSSI dostępnej sieci*/
Seryjny.print („:”);
Seryjny.Drukuj (Wi -Fi.Ssid (i));
Seryjny.print („(”);
Seryjny.Drukuj (Wi -Fi.Rssi (i));
Seryjny.wydrukować(")");
Seryjny.println ((wifi.Szyfrowanie (i) == wifi_auth_open)?„”: „*”);
opóźnienie (10);


/*Łączy się z najsilniejszą dostępną zdefiniowaną siecią z dostępnym SSID i hasłem*/
Seryjny.println („Łączenie się z Wi -Fi…”);
if (wifimulti.run () == wl_connected)
Seryjny.println („”);
Seryjny.println („podłączony do sieci WIFI”);
Seryjny.println („Adres IP podłączonej sieci:”);
Seryjny.println (wifi.localIP ()); /*Drukuje adres IP podłączonej sieci*/


void Loop ()
if (wifimulti.run (ConnectTimeoutms) == wl_connected) /*Jeśli utracone połączenie połączy się z następną siecią* /
Seryjny.print („wifi połączone:”);
Seryjny.Drukuj (Wi -Fi.Ssid ());
Seryjny.druk („”);
Seryjny.println (wifi.Rssi ());

w przeciwnym razie
Seryjny.println („WiFi nie jest połączone!"); /*Jeśli wszystkie warunki nie powiedzą, wydrukuj to* /

opóźnienie (1000);

Kod rozpoczął się od zdefiniowania bibliotek Wi -Fi dla ESP32, a następnie stworzyliśmy Wifimulti obiekt. Następnie w części konfiguracji dodaliśmy dwie sieci. Jedna to sieć Wi -Fi, która jest szyfrowana hasłem, więc musimy podać hasło, podczas gdy druga sieć, która jest hotspotem smartfonów, jest otwarta, więc nie potrzebujemy hasła, po prostu wpisało sieć SSID.

Dalej, używając Wifimulti.uruchomić() Command ESP32 połączy się z dostępną najsilniejszą siecią. Po podłączeniu Wi -Fi wydrukuje podłączoną sieć SSID, adres IP i RSSI.

Wyjście

Po przesłaniu kodu do ESP32 najpierw skanuje dostępną sieć, wówczas połączy się z najsilniejszą dostępną siecią. Tutaj możemy zobaczyć wartość RSSI dla każdej sieci Niższe RSSI oznacza, że ​​silniejsza jest sieć.

Widzimy, że ESP32 jest podłączony do Sieć telefoniczna Ponieważ ma RSSI wartość -62 a druga sieć, której zdefiniowano SSID i hasło Zespół Sam Czyją jest wartość -73. Tutaj sieć mobilna Hotspot ma wartość RSSI bliżej zero oznacza silniejsze połączenie.

Teraz odłącz hotspot smartfonów. ESP32 połączy się z innymi silniejszymi dostępnymi sieciami. Jak na wyjściu możemy zobaczyć ESP32 jest teraz podłączony do kolejnej najsilniejszej dostępnej sieci. Sieć, do której jest podłączony, to zespół Sam ma wartość RSSI 0f -65.

Wniosek

ESP32 może połączyć się z najsilniejszą siecią dostępną w jej kręgu. Musimy tylko zdefiniować wiele sieci SSID i hasło wewnętrzne. Używając Wifimulti Funkcja ESP32 skanuje dla dostępnych sieci, a po zgubieniu połączenia połączy się z innymi dostępnymi sieciami w zakresie ESP32.