Подключитесь к самой мощной сети Wi-Fi в ESP32, используя функцию WiFiMulti

Podklucites K Samoj Mosnoj Seti Wi Fi V Esp32 Ispol Zua Funkciu Wifimulti



ESP32 — это плата микроконтроллера на основе IoT с поддержкой Wi-Fi и Bluetooth. ESP32 может работать в трех разных режимах Wi-Fi (станция, доступ или оба). Используя все эти режимы, ESP32 может многократно улучшить беспроводную связь. Сегодня мы обсудим поддержку нескольких WiFi в ESP32 для подключения к самой мощной доступной сети.

ESP32 с многофункциональным WiFi

ESP32 может подключаться к нескольким сетям, если у нас есть доступ к более чем одной сети, нам просто нужно определить их SSID и пароль внутри кода. Он будет искать доступную сеть и подключаться к самой мощной сети Wi-Fi, которую мы определяем в коде.







Примечание: Помните, что он будет подключаться к одной сети за раз, если соединение с этой сетью будет потеряно, тогда ESP32 подключится к другим доступным сетям Wi-Fi.



Мы можем открыть пример WiFiMulti в Arduino IDE:



Перейти к : Файл > Примеры > WiFi > WifiMulti





Как добавить несколько сетей WiFi в ESP32

Чтобы добавить несколько сетей WiFi на плату ESP32. Мы будем использовать Wi-FiМульти функция с добавитьAP() . Функция addAP() может принимать несколько SSID и паролей в качестве аргумента. Чтобы добавить несколько сетей, их SSID и пароли должны быть определены отдельно. Ниже приведен синтаксис для добавления более одной сети с использованием Wi-FiМульти функция с добавитьAP() :



Wi-FiМульти. добавить точку доступа ( 'Сеть SSID1' , 'Пароль1' ) ;

Wi-FiМульти. добавить точку доступа ( 'Сеть SSID2' , 'Пароль2' ) ;

Wi-FiМульти. добавить точку доступа ( 'Сеть SSID3' , 'Пароль3' ) ;

Как подключиться к самой сильной сети Wi-Fi в ESP32

Чтобы подключить ESP32 к самой мощной доступной сети, мы объединим пример сканирования Wi-Fi ESP32 и нескольких WiFi. Мы напишем код в Arduino IDE, который будет выполнять следующие шаги:

  • Сканировать доступные сети
  • Распечатайте их RSSI (мощность сигнала) на последовательном мониторе. Итак, мы можем проверить самую сильную доступную сеть
  • Автоматически подключается к самой мощной сети
  • Если он потеряет соединение, он автоматически подключится к следующей доступной самой сильной сети.

Для тестирования кода мы будем использовать Смартфон точка доступа и сеть Wi-Fi. Всегда назначайте простое имя сети мобильной точки доступа, чтобы избежать ошибок.

Теперь загрузите код, указанный на плате ESP32, с помощью Arduino IDE.

Код

Откройте IDE Arduino и загрузите код в ESP32. Не забудьте выбрать COM-порт.

#include /*подключена библиотека WIFI*/

#include /*Мультибиблиотека WIFI включена*/

