• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Остро необходимо управлять выходной мощностью WiFi в среде Arduino IDE

Rover

New member
Работаю над проектом, в котором, как ни странно, выходную мощность передатчика WiFi надо убавить до минимума. Потому что связь по вайфаю устанавливается с экшн-камерой, находящейся на расстоянии несколько сантиметров от модуля ESP, и эта связка находится на борту квадрокоптера. Проводной интерфейс камера не подерживает, с блютусом всё непросто, а через вайфай отлично. Но мощность надо занизить, дабы не создавать помехи приемнику радиоуправления. Модуль читает PPM сигнал с приемника, обрабатывает и транслирует на камеру команды сделать фото и старт/стоп видео.

Всё уже работает отлично, но поднимать в воздух источник помех, который при неосторожном использовании наглухо валит все беспроводные сети в радиусе нескольких квартир - боюсь. Впрочем и в других проектах возможность зажать мощность на время отладки не помешает.

Так вот, официальные AT-прошивки умеют управлять мощностью передатчика, а как это реализовать в среде Arduino IDE совершенно непонятно. Прошу подсказать.

Если на данный момент это невозможно, нижайшая просьба к разработчикам реализовать функцию в следующих релизах...
 

pvvx

Активный участник сообщества
Потому что связь ... устанавливается с ... находящейся на расстоянии несколько сантиметров
Поставьте развязку на простом самодельном (воздушном) трансформаторе из пару витков на интерфейс LAN, к примеру на 1Gbit :)
Мощность передатчика управляется в esp_init_data_default.bin. Описание в FLASH_DOWNLOAD_TOOLS_v2.4_150924.
Или по старту, командой system_phy_set_max_tpw(x).
Остальное касается только неверно выбранной системы программирования - Arduino IDE.
 
Последнее редактирование:

Rover

New member
Поставьте развязку на простом самодельном (воздушном) трансформаторе из пару витков на интерфейс LAN, к примеру на 1Gbit :)
Хм...не понял, что с чем развязывать трансформатором? Все это хозяйство ставится на коптер, где вес и габариты в общем случае жёстко лимитированы. Проблема в том, что приёмник радиоуправления коптера работает тоже на 2,4ГГц и мощный посторонний источник излучения на борту может задавить управление. Вскрывать камеру крайне нежелательно.
 

pvvx

Активный участник сообщества
Хм...не понял, что с чем развязывать трансформатором?
Вместо линии LAN ставится трансформатор. Одна "обмотка" (пару витков) на системе кардана камеры, вторая на теле коптера.
Такие решения иногда применяются для считывания защищенных устройств, где устройство находится в чехле и открывать его или иметь контакты нет возможности, к примеру из-за наличия грязи. Прикладывается приемный контур и через него производится связь хоть на 1 Gbit/s
Ethernet Transceivers или Ethernet Controllers не жрет много и не весит килограммы :)
И, да, там есть проблемы с простой реализацией, но они решаемы. Зато помех никаких.
 
Последнее редактирование:

Rover

New member
Регулировка мощности была нужна для модуля беспроводного управления камерой Xiaomi Yui, установленной на квадрокоптере. Чтобы не мешать бортовому оборудованию, мощность зажата в ноль, радиус действия 30-40 см. Проект успешно реализован и повторен множеством пользователей:
Модуль беспроводного управления камерой Xiaomi Yi - Дневники - RC Форум
Фрагменты кода, где реализовано управление мощностью, под спойлером.
Код:
#include <ESP8266WiFi.h>
// Connect the original libs of Expressiff SDK 1.4.0
#ifdef ESP8266
extern "C" {
#include "ets_sys.h"
#include "os_type.h"
#include "osapi.h"
#include "mem.h"
#include "user_interface.h"
#include "cont.h"
}
#endif
#define WIFI_TX_POWER 0 // TX power of ESP module (0 -> 0.25dBm) (0...85)
.
.
.
void setup() {
#ifdef ESP8266
  system_phy_set_max_tpw(WIFI_TX_POWER); //установка мощности через функцию SDK
#endif
.
.
.
 

Vlad_k

New member
WiFi.setOutputPower (0);
не пробовал?
упс не заметил дату первого поста...
 
Сверху Снизу