Перейти к содержанию

Как уменьшить мощность передатчика Wi-Fi на ESP32?

Обновлено Редакция GAW

ESP32 по умолчанию передаёт с мощностью около 20 дБм — это предел для режима 802.11b. Уменьшать её имеет смысл, когда точка доступа рядом: так снижаются пики тока, от которых при слабом питании модуль перезагружается, и помехи соседним устройствам.

Как задать мощность

// ESP-IDF: limit Wi-Fi TX power to 13 dBm (esp_wifi.h, v6.1)
ESP_ERROR_CHECK(esp_wifi_start());
ESP_ERROR_CHECK(esp_wifi_set_max_tx_power(52));   // 52 * 0.25 dBm = 13 dBm
int8_t p;
esp_wifi_get_max_tx_power(&p);                    // read back the actual step

Значение задаётся в четвертях дБм и округляется вниз до ближайшей ступени:

АргументФактическое значениеМощность
8–1982 дБм
34–43348,5 дБм
44–514411 дБм
52–555213 дБм
60–656015 дБм
72–797218 дБм
80–848020 дБм

Полный список ступеней — в описании функции в esp_wifi.h. Перевести дБм в милливатты можно в калькуляторе децибел: 13 дБм — это 20 мВт, 20 дБм — 100 мВт.

Что это даёт

По даташиту ESP32 ток передачи зависит от режима и мощности: 240 мА при +19,5 дБм в 802.11b и 180 мА при +14 дБм в 802.11n. Если модуль перезагружается при подключении к сети, причина обычно в просадке питания — разбор в ответе «Почему ESP32 перезагружается при включении Wi-Fi», а снижение мощности лишь уменьшает пики.

Дальность при этом падает: 6 дБ меньше — примерно вдвое короче связь в свободном пространстве (статья «Бюджет радиолинии»). Мощность, которую видит регулятор, учитывает и усиление антенны — это ЭИИМ. Выводы и режимы питания модуля — на странице ESP32.

Похожие вопросы

Почему esp_wifi_set_max_tx_power возвращает ошибку?

Чаще всего потому, что функция вызвана до esp_wifi_start(): по описанию в esp_wifi.h тогда возвращается ESP_ERR_WIFI_NOT_STARTED. Значение вне диапазона 8–84 даёт ESP_ERR_INVALID_ARG.

Насколько уменьшится дальность при снижении мощности с 20 до 8,5 дБм?

Это 11,5 дБ. В свободном пространстве потери растут на 6 дБ при удвоении расстояния, поэтому дальность уменьшится примерно в 3,8 раза (наш расчёт: 10 в степени 11,5/20). В помещении из-за стен и отражений оценка грубее — подробнее в статье о бюджете радиолинии.

Снизится ли ток потребления?

Пиковый ток передачи снижается: по даташиту ESP32 передача 802.11b на +19,5 дБм потребляет 240 мА, а 802.11n на +14 дБм — 180 мА. Приём при этом остаётся на уровне 95–100 мА, поэтому средний ток зависит от того, какую долю времени модуль передаёт.

Источники

  1. Espressif Systems. ESP-IDF v6.1, components/esp_wifi/include/esp_wifi.h — esp_wifi_set_max_tx_power(int8_t power): вызывать после старта Wi-Fi, до старта мощность ограничена данными PHY init; единица 0,25 дБм, диапазон [8, 84] — 2–20 дБм; соответствие заданного и фактического значения: [8, 19] → 8, [20, 27] → 20, [28, 33] → 28, [34, 43] → 34, [44, 51] → 44, [52, 55] → 52, [56, 59] → 56, [60, 65] → 60, [66, 71] → 66, [72, 79] → 72, [80, 84] → 80; ошибки ESP_ERR_WIFI_NOT_STARTED и ESP_ERR_INVALID_ARG; esp_wifi_get_max_tx_power возвращает значение в тех же единицах
  2. Espressif Systems. ESP32 Series Datasheet, Version 5.3 — табл. 5-4: передача 802.11b 1 Мбит/с при +19,5 дБм — 240 мА, 802.11g 54 Мбит/с при +16 дБм — 190 мА, 802.11n MCS7 при +14 дБм — 180 мА, приём 95–100 мА; табл. 5-6: мощность 11b — 18,5…20,5 дБм (тип. 19,5), 11n MCS7 — 12…14 дБм; примечание 3: целевая мощность настраивается под требования сертификации

Нашли ошибку?