WiFiМультивайфайМульти ;
/* Время подключения к точке доступа. Увеличивайте, когда ESP32 требуется больше времени для подключения*/
константа uint32_t connectTimeoutMs знак равно 10000 ;
пустота настраивать ( ) {
Серийный. начинать ( 115200 ) ; /*Начинается последовательная связь*/
задерживать ( 10 ) ;
Wi-Fi. Режим ( WIFI_STA ) ; /*ESP32 WIFI инициализирован как станция*/
/*Введите все известные SSID и их пароли*/
Wi-FiМульти. добавить точку доступа ( 'ВАШ SSID' , 'ПАРОЛЬ' ) ; /*Сеть 1, к которой мы хотим подключиться*/
Wi-FiМульти. добавить точку доступа ( 'Телефон' ) ; /*Сеть 2, к которой мы хотим подключиться*/
// WiFi.scanNetworks даст общее количество сетей
инт н знак равно Wi-Fi. сканирование сетей ( ) ; /*Поиск доступной сети*/
Серийный. печать ( 'скан выполнен' ) ;
если ( н == 0 ) {
Серийный. печать ( «Нет доступных сетей» ) ; /*Печать, если сеть не найдена*/
}
еще {
Серийный. Распечатать ( н ) ;
Серийный. печать ( 'Найдены сети' ) ; /*Печать, если сеть найдена*/
за ( инт я знак равно 0 ; я < н ; ++ я ) {
Серийный. Распечатать ( я + 1 ) ; /*Вывести SSID и RSSI доступной сети*/
Серийный. Распечатать ( ':' ) ;
Серийный. Распечатать ( Wi-Fi. SSID ( я ) ) ;
Серийный. Распечатать ( '(' ) ;
Серийный. Распечатать ( Wi-Fi. RSSI ( я ) ) ;
Серийный. Распечатать ( ')' ) ;
Серийный. печать ( ( Wi-Fi. Тип шифрования ( я ) == WIFI_AUTH_OPEN ) ? ' ' : '*' ) ;
задерживать ( 10 ) ;
}
}
/*Подключается к самой надежной доступной определенной сети с доступными SSID и паролем*/
Серийный. печать ( 'Подключение к Wi-Fi...' ) ;
если ( Wi-FiМульти. бежать ( ) == WL_CONNECTED ) {
Серийный. печать ( '' ) ;
Серийный. печать ( 'Подключено к сети Wi-Fi' ) ;
Серийный. печать ( 'IP-адрес подключенной сети: ' ) ;
Серийный. печать ( Wi-Fi. локальный IP ( ) ) ; /*Выводит IP-адрес подключенной сети*/
}
}
пустота петля ( ) {
если ( Wi-FiМульти. бежать ( connectTimeoutMs ) == WL_CONNECTED ) { /*если соединение потеряно, оно подключится к следующей сети*/
Серийный. Распечатать ( «Wi-Fi подключен:» ) ;
Серийный. Распечатать ( Wi-Fi. SSID ( ) ) ;
Серийный. Распечатать ( ' ' ) ;
Серийный. печать ( Wi-Fi. RSSI ( ) ) ;
}
еще {
Серийный. печать ( 'Wi-Fi не подключен!' ) ; /*если все условия не выполняются, вывести это*/
}
задерживать ( 1000 ) ;
}

Код начался с определения библиотек WiFi для ESP32, затем мы создали WiFiМульти объект. Далее в части настройки мы добавили две сети. Одна из них — сеть Wi-Fi, зашифрованная паролем, поэтому мы должны указать пароль, в то время как вторая сеть, представляющая собой точку доступа смартфона, открыта, поэтому нам не нужен пароль, просто введите сетевой SSID.

Далее, используя wifiMulti.run() команда ESP32 подключится к доступной самой сильной сети. После подключения Wi-Fi код напечатает SSID подключенной сети, IP-адрес и RSSI.

Выход

После загрузки кода в ESP32 сначала он просканирует доступную сеть, а затем подключится к самой мощной доступной сети. Здесь мы можем видеть значение RSSI для каждой сети: чем ниже RSSI, тем сильнее сеть.

  Автоматически сгенерированное текстовое описание

Мы видим, что ESP32 подключен к телефонная сеть потому что у него есть RSSI ценность -62 а другая сеть, SSID и пароль которой определены, Команда СЭМ значение которого -73. Здесь сеть мобильной точки доступа имеет значение RSSI, близкое к нулю, что означает более сильное соединение.

Теперь отключите точку доступа смартфона. ESP32 будет подключаться к другим более сильным доступным сетям. Как видно из вывода, ESP32 теперь подключен к следующей самой мощной доступной сети. Сеть, к которой он подключен, представляет собой Team SAM со значением RSSI 0f -65.

Вывод

ESP32 может подключаться к самой мощной сети, доступной в своем кругу. Нам просто нужно определить несколько сетей SSID и пароль внутри кода. С использованием WiFiМульти Функция ESP32 будет сканировать доступные сети, а при потере соединения будет подключаться к другим доступным сетям в пределах диапазона ESP32.