
Предположим, мы хотим создать устройство для умного дома, совместимое с Google Home, Amazon Alexa, Samsung SmartThings, Apple HomeKit, Tuya и другими платформами. В таком случае нам придется присоединиться к их партнерским программам и уже настраиваться на серьезный лад.
Если же наша цель — гаджет, который работает со всеми этими экосистемами сразу, — то объем предстоящей разработки вырастает многократно. Неудивительно, что подобные программы рассчитаны в первую очередь на коммерческих производителей, а не на мейкеров.
Но постойте… Неужели все так недоступно? Отнюдь. Сегодня все больше продуктов для домашней автоматизации внедряют протокол Matter. Возможно, мы сможем ограничиться поддержкой лишь этого стандарта.
Стандарт Matter предлагает «единый протокол для объединения совместимых устройств и систем». Согласно его концепции, гаджеты для умного дома должны быть безопасными, надежными и простыми в использовании.
Стандарты — это же прекрасно. Может, именно поэтому их так много?
Альянс Connectivity Standards курирует Matter, Zigbee и несколько других спецификаций для домашней автоматизации и интернета вещей.
Если говорить серьезно, станет ли Matter той самой универсальной платформой для умного дома? Пока неясно. Однако растущее число доступных отладочных плат и программных стеков повышает шансы энтузиастов погрузиться в мир Matter.

Черепаха Этель: наш проект на Matter
При оценке технологий всегда лучше иметь перед глазами конкретную задачу. Вот наша: моя жена Джеки с большой заботой ухаживает за своей домашней черепахой. Этель — расписная черепаха, ей больше 20 лет. Она живет в аквариуме с автоматической кормушкой, водяным насосом и погружным водонагревателем. У нас есть датчик температуры с сигнализацией о перегреве и переохлаждении, но если никого нет дома, то… на сигнал тревоги попросту некому отреагировать.
Нам нужно решение на случай отъезда. Если температура воды слишком низкая, возможно, сломался нагреватель. В этом случае придется просить друга заменить его. Если же температура слишком высокая, нужно включить кондиционер в комнате, где стоит аквариум. Эту задачу можно решить с помощью нашей существующей системы Home Assistant.
Итак, есть две возможные попытки создать датчик температуры для Этель с поддержкой Matter. Первая — очень простая и с ограниченными возможностями, использующая Matter через Wi-Fi. Вторая — куда более сложная, на базе Matter через Thread, но с потенциалом для множества дополнительных функций.

Selectel Tech Day — 8 октября
Разберем реальный опыт IT-команд, технический бэкстейдж и ML без спецэффектов. 15 стендов и интерактивных зон, доклады, мастер-классы, вечерняя программа и нетворкинг. Участие бесплатное: нужна только регистрация.
Устройства с Matter в продаже
В 85-м выпуске журнала Make, посвященном домашней автоматизации для мейкеров, мы рассматривали создание устройств Matter с помощью SDK Espressif ESP32 Matter 1.x. Решение работало, но содержало немало ошибок. Год спустя появилось больше вариантов как для покупки, так и для самостоятельной сборки гаджетов с поддержкой нового стандарта. Давайте посмотрим, что изменилось.
Радует, что на рынке появляется все больше умных устройств, совместимых с Matter. Но выполняют ли они обещание легкой интеграции с системами разных производителей? И что еще важнее, будут ли они работать с конкретной сетью умного дома? Без предварительного тестирования сказать сложно.
Датчик влажности и температуры Shelly (39 $). Оснащен дисплеем, который показывает температуру, влажность, время и уровень заряда батареи. Производитель обещает «возможность обновления до Matter», что, однако, не гарантирует полноценной поддержки на момент покупки.
Умный выключатель света TP-Link Tapo, совместимый с Matter (15 $). Заменяет обычный одноклавишный выключатель и дает возможность удаленного управления. Сертификация Matter означает совместимость со всеми основными платформами. Предупреждение: в описании товара указано, что он имеет высокий процент возвратов.
Умная кнопка arre с поддержкой Matter и Thread (35 $). Хм… 35 долларов за кнопку? И снова примечание о высоком проценте возвратов.
Да, ситуация недвусмысленно показывает, что экосистема еще не созрела. Обещания производителей о «бесшовной интеграции» часто расходятся с реальностью — что и подтверждают возвраты товаров. Видимо, пользователи постоянно сталкиваются с проблемами.
Этапы проекта
Плата №1: Датчик температуры на ESP32 через Wi-Fi с Tasmota
Существует несколько отладочных плат на базе микроконтроллера Espressif ESP32, которые можно использовать для создания устройств Matter. Это стало возможным благодаря появлению соответствующих программных инструментов и библиотек.
Начнем с простой конструкции — соберем датчик температуры на базе платы ESP32 Dev Kit и однпроводного датчика температуры DS18B20. Эти компоненты легко найти, и стоят они недорого.
Схема подключения

