Tutorial 02 · удалённое управление

Зарегистрируйте Work-ноду и управляйте ею через Management

Подключите Management на ESP32-C3 с OLED к Work-ноде HW747 по ESP-NOW, проверьте её состояние и измените цвет RGB LED удалённой командой.

Создаём простейшую сеть

В первом уроке вы работали с одной Work-нодой: прошили её, вошли в terminal и управляли встроенным LED в локальном режиме. Теперь объединим устройства в сеть fsm32.

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

Чтобы объединить ноды в единую сеть, нужен Management-узел. Он регистрирует устройства и хранит каталог доступных сервисов. Management также может использоваться для наблюдения за состоянием нод и как дублирующий канал управления, когда основная логика продолжает работать на Work-устройствах. Связи между сервисами создаются отдельным механизмом и рассматриваются в следующем уроке.

На этом этапе создадим минимальную сеть: подключим Management к единственной Work-ноде ESP32-S3 SuperMini HW747 из первого урока. Затем зарегистрируем ноду по ESP-NOW, посмотрим её сервисы и удалённо изменим цвет встроенного RGB LED.

В результате вы научитесь подключать Management к Work по ESP-NOW, регистрировать Work в его каталоге, просматривать сервисы и отправлять удалённые команды RGB.

Оборудование для урока
РольПлата и образПример порта
ManagementESP32-C3 + OLED 0.42″
fsm32-node-manager.bin
COM5
WorkESP32-S3 SuperMini HW747 из Tutorial 01
fsm32-node-work-rgb.bin
COM4
Альтернатива для объекта: вместо C3 + OLED — настенная панель Waveshare 7″ (fsm32-node-manager-lcd7, ESP32-S3-TOUCH-LCD-7). ESP-NOW и CLI те же; в одной сети только один hub. На панели live: Wi‑Fi («Настройки → Сеть»), Work («Ноды»), комнаты и привязки («Комнаты»), а после привязки — управление лампами и макросами с экрана «Комната» (SET_VALUE). В этом уроке путь через CLI сохранён для C3; на панели тот же RGB можно включить из «Комната», если лампа привязана к CmdR/G/B. Bridge: WebAPI → IP панели :3333 — см. Скачать и FAQ на главной.
Перед началом: Work должна работать в mode normal. Если после первого урока она осталась в mode local, откройте её terminal и выполните mode normal.

Прошейте готовый образ Management

Файл fsm32-node-manager.bin — объединённый flash-образ для ESP32-C3 + OLED. Он записывается с адреса 0x0; сборка исходников не требуется. Закройте monitor и все программы, использующие COM-порт, затем в PowerShell с активированным ESP-IDF выполните:

cd C:\fsm32\firmware
esptool.py --chip esp32c3 --port COM5 --baud 460800 write-flash 0x0 fsm32-node-manager.bin

Замените COM5 на порт вашей платы. Успешная запись обычно заканчивается строкой Hash of data verified.

Откройте serial monitor Management:

python -m serial.tools.miniterm COM5 115200

Нажмите ~, дождитесь terminal> и выполните help. Management не исполняет локальную FSM и не принимает mode local: управление удалённой Work выполняется из mode normal.

Проверьте общий ESP-NOW контур

ESP-NOW — протокол Espressif для прямого беспроводного обмена между ESP32 без Wi-Fi роутера. В fsm32 он служит транспортом сообщений между нодами. Каждая плата имеет уникальный MAC-адрес, по которому к ней обращается Management.

Для связи должны совпадать channel — радиоканал обмена — и PMK, общий секрет сети. Готовые образы уже содержат согласованные параметры, поэтому их не нужно настраивать вручную.

  1. В terminal Management выполните espnow и запишите channel и состояние enabled.
  2. Откройте monitor Work, войдите через ~ и выполните espnow.
  3. Убедитесь, что ESP-NOW включён и обе платы работают на одном channel. Закройте второй monitor или оставьте его открытым для визуальной проверки LED.

PMK — общий секрет сети. Его полное значение не нужно публиковать или вводить повторно, если образы были выданы одним комплектом.

Зарегистрируйте удалённую Work-ноду

