Плата 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‑скетч.
С чего начать
- В Boards Manager установите пакет Silicon Labs версии 5.0.0.
- Выберите плату Nano Matter, установите
Tools › Protocol stack = Zigbee. - Если плата новая или до этого использовала Matter/BLE, задайте
Tools › Programmer = OpenOCDи один раз выполнитеTools › Burn Bootloader. - Откройте
File › Examples › Zigbee, выберите пример и загрузите его.
Дальше можно собирать оповещение «дверь оставлена открытой», полноценный комнатный датчик, настольную лампу с отдельным Zigbee‑выключателем или часы Zigbee Smart Clock, которые сами берут время из сети.
Источник: Arduino Blog