Если поискать в интернете по запросу «ESP32 Dev kit temperature sensor DS18B20 waterproof», можно найти множество примеров проектов. Вот наш прототип на макетной плате.
Соединяем компоненты следующим образом:
DS18B20: черный провод — к GND, красный — к VCC, желтый (сигнальный) — к выводу D2 на ESP32;
подтягивающий резистор 47 кОм: между сигнальным проводом DS18B20 и VCC.
Tasmota и Matter
Самый простой способ разработать программное обеспечение для этого датчика — не писать код вообще.
Tasmota — прошивка с открытым исходным кодом для микроконтроллеров Espressif ESP8266 и ESP32, предназначенная для создания устройств домашней автоматизации. Изначально она разрабатывалась как способ заменить облачные прошивки на коммерческих продуктах для обеспечения локального управления. Такой подход дает полный контроль над устройством в локальной сети, избавляя от рисков, связанных с облачными сервисами.
Сегодня Tasmota поддерживает множество продуктов и может использоваться для создания собственных гаджетов, включая устройства с Matter. Более подробную информацию можно найти на сайте проекта.
Отметим, что на данный момент поддержка Matter в Tasmota реализована только через Wi-Fi; протокол Thread не поддерживается.
Инструкция по настройке Tasmota
1. Устанавливаем прошивку Tasmota на ESP32. Проще всего это сделать с помощью Tasmota Web Installer в браузере на основе Chrome.
2. Настраиваем подключение к сети Wi-Fi.
3. Нажимаем на «Visit Device» и обязательно сохраняем IP-адрес устройства в закладки.
4. Переходим в Configuration → Configure Module. Для GPIO2 выбираем DS18x20 — это настроит датчик температуры. Затем нажимаем Save.

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

6. Если мы предпочитаем отображение температуры в градусах Фаренгейта, переходим в Tools → Console и вводим команду: SetOption8 1. После возврата в главное меню температура будет отображаться в °F. (В нашем примере 22.9 °C).
7. В разделе Configure Other можно изменить Device Name (имя устройства) и Friendly Name 1 (понятное имя) в соответствии с нашим проектом.
8. Изучаем список поддерживаемых платформ, чтобы найти конкретные инструкции по сопряжению нашего устройства Tasmota Matter с сетью умного дома. Обращаем внимание, что для Google Home есть дополнительные шаги.
9. Следуем инструкциям, чтобы активировать Matter в устройстве Tasmota, включить режим сопряжения (Commissioning), а затем добавить наш гаджет в существующую сеть домашней автоматизации. Устройство можно подключить к нескольким сетям или фабрикам (fabric). Веб-интерфейс Tasmota показывает количество активных подключений.