Сначала получите MAC Work. В её terminal выполните:

node mac

Скопируйте значение после mac=, например aa:bb:cc:dd:ee:ff. Затем вернитесь к terminal Management.

Для приглашения нужен ключ из 32 шестнадцатеричных символов. Сгенерируйте свой в PowerShell, сохраните его в защищённом месте и подставьте в команду Management:

(New-Guid).Guid.Replace("-", "")

node key <32-hex-key>
node register <work-mac> HW747

Аргумент HW747 — отображаемое имя узла в каталоге Management. Приглашение должно завершиться сообщением registration invite sent.

Не используйте плейсхолдеры буквально. Замените <32-hex-key> на сгенерированную строку, а <work-mac> — на MAC вашей Work-ноды.

Проверьте регистрацию и состояние

Проверьте результат с обеих сторон. На Work команда node должна показать registered=yes. На Management выполните:

node peers
services nodes
node catalog
services 0 show
services 0 values
node ping <work-mac>
node state <work-mac>
node peers
Показывает зарегистрированные MAC-адреса Management.
services nodes
Выводит Work-ноды, известные Management. В первой строке найдите индекс 0 и имя HW747.
node catalog
Показывает полный каталог узла, включая сетевые входы CmdR, CmdG и CmdB.
services 0 show
Показывает каталог сервисов первой удалённой ноды и их направления.
services 0 values
Показывает доступные текущие значения удалённой ноды.
node ping <work-mac>
Проверяет доступность зарегистрированного peer; ожидаемый результат — ping ok.
node state <work-mac>
Показывает кэш состояния Work. В первые секунды возможен status=no_data; подождите до 20 секунд и повторите команду.

Управляйте RGB LED удалённо

Убедитесь, что Management находится в mode normal, затем отправьте сетевые команды Work. Для удалённой ноды используются входы CmdR, CmdG и CmdB; это не локальные выходы RgbR/G/B из Tutorial 01.

mode normal
set 0 CmdR 127
set 0 CmdG 0
set 0 CmdB 0
services 0 values
node state <work-mac>

LED на HW747 должен загореться красным. Попробуйте зелёный, синий и смешанный цвет. Значения каждого канала — от 0 до 127.

set 0 CmdR 0
set 0 CmdG 127
set 0 CmdB 0

set 0 CmdR 0
set 0 CmdG 0
set 0 CmdB 127

set 0 CmdR 127
set 0 CmdG 64
set 0 CmdB 0
Проверка завершена: Management принимает set для NET IN удалённой ноды, Work обрабатывает CmdR/G/B в normal mode, а её встроенный LED меняет цвет.

Что вы освоили во втором уроке

  1. Прошивку Management-узла на ESP32-C3 готовым flash-образом.
  2. Проверку совместимых ESP-NOW параметров на Management и Work.
  3. Получение MAC Work, создание ключа приглашения и регистрацию ноды в Management.
  4. Просмотр каталога, доступности и кэшированного состояния удалённой ноды.
  5. Удалённое управление через set <индекс> CmdR|CmdG|CmdB <значение>.

Теперь у вас есть базовая сеть из двух узлов. В следующих уроках можно добавлять новые устройства и настраивать связи между сервисами.

Если регистрация или управление не работают

ПроблемаВероятная причинаКак исправить
Work не появляется в services nodesНе совпадает ESP-NOW channel или приглашение не принято.Проверьте espnow на обеих платах, затем повторите регистрацию с MAC Work.
node register не проходитНеверный MAC или ключ не содержит 32 hex-символа; Work недоступна либо уже привязана к другой Management.Сверьте MAC и ключ, включите Work и при необходимости сбросьте её регистрацию через локальный terminal.
node ping не отвечаетПроблема питания, расстояния, помех или несовпадение PMK.Уменьшите расстояние, проверьте питание и убедитесь, что обе прошивки выданы одним комплектом.
set отклонёнManagement не в mode normal либо указан неверный индекс или вход.Выполните mode normal, сверьте индекс через services nodes и каталог через services 0 show.
COM-порт занятОткрыт monitor или другая программа.Закройте miniterm, Arduino IDE и тестовые процессы перед прошивкой или открытием monitor.