Введение
Сеть, в которой Work управляет Work
В предыдущих уроках вы подготовили Work-ноду и подключили её к Management. Теперь сеть расширяется: добавим вторую Work-ноду и настроим передачу значения между двумя устройствами напрямую по ESP-NOW.
LINK — это настройка топологии: NET OUT исходной Work передаётся в NET IN другой Work. Management создаёт и хранит конфигурацию LINK, но не участвует в каждом последующем P2P-сообщении.
fsm32-node-work-rgb.bin имеет только сетевые входы CmdR/G/B и аппаратные выходы RgbR/G/B. В нём нет NET OUT — источника LINK. Поэтому Work A использует образ Work433, который публикует Btn1/2/3 как NET OUT.| Роль | Плата и готовый образ | Пример порта |
|---|---|---|
| Management | ESP32-C3 + OLED 0.42″fsm32-node-manager.bin | COM5 |
| Work A — источник | ESP32-S3 SuperMini HW747 + 433 RXfsm32-node-work-433.bin | COM4 |
| Work B — приёмник | ESP32-S3 SuperMini HW747fsm32-node-work-rgb.bin | COM6 |
Все ноды должны быть включены, находиться в зоне уверенного ESP-NOW и работать в mode normal. Management и Work B уже подготовлены в Tutorial 02.
Шаг 1
Подготовьте Work A с NET OUT
Прошейте вторую HW747 готовым образом Work433. Он предназначен для платы с подключённым 433 MHz приёмником SYN480R, но основную P2P-проверку можно выполнить без пульта командой netout.
cd C:\fsm32\firmware
esptool.py --chip esp32s3 --port COM4 --baud 460800 write-flash 0x0 fsm32-node-work-433.bin
python -m serial.tools.miniterm COM4 115200
В monitor нажмите ~ и выполните:
mode normal
board
services show
node mac
Сохраните MAC Work A. В каталоге должны быть NET OUT Btn1, Btn2, Btn3. Их меняет готовая логика Work433 при событии 433 MHz либо через диагностическую команду netout.
Шаг 2
Зарегистрируйте обе Work-ноды
Если Work B уже зарегистрирована из Tutorial 02, сохраните её MAC. Если нет, получите его через node mac на Work B. Затем в terminal Management проверьте текущий каталог:
services nodes
node peers
Зарегистрируйте отсутствующую ноду. Используйте тот же ключ регистрации, который был сохранён для Management в Tutorial 02; новый ключ нужен только если вы сознательно меняете ключ сети.
node key <32-hex-key>
node register <work-a-mac> HW747-433
node register <work-b-mac> HW747-RGB
Для уже зарегистрированной ноды повторять node register не нужно. После каждого нового приглашения дождитесь registration invite sent и проверьте на соответствующей Work командой node: ожидается registered=yes.
services nodes; не предполагайте, что нужная нода навсегда имеет индекс 0 или 1.Шаг 3
Найдите сервисы и их ID
На Management определите индексы Work A и Work B из services nodes, затем посмотрите их каталоги:
services <work-a-index> show
services <work-b-index> show
node catalog
Для готовых образов ожидаются следующие сервисы: у Work A Btn1 — NET OUT с wire ID 0; у Work B CmdG — NET IN с catalog ID 5 и wire ID 4. Команды LINK принимают именно wire ID, а не номер строки в services … show.
Связь направлена только от NET OUT к NET IN. Аппаратные RgbR/G/B Work B — результат выполнения её логики: CmdR/G/B преобразуются в цвет LED.
Шаг 4
Создайте P2P LINK
В terminal Management установите связь от Btn1 Work A к CmdG Work B. Для LINK используются MAC-адреса нод и ID сервисов, а не индексы каталога:
node link <work-a-mac> 0 <work-b-mac> 4
Management должен ответить link invite sent. На Work A проверьте сохранённую связь:
node links
В выводе будет peer Work B и привязка локального источника к удалённому приёмнику. LINK сохраняется на Work A и переживает перезагрузку. Удалить её можно из Management:
node unlink <work-a-mac> 0 <work-b-mac> 1
Шаг 5
Проверьте передачу без компьютера в цепочке
Для первой проверки сымитируйте событие источника в terminal Work A. Компьютер используется только для ввода команды; после настройки значение между Work передаётся напрямую по ESP-NOW.
netout Btn1 10
Work A публикует Btn1=10, LINK передаёт значение в CmdG Work B, а её логика устанавливает RgbG=10. LED Work B должен загореться слабым зелёным цветом.
На Management подтвердите состояние приёмника:
node state <work-b-mac>
services <work-b-index> values
Кэш состояния может обновиться не мгновенно. Если сразу видите status=no_data, подождите до 20 секунд и повторите команду. Визуальное изменение LED Work B — основной признак прохождения P2P-связи.
Btn1. Поэтому цепочка Management → Work A → Work B не входит в этот урок. Management настраивает LINK и наблюдает сеть, а событие создаёт Work A.Дополнительно
Проверьте связь настоящим 433 MHz пультом
Если к Work A подключён SYN480R и есть совместимый EV1527-пульт, вместо netout можно использовать физическое событие. В terminal Work A включите диагностику:
watch433 on
Готовая логика Work433 переключает Btn1 между 0 и 10 для кода 0x0C4AE2. При получении этого кода LED Work B соответственно меняет зелёный канал. Остановить вывод можно командой watch433 off.
Диагностика
Если LINK не передаёт значение
| Проблема | Вероятная причина | Как исправить |
|---|---|---|
| Work A не регистрируется | Неверный MAC, ключ или ESP-NOW параметры. | Проверьте node mac, espnow и повторите регистрацию. |
node link отклонён | Неверный MAC, ID сервиса или Work не зарегистрирована. | Проверьте services nodes и оба каталога через services <index> show. |
netout выполнен, но LED Work B не меняется | LINK направлен неверно или Work B не в mode normal. | Сверьте команду LINK: источник Work A Btn1 wire ID 0, приёмник Work B CmdG wire ID 4; на Work B выполните mode normal. |
node links пуст | Приглашение LINK не дошло до Work A. | Сверьте питание, расстояние и ESP-NOW channel, затем отправьте LINK снова. |
| 433-пульт не даёт события | Нет питания RX, неверный код пульта или отсутствует приёмник. | Проверьте watch433 on; для базовой проверки используйте netout Btn1 10. |
