🛒 Arduino, ESP32 и модули
Arduino Nano Matter получил поддержку Zigbee 3.0
4 Ч НАЗАДArduino

Arduino Nano Matter получил поддержку Zigbee 3.0

Плата Arduino Nano Matter теперь может работать в Zigbee 3.0 сетях наряду с Matter over Thread и Bluetooth LE — выбором стека в меню Arduino IDE.

16 октября 2026 г.3 мин чтения15 теги

Плата Arduino Nano Matter изначально ориентирована на маломощные устройства умного дома и построена на модуле Silicon Labs MGM240S. Ранее она поддерживала Matter over Thread и Bluetooth LE, а с выходом Silicon Labs core 5.0.0 для Arduino появилась третья опция — Zigbee 3.0.

Включаем Zigbee в Arduino IDE

Переключение стека сводится к одному пункту меню:

  • Откройте Tools › Protocol stack
  • Выберите Zigbee
  • Загрузите скетч — та же плата, та же IDE, но компиляция идёт уже с Zigbee‑стеком вместо Matter или BLE.

Новая Zigbee‑библиотека оборачивает стек EmberZNet от Silicon Labs в Arduino‑подобные классы. Датчик — это объект: задать имя, вызвать begin(), передавать значения. Упрощённый пример температурного датчика:

```cpp
#include <Zigbee.h>
#include <ZigbeeTemperatureSensor.h>

ZigbeeTemperatureSensor sensor;

void setup() {
Serial.begin(115200);
Zigbee.setVendorName("Arduino");
Zigbee.setProductName("Zigbee Temperature Sensor");
Zigbee.begin();
sensor.begin();

Serial.println("Connecting to Zigbee network...");
while (!Zigbee.isConnectedToNetwork()) {
delay(200);
}
}

void loop() {
float celsius = getCPUTemp();
sensor.set_measured_value_celsius(celsius);
delay(2000);
}
```

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

Готовые Zigbee‑устройства

В составе core идёт 14 примеров для 11 типов устройств Zigbee:

  • Свет: on/off, диммируемая и цветная лампа, on/off розетка (plug‑in)
  • Выключатель: передаёт on/off и команды яркости
  • Датчики: температуры, влажности, освещённости, контактный датчик (дверь/окно)
  • Служебные устройства: power source reporter, time client

Устройство может присоединяться как router (по умолчанию, ретранслирует трафик mesh) или как end device.

Две важные возможности:

  • Прямые связи (bindings) — после привязки выключателя к лампе он управляет ею напрямую, без ожидания автоматизаций хаба. Классы лампы и розетки могут выступать целями Find‑and‑Bind через start_find_and_bind().
  • Identify — при запросе Identify от хаба библиотека уведомляет скетч, и можно, например, мигать светодиодом, чтобы отличить плату на столе.

По умолчанию примеры влажности и освещённости отправляют фиктивные данные, а температурный пример измеряет кристалл MG24, а не воздух. Подключите реальный датчик (например, Arduino Modulino Thermo) и слегка поправьте код.

Nano Matter как Zigbee‑координатор

Сеть Zigbee строится вокруг координатора. Nano Matter может выполнять и эту роль, используя встроенную Zigbee EZSP coordinator firmware и Python‑скрипт в каталоге extra/firmware core:

```bash
python3 extra_firmware_flasher.py nano_matter zigbee
```

Подключите эту плату к машине с Home Assistant (часто это Raspberry Pi) и добавьте её в интеграции ZHA как Zigbee‑радио. Остальные платы Nano Matter можно использовать как обычные устройства Zigbee.

Чтобы вернуть координатор в режим обычного устройства, выберите Tools › Programmer = OpenOCD, выполните Tools › Burn Bootloader (стерев координаторную прошивку и сеть), затем загрузите Zigbee‑скетч.

С чего начать

  1. В Boards Manager установите пакет Silicon Labs версии 5.0.0.
  2. Выберите плату Nano Matter, установите Tools › Protocol stack = Zigbee.
  3. Если плата новая или до этого использовала Matter/BLE, задайте Tools › Programmer = OpenOCD и один раз выполните Tools › Burn Bootloader.
  4. Откройте File › Examples › Zigbee, выберите пример и загрузите его.

Дальше можно собирать оповещение «дверь оставлена открытой», полноценный комнатный датчик, настольную лампу с отдельным Zigbee‑выключателем или часы Zigbee Smart Clock, которые сами берут время из сети.


Источник: Arduino Blog