Увеличение подключений ESP32 AP max
Уже задавался вопрос, сколько клиентов могут подключиться к точке доступа ESP32, но ответ далеко не ясен; лучший вариант - полтора года назад (максимальное количество подключений к точке доступа ESP32: 4 или 10?) :
Ответ так же ясен, как и любые другие данные конфигурации EspressIf, это 4 или, может быть, 5, или 8, или 12, 16 или даже 20 (то же самое, что у ESP8266!)
Поскольку я пытаюсь перенести проект с ESP8266, потому что у него недостаточно подключений к точке доступа, можно задать два вопроса:
каково максимальное количество подключений к точкам доступа, поддерживаемых платформой 4.0 ESP-IDF ?
можно ли его каким - либо образом увеличить ?
Спасибо.
@stefanu, 👍1
2 ответа
Согласно документации:
uint8_t максимальное подключение
Максимальное количество станций, разрешенных для подключения, по умолчанию 4, максимум 4
Интерфейс Wi-Fi и точка доступа могут поддерживать до 10 подключений в своих внутренних структурах, но это практично только для использования сети Wi-Fi (которая не использует все 7 уровней модели ISO), а также для реальных подключений к станциям Wi-Fi, что влечет за собой выделение гораздо большего количества ресурсов (IP-адреса, таблицы ARP, и т.д.) поддерживается максимум 4.
Если вам нужно больше подключений, я предлагаю вам инвестировать в реальную точку доступа / маршрутизатор, который может справиться с управлением сетью за вас (т. Е. Точку доступа или маршрутизатор, которые могут выполнять DHCP и другие сетевые операции за вас, оставляя ваш ESP32 свободным для простой станции).
После некоторого тщательного тестирования с несколькими модулями (а не просто слепо доверяя документации), вот что я нашел.
Краткий ответ: максимум 10 подключений к точке доступа для ESP32 под управлением ESP-IDF 4.0 (обновлено примерно 1 марта 2020 года), и нет, его нельзя увеличить (легко).
Подробности :
- Максимальное количество подключений к точкам доступа определено где-то в libnet80211 и не может быть изменено, поскольку у меня нет доступа к исходному коду.
- когда 11-я станция пытается подключиться, libnet80211 выводит
I (39682043) wifi: максимальное соединение, отключение!
, более или менее похожий на ESP8266 для 5 - й станции - Изменение
ESP_WIFI_MAX_CONN_NUM
(определенного в esp_wifi_types.h: 258) с 10 на что-либо другое приводит к непредсказуемому поведению (я обозначаю это как непредсказуемое, поскольку без кода libnet80211 оно не может быть надежно оценено).
Я пока не отказываюсь от увеличения количества станций, так что, возможно, этот ответ будет обновлен.
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Питание esp32cam от аккумулятора
- Контакты RX и TX на esp32
- ESP32: отключить детектор отключения питания
это копия-вставка из документа esp8266, @Juraj
Нет, это * цитата * из документации ESP32. Отсюда и ссылка на документацию ESP32., @Majenko
Да, это цитата из документации, но насколько надежна документация?, @stefanu
Если вы выполните поиск в файлах ESP-IDF, вы найдете ESP_WIFI_MAX_CONN_NUM=10,, @stefanu
Похоже, что в 2016 году они перешли от связанного списка к статическому массиву для хранения подключенных станций. С тех пор размер этого статического массива изменился. По какой-то причине определение начиналось как 8, но массив был создан как 8 + 2. Затем определение изменилось на 10, и массив также был создан непосредственно из этого определения вместо добавления 2. Понятия не имею, какое значение имело значение "+2". Однако 10 не предназначен для Wi-Fi. Цифра 10 предназначена для сетки. Сколько подключений он поддерживает и сколько * разрешено* - это разные вещи. Сам Wi-Fi может * поддерживать * 10, что хорошо для использования в сети, но ..., @Majenko
... для фактической обработки подключений он ограничен всего 4 подключениями, поскольку активные подключения к стеку IP потребляют больше ресурсов., @Majenko
Спасибо вам за объяснение. Но второй вопрос все еще остается в силе ... можно ли его как - то изменить ?, @stefanu
@stefanu, наверное, нет. Если ЦАХАЛ ограничит это, то вы мало что сможете сделать. Вы можете попробовать вручную настроить режим точки доступа (кстати, я заметил, что в коде ESP-IDF для этого фактически устанавливается количество подключений равным 5 ...) или настроить
start_wifi_ap
и посмотреть, работает ли это. Однако это может быть и не так, так как у вас может закончиться память, @MajenkoСпасибо за информацию; Я нахожусь в процессе замены ESP8266 на ESP32, и вскоре я смогу протестировать ограничения точки доступа (как только получу больше чипов для тестирования). Я вернусь с результатами. Что я смог проверить до сих пор, так это то, что изменение
#определить ESP_WIFI_MAX_CONN_NUM 10
Для#define ESP_WIFI_MAX_CONN_NUM 16
затем, перестраивая все, изменяетsizeof (wifi_sta_list_t)
, так что ... может быть... просто может быть ... у нас есть шанс., @stefanu@Majenko : хорошо...документация НЕВЕРНА ! Без какого-либо взлома на более низких уровнях я смог подключить 8 станций в режиме APSTA. С другой стороны, изменение
ESP_WIFI_MAX_CONN_NUM
на большее значение приводит к странному поведению (например,esp_wifi_ap_get_sta_list
с треском проваливается). Я вернусь, как только у меня будет больше модулей для игры., @stefanu