В данной статье мы научимся настраивать плату ESP32 в режиме программной точки доступа (soft-AP) с помощью ESP-IDF. Статья включает в себя объяснения необходимых API для подключения к Wi-Fi, подробную информацию о драйвере Wi-Fi, а также пример скетча для ESP-IDF, демонстрирующий работу платы ESP32 в качестве точки доступа и позволяющего другим устройствам подключаться к ESP32 AP.
У нас также есть руководство по настройке ESP32 в режиме станции Wi-Fi с использованием ESP-IDF.
Также на нашем сайте вы можете прочитать статью про использование Wi-Fi в ESP32-S3 с помощью ESP-IDF — возможно, некоторые аспекты работы с Wi-FI в ней рассмотрены более понятным для вас языком.
Прежде чем продолжить, убедитесь, что у вас установлена последняя версия VS Code и настроено расширение ESP-IDF:
- Установка ESP32 ESP-IDF на Windows и его интеграция с Visual Studio Code
- Установка ESP32 ESP-IDF на Linux Ubuntu
Дополнительно на нашем сайте вы можете прочитать статью про начало работы с ESP32 с использованием ESP-IDF.
Введение в точки доступа (AP)
Режим программной точки доступа (Soft-Access point/AP) также известен как «программно-управляемая точка доступа». Действуя как «виртуальный маршрутизатор», программная точка доступа объединяет программное обеспечение, которое настраивает плату ESP32 в качестве беспроводной точки доступа. Поскольку отсутствует подключение к проводной сети, она называется Soft-AP. Так как физический маршрутизатор не требуется, использование ESP32 в режиме Soft-AP является выгодным. В этом режиме ESP32 может создавать собственную беспроводную сеть, к которой могут подключаться находящиеся поблизости устройства с поддержкой Wi-Fi, выступая таким образом в качестве точки доступа.
API ESP32 для работы Wi-Fi с помощью ESP-IDF
Давайте сначала обсудим некоторые важные функции, необходимые для работы ESP32 в качестве точки доступа. ESP-IDF предоставляет библиотеку esp_wifi.h , которая используется для настройки и мониторинга работы сети Wi-Fi на ESP32. Это включает в себя настройку режимов точки доступа и клиента Wi-Fi в различных режимах безопасности, например, WPA, WEP и т. д., мониторинг пакетов Wi-Fi и сканирование ближайших точек доступа. В этом руководстве мы сосредоточимся на том, как подключить станции к ESP32, настроив нашу плату ESP32 в режиме точки доступа/программной точки доступа/точки доступа. Давайте посмотрим, как это будет сделано.
Первым шагом является подключение заголовочного файла:
|
1 |
#include "esp_wifi.h" |
Конфигурация
Начнем с инициализации ресурса выделения Wi-Fi для драйвера Wi-Fi. Он отвечает за запуск задачи Wi-Fi
|
1 |
esp_wifi_init(const wifi_init_config_t *config) |
Функция принимает один параметр config, который представляет собой указатель на уже инициализированную структуру конфигурации Wi-Fi. Обычно мы устанавливаем структуру конфигурации Wi-Fi в значение WIFI_INIT_CONFIG_DEFAULT() , чтобы инициализация конфигурации происходила со значениями по умолчанию. Это показано ниже:
|
1 |
wifi_init_config_t wifi_config = WIFI_INIT_CONFIG_DEFAULT(); |
Здесь wifi_init_config_t — это структура, обозначающая параметры конфигурации стека Wi-Fi, передаваемые в функцию esp_wifi_init().
Далее мы настроим режим Wi-Fi. Как упоминалось ранее, библиотека ESP-IDF Wi-Fi поддерживает несколько режимов работы Wi-Fi. Для установки режима Wi-Fi мы используем функцию esp_wifi_set_mode() и передаем в нее режим Wi-Fi в качестве параметра. По умолчанию режим установлен на station. Мы можем установить режим на station, soft-AP или оба (station + soft-AP). Параметр может принимать одно из трех значений:
- WIFI_MODE_STA (режим станции);
- WIFI_MODE_AP (для режима программной точки доступа);
- WIFI_MODE_APSTA (для режима станции + программной точки доступа).
|
1 |
esp_wifi_set_mode(wifi_mode_t mode) |
Запуск Wi-Fi
Для запуска Wi-Fi-соединения в заданных настройках вызывается функция esp_wifi_start() . В зависимости от настроенного режима, она сначала создает свой блок управления, а затем инициализирует этот режим.
|
1 |
esp_wifi_start(void) |
Для подключения платы ESP32, установленной в режиме станции, к точке доступа используется функция esp_wifi_connect() . Эта функция применима только в том случае, если настроен режим «станция» или «станция + программная точка доступа».
|
1 |
esp_wifi_connect(void) |
Примечание: эта функция недоступна в режиме Soft-AP. Там она не требуется.
Особенности Wi-Fi на ESP32
ESP32 Wi-Fi поддерживает четыре виртуальных интерфейса Wi-Fi: STA, AP, Sniffer и Reserved. Более того, плата ESP32 может быть сконфигурирована в трех режимах: режим станции, режим программной точки доступа и одновременно режимы станции и программной точки доступа. Ниже мы привели еще несколько особенностей ESP32 Wi-Fi.
- Протокол ESP-NOW и режим дальней связи поддерживают передачу данных на расстояние до 1 км.
- Максимальная пропускная способность TCP по беспроводной сети составляет 20 Мбит/с.
- Кроме того, она обеспечивает максимальную пропускную способность UDP в беспроводной сети до 30 Мбит/с.
- В сочетании с различными стандартами безопасности, включая WPA/WPA2/WPA3/WPA2-Enterprise/WPA3-Enterprise/WAPI/WPS и DPP.
- IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, а также API для настройки режима протокола.
- AMSDU, AMPDU, HT40, QoS, спящий режим модема, несколько антенн.
Настройка ESP32 в качестве программной точки доступа с использованием ESP-IDF
В режиме программной точки доступа (soft-AP) плата ESP32 выступает в качестве точки доступа, позволяя находящимся поблизости устройствам подключаться к ней. Давайте рассмотрим пример скетча, предоставленный ESP-IDF, чтобы узнать, как настроить ESP32 в качестве точки доступа.
Создание примера проекта
Откройте VS Code и перейдите в меню View > Command Palette («Вид» > «Палитра команд»). Введите в строке поиска ESP-IDF: New Project и нажмите Enter.
Укажите название проекта и каталог. Мы назвали наш проект «ESP_IDF_WIFI_AP». Для платы ESP-IDF мы выбрали опцию custom board («Пользовательская плата»). В качестве целевой платформы ESP-IDF мы выбрали модуль ESP32. Нажмите кнопку ‘Choose Template’ («Выбрать шаблон»), чтобы продолжить.
В разделе Extension («Расширение») выберите опцию ESP-IDF:
На вкладке getting_started («Начало работы») для Wi-Fi мы нажмем на «softAP». Теперь нажмем ‘Create project using template softAP’ («Создать проект, используя шаблон softAP«).
Вы получите уведомление о создании проекта. Чтобы открыть проект в новом окне, нажмите «Да».
Это открывает наш проект ESP_IDF_WIFI_AP, который мы создали во вкладке EXPLORER. Внутри папки проекта находится несколько папок. Это одинаково для всех проектов, которые вы будете создавать через ESP-IDF Explorer. В основной папке находится исходный код, то есть файл main.c будет находиться именно здесь.
Редактирование файла Kconfig
Сначала перейдите в main > Kconfig.projbuild
Этот файл содержит определения различных параметров, включая ESP_WIFI_SSID, ESP_WIFI_PASSWORD, ESP_WIFI_CHANNEL и ESP_MAX_STA_CONN. Вы можете добавить и другие параметры по своему усмотрению между ключевыми словами меню и конечного меню. Вы можете установить значения, выделенные ниже, в этом файле. Рекомендуется задать сетевые учетные данные для вашей платы ESP32, включая SSID и пароль. Вместо того чтобы жестко прописывать их в файле main.c, удобнее определить эти параметры здесь. Определите их по своему усмотрению, а затем сохраните этот файл.
Теперь перейдите в файл main > softap_example_main.c и откройте его.
Ниже приведён код, который открывается в этом окне. В этом примере сначала настраивается режим точки доступа (AP) для платы ESP32, а затем разрешается подключение к ней станций. По умолчанию к плате ESP32 могут подключаться максимум 4 станции. Однако этот параметр можно изменить в файле Kconfig, как упоминалось ранее.
Код ESP-IDF для настройки ESP32 в качестве точки доступа
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
/* WiFi softAP Example This example code is in the Public Domain (or CC0 licensed, at your option.) Unless required by applicable law or agreed to in writing, this software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_system.h" #include "esp_wifi.h" #include "esp_event.h" #include "esp_log.h" #include "nvs_flash.h" #include "lwip/err.h" #include "lwip/sys.h" /* The examples use WiFi configuration that you can set via project configuration menu. If you'd rather not, just change the below entries to strings with the config you want - ie #define EXAMPLE_WIFI_SSID "mywifissid" */ #define EXAMPLE_ESP_WIFI_SSID CONFIG_ESP_WIFI_SSID #define EXAMPLE_ESP_WIFI_PASS CONFIG_ESP_WIFI_PASSWORD #define EXAMPLE_ESP_WIFI_CHANNEL CONFIG_ESP_WIFI_CHANNEL #define EXAMPLE_MAX_STA_CONN CONFIG_ESP_MAX_STA_CONN static const char *TAG = "wifi softAP"; static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { if (event_id == WIFI_EVENT_AP_STACONNECTED) { wifi_event_ap_staconnected_t* event = (wifi_event_ap_staconnected_t*) event_data; ESP_LOGI(TAG, "station "MACSTR" join, AID=%d", MAC2STR(event->mac), event->aid); } else if (event_id == WIFI_EVENT_AP_STADISCONNECTED) { wifi_event_ap_stadisconnected_t* event = (wifi_event_ap_stadisconnected_t*) event_data; ESP_LOGI(TAG, "station "MACSTR" leave, AID=%d", MAC2STR(event->mac), event->aid); } } void wifi_init_softap(void) { ESP_ERROR_CHECK(esp_netif_init()); ESP_ERROR_CHECK(esp_event_loop_create_default()); esp_netif_create_default_wifi_ap(); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_wifi_init(&cfg)); ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL, NULL)); wifi_config_t wifi_config = { .ap = { .ssid = EXAMPLE_ESP_WIFI_SSID, .ssid_len = strlen(EXAMPLE_ESP_WIFI_SSID), .channel = EXAMPLE_ESP_WIFI_CHANNEL, .password = EXAMPLE_ESP_WIFI_PASS, .max_connection = EXAMPLE_MAX_STA_CONN, .authmode = WIFI_AUTH_WPA_WPA2_PSK }, }; if (strlen(EXAMPLE_ESP_WIFI_PASS) == 0) { wifi_config.ap.authmode = WIFI_AUTH_OPEN; } ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP)); ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config)); ESP_ERROR_CHECK(esp_wifi_start()); ESP_LOGI(TAG, "wifi_init_softap finished. SSID:%s password:%s channel:%d", EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS, EXAMPLE_ESP_WIFI_CHANNEL); } void app_main(void) { //Initialize NVS esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ESP_ERROR_CHECK(nvs_flash_erase()); ret = nvs_flash_init(); } ESP_ERROR_CHECK(ret); ESP_LOGI(TAG, "ESP_WIFI_MODE_AP"); wifi_init_softap(); } |
Как работает код?
Для начала мы подключим необходимые библиотеки, включая библиотеки FreeRTOS для генерации задержек, esp_wifi.h для включения Wi-Fi-соединения, esp_event.h для мониторинга событий Wi-Fi и esp_log.h в качестве библиотеки для ведения журналов.
|
1 2 3 4 5 6 7 8 9 10 11 |
#include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_system.h" #include "esp_wifi.h" #include "esp_event.h" #include "esp_log.h" #include "nvs_flash.h" #include "lwip/err.h" #include "lwip/sys.h" |
Далее мы определили параметры, которые задали в файле Kconfig. Если вы уже определили эти параметры в этом файле, то нет необходимости жестко прописывать значения здесь. Однако, если вы хотите определить эти параметры в файле main.c, то укажите их в двойных кавычках. Например: #define EXAMPLE_WIFI_SSID “ESP32-Soft-AP”
|
1 2 3 4 |
#define EXAMPLE_ESP_WIFI_SSID CONFIG_ESP_WIFI_SSID #define EXAMPLE_ESP_WIFI_PASS CONFIG_ESP_WIFI_PASSWORD #define EXAMPLE_ESP_WIFI_CHANNEL CONFIG_ESP_WIFI_CHANNEL #define EXAMPLE_MAX_STA_CONN CONFIG_ESP_MAX_STA_CONN |
Этот код использует информационное логирование. Функция логирования принимает два аргумента. Первый аргумент — это тег, а второй — отформатированная строка. Поэтому эта глобальная переменная будет полезна при вызове функций ESP_LOGI(). Здесь «wifi softAP» — это тег, который будет использоваться при логировании.
|
1 |
static const char *TAG = "wifi softAP"; |
event_handler()
У нас есть функция event_handler(), которая обрабатывает события Wi-Fi. Она действует как функция обратного вызова при возникновении любого события Wi-Fi. Драйвер Wi-Fi отправляет в задачу обработки событий различные события. Два из них: WIFI_EVENT_AP_STACONNECTED и WIFI_EVENT_AP_STADISCONNECTED. Первое событие происходит, если станция подключается к точке доступа. Аналогично, второе событие происходит, если станция отключается от точки доступа. В нашей функции event_handler() мы проверяем, соответствует ли идентификатор события Wi-Fi одному из этих двух событий. Если да, то в терминал будет выведен MAC-адрес станции вместе с соответствующим сообщением в зависимости от типа события.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { if (event_id == WIFI_EVENT_AP_STACONNECTED) { wifi_event_ap_staconnected_t* event = (wifi_event_ap_staconnected_t*) event_data; ESP_LOGI(TAG, "station "MACSTR" join, AID=%d", MAC2STR(event->mac), event->aid); } else if (event_id == WIFI_EVENT_AP_STADISCONNECTED) { wifi_event_ap_stadisconnected_t* event = (wifi_event_ap_stadisconnected_t*) event_data; ESP_LOGI(TAG, "station "MACSTR" leave, AID=%d", MAC2STR(event->mac), event->aid); } } |
wifi_init_softap()
Функция wifi_init_softap() будет вызываться внутри функции app_main() для инициализации Wi-Fi в режиме программной точки доступа для ESP32.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
void wifi_init_softap(void) { ESP_ERROR_CHECK(esp_netif_init()); ESP_ERROR_CHECK(esp_event_loop_create_default()); esp_netif_create_default_wifi_ap(); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_wifi_init(&cfg)); ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL, NULL)); wifi_config_t wifi_config = { .ap = { .ssid = EXAMPLE_ESP_WIFI_SSID, .ssid_len = strlen(EXAMPLE_ESP_WIFI_SSID), .channel = EXAMPLE_ESP_WIFI_CHANNEL, .password = EXAMPLE_ESP_WIFI_PASS, .max_connection = EXAMPLE_MAX_STA_CONN, .authmode = WIFI_AUTH_WPA_WPA2_PSK }, }; if (strlen(EXAMPLE_ESP_WIFI_PASS) == 0) { wifi_config.ap.authmode = WIFI_AUTH_OPEN; } ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP)); ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config)); ESP_ERROR_CHECK(esp_wifi_start()); ESP_LOGI(TAG, "wifi_init_softap finished. SSID:%s password:%s channel:%d", EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS, EXAMPLE_ESP_WIFI_CHANNEL); } |
ESP-IDF предоставляет полезный макрос ESP_ERROR_CHECK(), который используется для проверки наличия или отсутствия ошибки.
Здесь мы инициализируем lwIP с помощью функции esp_netif_init() и создаём задачу IwIP, также известную как задача TCP/IP. lwIP — это стек библиотек TCP/IP, предоставляемый ESP-IDF, который используется для выполнения различных протоколов, таких как TCP, UDP, DHCP и т. д.
|
1 |
ESP_ERROR_CHECK(esp_netif_init()); |
Далее мы создаём цикл обработки событий по умолчанию, который позволяет отправлять системные события в задачу обработки событий.
|
1 |
ESP_ERROR_CHECK(esp_event_loop_create_default()); |
Кроме того, следующая строка используется для инициализации Wi-Fi по умолчанию в режиме точки доступа. Этот API используется для инициализации, а также регистрации обработчиков событий для интерфейса по умолчанию, который в нашем случае является точкой доступа. Он создает экземпляр сетевого интерфейса, связывающий драйвер Wi-Fi и стек TCP/IP. Эта функция отвечает за создание объекта esp_netif с конфигурацией точки доступа Wi-Fi по умолчанию, подключение netif к Wi-Fi и регистрацию обработчиков Wi-Fi по умолчанию.
|
1 |
esp_netif_create_default_wifi_ap(); |
Настройка Wi-Fi
Затем мы инициализируем ресурс выделения Wi-Fi для драйвера Wi-Fi. Он отвечает за запуск задачи Wi-Fi. Он принимает единственный параметр cfg, который является указателем на уже инициализированную структуру конфигурации Wi-Fi, установленную в значение WIFI_INIT_CONFIG_DEFAULT(), так что инициализация конфигурации происходит со значениями по умолчанию. Здесь wifi_init_config_t — это структура, обозначающая параметры конфигурации стека Wi-Fi, которые передаются в функцию esp_wifi_init().
|
1 2 |
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_wifi_init(&cfg)); |
Далее, мы регистрируем экземпляр обработчика событий. Таким образом, задача приложения может зарегистрироваться для получения функции обратного вызова, которая будет прослушивать события Wi-Fi. Событие называется ‘ESP_EVENT_ANY_ID‘. Следовательно, она будет прослушивать все события Wi-Fi (ESP_EVENT_ANY_ID), и функция обратного вызова event_handler будет вызвана, если оно произойдет.
|
1 2 3 4 5 |
ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL, NULL)); |
В этой части мы задаём SSID и пароль сети, к которой хотим подключить наш ESP32, а также назначаем параметры безопасности для настройки Wi-Fi.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
wifi_config_t wifi_config = { .ap = { .ssid = EXAMPLE_ESP_WIFI_SSID, .ssid_len = strlen(EXAMPLE_ESP_WIFI_SSID), .channel = EXAMPLE_ESP_WIFI_CHANNEL, .password = EXAMPLE_ESP_WIFI_PASS, .max_connection = EXAMPLE_MAX_STA_CONN, .authmode = WIFI_AUTH_WPA_WPA2_PSK }, }; if (strlen(EXAMPLE_ESP_WIFI_PASS) == 0) { wifi_config.ap.authmode = WIFI_AUTH_OPEN; } |
Кроме того, мы устанавливаем режим Wi-Fi как точку доступа (AP). Для этого мы используем функцию esp_wifi_set_mode() и передаем в качестве параметра параметр WiFI_MODE_AP .
|
1 |
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP)); |
Затем мы назначаем SSID и пароль нашей сети. Таким образом, драйвер Wi-Fi настраивается с использованием учетных данных сети точки доступа и режима Wi-Fi.
|
1 |
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config)); |
Запуск Wi-Fi
Затем мы запускаем Wi-Fi-соединение с заданными нами настройками.
|
1 |
ESP_ERROR_CHECK(esp_wifi_start() ); |
На этом этапе в журнале информации отображается сообщение wifi_init_softap finished, а также сведения о SSID и пароле точки доступа. Процесс инициализации Wi-Fi в режиме точки доступа завершен.
|
1 2 |
ESP_LOGI(TAG, "wifi_init_softap finished. SSID:%s password:%s channel:%d", EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS, EXAMPLE_ESP_WIFI_CHANNEL); |
app_main()
Внутри функции app_main() мы сначала инициализируем NVS, вызвав функцию nvs_flash_init(). Затем мы проверим, не содержит ли раздел NVS пустых страниц или содержит ли он данные в формате, отличном от текущей версии кода. Если хотя бы одно из этих условий выполняется, мы сотрём флэш-память NVS с помощью функции nvs_flash_erase() и инициализируем её заново.
Затем мы выведем в терминале “ESP_WIFI_MODE_AP” и вызовем функцию wifi_init_softap() для инициализации Wi-Fi в режиме программной точки доступа (soft-AP).
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
void app_main(void) { //Initialize NVS esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ESP_ERROR_CHECK(nvs_flash_erase()); ret = nvs_flash_init(); } ESP_ERROR_CHECK(ret); ESP_LOGI(TAG, "ESP_WIFI_MODE_AP"); wifi_init_softap(); } |
Компиляция скетча
Для прошивки микросхемы введите следующую команду в последовательном терминале. Не забудьте заменить COM-порт на тот, через который подключена ваша плата.
|
1 |
idf.py -p COMX flash monitor |
После успешной прошивки кода вы сможете просмотреть все информационные журналы.
Сначала в терминале отображается сообщение «ESP_WIFI_MODE_AP». Затем следует сообщение «wifi_init_softap finished», указывающее на то, что плата ESP32 теперь работает как точка доступа.
Теперь используйте свой ноутбук или мобильный телефон для подключения к сети Wi-Fi платы ESP32. Откройте устройство с поддержкой Wi-Fi и перейдите в раздел Wi-Fi. Найдите доступные сети Wi-Fi. Здесь вы увидите SSID вашей платы ESP32, который вы определили в файле Kconfig. В нашем случае мы установили SSID как ‘ESP32-Soft-AP’.
Нажмите на него и введите установленный вами пароль.
Теперь подключитесь к этой сети. На этом этапе, пока идёт процесс подключения, наш терминал ESP-IDF отображает следующие сообщения в журнале:
После успешного подключения станции к плате ESP32, работающей в режиме точки доступа, в журнале отображается MAC-адрес станции вместе с назначенным ей IP-адресом.
Это информационные записи в логах, которые выводятся при инициализации программного AP для ESP32, начале подключения станции к AP и при успешном подключении к нему.
Аналогично, если станция отключается от точки доступа, также выводятся соответствующие сообщения, как показано ниже:
Вам также может быть интересно прочитать:
