Введение
Создаём простейшую сеть
В первом уроке вы работали с одной Work-нодой: прошили её, вошли в terminal и управляли встроенным LED в локальном режиме. Теперь объединим устройства в сеть fsm32.
Одиночная нода может работать автономно, но в сети можно централизованно наблюдать за состоянием устройств, отправлять команды с одного узла на другой и строить распределённые алгоритмы без прямого подключения каждой платы к компьютеру.
Чтобы объединить ноды в единую сеть, нужен Management-узел. Он регистрирует устройства и хранит каталог доступных сервисов. Management также может использоваться для наблюдения за состоянием нод и как дублирующий канал управления, когда основная логика продолжает работать на Work-устройствах. Связи между сервисами создаются отдельным механизмом и рассматриваются в следующем уроке.
На этом этапе создадим минимальную сеть: подключим Management к единственной Work-ноде ESP32-S3 SuperMini HW747 из первого урока. Затем зарегистрируем ноду по ESP-NOW, посмотрим её сервисы и удалённо изменим цвет встроенного RGB LED.
В результате вы научитесь подключать Management к Work по ESP-NOW, регистрировать Work в его каталоге, просматривать сервисы и отправлять удалённые команды RGB.
| Роль | Плата и образ | Пример порта |
|---|---|---|
| Management | ESP32-C3 + OLED 0.42″fsm32-node-manager.bin | COM5 |
| Work | ESP32-S3 SuperMini HW747 из Tutorial 01fsm32-node-work-rgb.bin | COM4 |
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 на главной.mode normal. Если после первого урока она осталась в mode local, откройте её terminal и выполните mode normal.Шаг 1
Прошейте готовый образ 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.
Шаг 2
Проверьте общий ESP-NOW контур
ESP-NOW — протокол Espressif для прямого беспроводного обмена между ESP32 без Wi-Fi роутера. В fsm32 он служит транспортом сообщений между нодами. Каждая плата имеет уникальный MAC-адрес, по которому к ней обращается Management.
Для связи должны совпадать channel — радиоканал обмена — и PMK, общий секрет сети. Готовые образы уже содержат согласованные параметры, поэтому их не нужно настраивать вручную.
- В terminal Management выполните
espnowи запишите channel и состояниеenabled. - Откройте monitor Work, войдите через
~и выполнитеespnow. - Убедитесь, что ESP-NOW включён и обе платы работают на одном channel. Закройте второй monitor или оставьте его открытым для визуальной проверки LED.
PMK — общий секрет сети. Его полное значение не нужно публиковать или вводить повторно, если образы были выданы одним комплектом.
Шаг 3
Зарегистрируйте удалённую 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-ноды.Шаг 4
Проверьте регистрацию и состояние
Проверьте результат с обеих сторон. На 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 секунд и повторите команду.
Шаг 5
Управляйте 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
set для NET IN удалённой ноды, Work обрабатывает CmdR/G/B в normal mode, а её встроенный LED меняет цвет.Итоги
Что вы освоили во втором уроке
- Прошивку Management-узла на ESP32-C3 готовым flash-образом.
- Проверку совместимых ESP-NOW параметров на Management и Work.
- Получение MAC Work, создание ключа приглашения и регистрацию ноды в Management.
- Просмотр каталога, доступности и кэшированного состояния удалённой ноды.
- Удалённое управление через
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. |