10. К другим выводам GPIO на ESP32 можно подключать дополнительные устройства (кнопки, датчики, реле и т.д.). Они появятся в интерфейсе Matter и станут доступны для нашей сети умного дома.
11. Также можно добавлять различные дисплеи (OLED, LCD и др.) и создавать правила в Tasmota для управления ими. Подробности ищем в документации Tasmota.
А что насчет ESPHome и Matter?
ESPHome — еще одна популярная платформа для разработки устройств домашней автоматизации. Она отлично работает с Home Assistant. На данный момент поддержка Matter в ней еще не реализована, хотя соответствующий запрос от сообщества открыт.
Плата №2: SparkFun Thing Plus Matter через Thread с Arduino
Рассмотрим другой подход, который потребует немного программирования. Он позволит нам создать устройство Matter именно таким, каким мы его задумали, добавив другие компоненты пользовательского интерфейса.
Плата SparkFun Thing Plus Matter объединяет экосистему модулей SparkFun Qwiic I2C и стандарт Matter, реализованный на базе беспроводного модуля MGM240P от Silicon Labs. Микроконтроллер — это энергоэффективный 32-битный Arm Cortex-M33 с тактовой частотой 39 МГц, потребляющий всего 15 мкА в режиме ожидания. На плате также есть разъем для LiPo-аккумулятора со схемой зарядки и слот для карты microSD. Этих функций достаточно для создания беспроводного перезаряжаемого устройства Matter, способного работать практически с любыми мыслимыми компонентами.
Возможные среды программирования включают Silicon Labs Arduino Core, Thing Plus Matter CircuitPython и Simplicity Studio with Matter. Давайте остановимся на варианте с Arduino, так как он наиболее знаком сообществу мейкеров.
SparkFun Thing Plus Matter и Arduino
В январе 2024 года Arduino и Silicon Labs объединили усилия и выпустили библиотеку Arduino для Matter. Ее мы и будем использовать в нашем проекте на SparkFun Thing Plus Matter.
Инструкция по настройке ПО
Прежде всего устанавливаем:
Программное обеспечение Simplicity Studio — на компьютер. Оно понадобится для прошивки платы SparkFun Thing Plus Matter.
Последнюю версию Arduino IDE.
Ядро Silicon Labs Arduino Core, следуя инструкциям в разделах «Installation» и «Getting Started».
Как сказано в руководстве, «если вы видите мигающий встроенный светодиод, все готово к работе!». В противном случае перепроверяем предыдущие шаги и пробуем снова.
Репозиторий Silicon Labs Arduino Core содержит несколько примеров скетчей для Arduino. Скачиваем файл matter_temp_sensor.ino, а затем открываем его в Arduino IDE. Компилируем и загружаем этот скетч на плату Thing Plus. Открыв монитор последовательного порта, мы должны увидеть следующее:
Matter device is not commissioned
Commission it to your Matter hub with the manual pairing code or QR code
Прежде чем мы сможем ввести устройство в эксплуатацию, нам необходимо настроить Home Assistant или другое устройство от Google, Amazon и т д., которое будет выполнять роль пограничного маршрутизатора Thread (TBR).
Matter через Thread
Наш пример с Tasmota использовал Matter через Wi-Fi. Ядро Silicon Labs Arduino Core использует Bluetooth Low Energy (BLE) для первоначальной настройки и сопряжения, а для дальнейшей связи — протоколы Thread/IPv6. Чтобы все это работало, понадобится TBR. Моя система умного дома — Home Assistant, и у меня есть устройство Home Assistant Connect ZBT-1, которое будет выполнять роль TBR. Устройства Google Home и Amazon Echo также поддерживают Thread, но, увы, все мои гаджеты — это старые модели без такой возможности.
Следуем этим инструкциям, чтобы настроить Matter через Thread в Home Assistant с помощью маршрутизатора ZBT-1:
Home Assistant Connect ZBT-1 — читайте Enable Thread support
Home Assistant Matter (BETA)
Теперь в Home Assistant должно появиться видимое устройство Matter. Я также добавил его в Google Home и Amazon Alexa. Отлично!
На этом мы завершаем проект «Hello, World!» для Matter с использованием SparkFun Thing Plus Matter и Arduino. Теперь можно двигаться дальше и собирать датчик температуры для черепахи.
Датчик температуры DS18B20
Мы используем тот же датчик DS18B20, что и в проекте с ESP32. Можно было бы ожидать, что его реализация на SparkFun Thing Plus Matter будет простой — ведь для Arduino существует несколько библиотек для DS18x20. Однако они не заработали. И я не первый, кто столкнулся с этой проблемой.
«Протокол OneWire требует строгой синхронизации с точностью до микросекунд, чего обычно невозможно достичь с помощью стандартных API Arduino. Именно поэтому каждый производитель чипов добавляет в библиотеку OneWire свои функции для прямого доступа к регистрам GPIO»,
— объяснил Тамаш Йожи, инженер Silicon Labs (в ответе к Томиниова).
Решение — установить обновленную библиотеку OneWire для Arduino (внимание: альфа-версия!), предназначенную для модуля MGM240P на плате SparkFun Thing Plus Matter. Скачиваем ее в виде zip-архива, а затем устанавливаем в Arduino IDE через меню Sketch → Include Library → Add.ZIP Library.
Еще один сюрприз: последовательный USB-интерфейс на модуле MGM240P работает на скорости 115200 бод. Поэтому в скетче Arduino необходимо использовать Serial.begin(115200)
— любая другая скорость приведет к нечитаемому выводу в консоли.
Существует несколько библиотек Arduino для работы с датчиком DS18B20. Я использовал Dallas Temperature. В Arduino IDE переходим в Tools → Manage Libraries, ищем «Dallas Temperature» и устанавливаем библиотеку.
Теперь попробуем запустить «простой» пример, чтобы убедиться, что оборудование и среда разработки настроены правильно: File → Example → Examples from Custom Libraries → Dallas Temperature → Simple.


