Увеличение подключений ESP32 AP max

Уже задавался вопрос, сколько клиентов могут подключиться к точке доступа ESP32, но ответ далеко не ясен; лучший вариант - полтора года назад (максимальное количество подключений к точке доступа ESP32: 4 или 10?) :

Ответ так же ясен, как и любые другие данные конфигурации EspressIf, это 4 или, может быть, 5, или 8, или 12, 16 или даже 20 (то же самое, что у ESP8266!)

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

  1. каково максимальное количество подключений к точкам доступа, поддерживаемых платформой 4.0 ESP-IDF ?

  2. можно ли его каким - либо образом увеличить ?

Спасибо.

, 👍1


2 ответа


0

Согласно документации:

uint8_t максимальное подключение

Максимальное количество станций, разрешенных для подключения, по умолчанию 4, максимум 4

Интерфейс Wi-Fi и точка доступа могут поддерживать до 10 подключений в своих внутренних структурах, но это практично только для использования сети Wi-Fi (которая не использует все 7 уровней модели ISO), а также для реальных подключений к станциям Wi-Fi, что влечет за собой выделение гораздо большего количества ресурсов (IP-адреса, таблицы ARP, и т.д.) поддерживается максимум 4.

Если вам нужно больше подключений, я предлагаю вам инвестировать в реальную точку доступа / маршрутизатор, который может справиться с управлением сетью за вас (т. Е. Точку доступа или маршрутизатор, которые могут выполнять DHCP и другие сетевые операции за вас, оставляя ваш 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


2

После некоторого тщательного тестирования с несколькими модулями (а не просто слепо доверяя документации), вот что я нашел.

Краткий ответ: максимум 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 оно не может быть надежно оценено).

Я пока не отказываюсь от увеличения количества станций, так что, возможно, этот ответ будет обновлен.

,