Подключаем сигнальный провод DS18B20 к выводу D2 на плате Thing Plus. Но постойте — в библиотеке Arduino этот физический пин на самом деле соответствует выводу GPIO D10! Поэтому в скетче simple.ino
меняем строку:
#define ONE_WIRE_BUS 2
на:
#define ONE_WIRE_BUS 10 // датчик подключен к пину с маркировкой D2, который в Arduino является входом 10
Также меняем:
Serial.begin(9600);
на:
Serial.begin(115200);
Компилируем и загружаем скетч. В мониторе последовательного порта должна отобразиться температура.
Теперь мы можем объединить этот скетч для DS18B20 (simple.ino
) со скетчем matter_temp_sensor.ino
, чтобы собрать наш проект. Вот объединенный скетч.
Бонус: добавляем OLED-дисплей
Было бы полезно иметь локальный дисплей для отображения температуры в аквариуме. Добавить OLED-дисплей, использующий интерфейс I2C через разъем Qwiic на плате SparkFun Thing Plus Matter, легко и недорого. Мы будем использовать дисплей с диагональю около 2,5 см, например, Adafruit 326 или его аналог с Amazon.
Существует множество примеров использования подобных дисплеев с Arduino. Библиотека u8g2 для Arduino отлично работает с платой Thing Plus Matter.
А вот рабочий скетч, в который добавлена поддержка OLED-дисплея.
Идеи для дальнейшего развития
Добавляем проверку на случай отключения от сети Matter и попытку переподключения. Выводим на OLED-дисплей сообщение о проблеме с соединением.
Создаем правила в системе умного дома для отправки уведомлений при срабатывании сигнализации о высокой или низкой температуре.
Добавляем пьезоизлучатель для локальной звуковой сигнализации. Добавляем кнопку для отключения сигнала тревоги.
Делаем пороги срабатывания сигнализации атрибутами устройства Matter, чтобы ими можно было управлять из системы умного дома.
Подключаем перезаряжаемый аккумулятор к разъему LiPo. Передаем уровень заряда батареи в Matter. (Обращаем внимание, что спецификация Matter определяет кластер для «Источника питания», но он пока недоступен в библиотеке Silicon Labs Arduino Core. Проверяем примечания к новым релизам).
Что еще вы бы добавили в этот проект?
Заключение
Что дальше? За последний год ситуация с Matter для мейкеров значительно улучшилась. Однако предстоит еще много работы:
поддержка большего числа отладочных плат как для Wi-Fi, так и для Thread;
сертификация реализаций в качестве одобренных Matter;
тестирование на совместимость с различными продуктами для умного дома, представленными на рынке.
И, конечно, нам нужно больше примеров проектов, чтобы вдохновить энтузиастов начать создавать свои собственные устройства. Мы как раз показали два возможных подхода. Небольшая сравнительная таблица:
Параметр |
Подход 1: ESP32 + Tasmota (Wi-Fi) |
Подход 2: SparkFun Thing Plus + Arduino (Thread) |
Сложность |
Низкая, не требует программирования |
Средняя/Высокая, требует навыков программирования и отладки |
Стоимость |
Низкая (плата и датчик очень доступны) |
Высокая (плата значительно дороже) |
Сетевой протокол |
Wi-Fi |
Thread (требует пограничного маршрутизатора) |
Гибкость |
Ограничена поддерживаемыми в Tasmota компонентами |
Практически неограниченная (экосистема Arduino, Qwiic) |
Энергопотребление |
Высокое |
Очень низкое, подходит для устройств с батарейным питанием |
Порог входа |
Очень низкий, идеально для начинающих |
Высокий, для опытных энтузиастов |
Выбор зависит от цели, а не от технологии. Первый подход идеален для быстрого старта и простых задач, второй — для создания сложных, энергоэффективных и по‑настоящему уникальных устройств.
Существуют и другие варианты плат, на которые стоит обратить внимание — Arduino Nano Matter, Seeed Xiao ESP32C6, — а также другие языки программирования и инструменты разработки. Хотите реализовать устройство Matter на Python? Уже доступен CircuitPython Matter с несколькими полезными примерами.
REPLAY_5
тоесть, фактически это просто подключение к wifi? сколько устройств вывезет роутер? в отличие от ZigBee
oneastok Автор
Matter — это не только Wi-Fi. Скорее это универсальный «язык» или стандарт для приложений, который позволяет устройствам от разных производителей общаться друг с другом. Он работает поверх существующих сетевых технологий.
Wi-Fi — это только один из способов, он используется в первом проекте на базе ESP32.
Сколько устройств выдержит Wi-Fi роутер — вопрос интересный. Теоретически, большинство домашних моделей могут поддерживать до 250 подключений. Однако на практике это число гораздо меньше. Все устройства делят между собой одну центральную точку. Значит, чем больше активных гаджетов — тем медленнее сеть для каждого из них. Бюджетные модели работают нестабильно уже при 30−50 подключениях.
Для сравнения: Zigbee теоретически может поддерживать до 65 000 устройств. Tread — более современный протокол беспроводной связи, который, как и Zigbee, создает ячеистую сеть. Он используется во втором проекте статьи — на плате SparkFun.