Создайте устройство Matter

1. Введение

Matter — это протокол подключения, который открывает потрясающие возможности для разработки интеллектуальных устройств. В этой лаборатории вы создадите свое первое устройство Matter. Чтобы узнать о Matter, посетите Центр разработчиков Google Home: Matter или веб-сайт Альянса стандартов подключения .

Что вы узнаете

  • Как интегрировать физическое устройство с Материей.
  • Как настроить и контролировать ваше устройство Matter с помощью Google Home.

Что вам понадобится

2. Настройте свою среду

Определить последовательное устройство

Первым шагом в настройке среды разработки является определение того, к какому последовательному порту подключено ваше устройство. Эта информация позволит вам программировать и взаимодействовать с вашей платой разработчика.

  1. Подключите плату разработчика к компьютеру с помощью USB-кабеля.
  2. Найдите в файловой системе /dev устройство платы разработчика. Вы можете сузить область поиска, указав префикс устройства вашей платы разработчика. ESP32 от Espressif использует /dev/ttyUSBx :
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    

Настройте свой хаб

Настройте свой хаб , используя ту же учетную запись Google, которую вы собираетесь использовать для этой лаборатории кода .

Настройте среду разработки

Предварительные условия

Эти инструкции были протестированы в Debian Linux и должны работать в большинстве дистрибутивов Linux на основе Debian, включая Ubuntu. Если вы работаете с другим дистрибутивом Linux, процедура установки зависимостей может отличаться от следующей.

Установить зависимости

Запустите следующую команду, чтобы установить необходимые двоичные файлы пакетов Linux, которые, возможно, еще не установлены:

$ sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev \
libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \
python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev screen

Настройте SDK

Чтобы продолжить эту лабораторную работу, вам понадобится Espressif SDK (Espressif IoT Development Framework или ESP-IDF).

  1. Создайте каталог для хранения ESP-IDF:
    $ mkdir ~/esp-idf_tools
    
  2. Клонируйте ESP-IDF из GitHub в этот каталог:
    $ cd ~/esp-idf_tools
    $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
    
  3. Завершите установку набора инструментов:
    $ cd ./esp-idf
    $ ./install.sh
    $ cd ~/
    

Настройте Matter SDK

  1. Клонируйте репозиторий Matter с открытым исходным кодом:
    $ git clone https://github.com/project-chip/connectedhomeip.git
    $ cd ./connectedhomeip
    $ git fetch origin v1.0-branch
    $ git checkout FETCH_HEAD
    
  2. Получите подмодули репозитория:
    $ ./scripts/checkout_submodules.py --shallow --platform esp32
    
  3. Загрузите среду разработки Matter:
    $ source ./scripts/bootstrap.sh
    

3. Консоль разработчика Google Home

Консоль разработчика Google Home — это веб-приложение, с помощью которого вы управляете интеграцией Matter с Google Home.

Любое устройство Matter, прошедшее сертификацию Connectivity Standards Alliance (Alliance) Matter, работает в экосистеме Google Home. Несертифицированные разрабатываемые устройства могут быть введены в эксплуатацию в экосистеме Google Home при определенных условиях — дополнительную информацию см. в разделе «Ограничения на сопряжение» .

Создать проект разработчика

Начните с перехода в консоль разработчика Google Home:

  1. Нажмите Создать проект .
  2. Введите уникальное имя проекта и нажмите «Создать проект» .Диалог создания нового проекта
  3. Нажмите + Добавить интеграцию , чтобы перейти на экран ресурсов Matter , где вы сможете просмотреть документацию по разработке Matter и прочитать о некоторых инструментах.
  4. Когда вы будете готовы продолжить, нажмите «Далее: разработка» , после чего отобразится страница контрольного списка вопросов .
  5. Нажмите Далее: Настройка.
  6. На странице настройки введите название продукта .
  7. Нажмите «Выбрать тип устройства» и выберите тип устройства в раскрывающемся меню (в данном случае Light »).
  8. В поле «Идентификатор поставщика (VID)» выберите «Тестовый VID» и выберите 0xFFF1 в раскрывающемся меню «Тестовый VID». В поле «Идентификатор продукта (PID)» введите 0x8000 и нажмите «Сохранить и продолжить» , а затем нажмите «Сохранить» на следующей странице. Используйте эти точные значения VID/PID, от них зависят последующие шаги кодовой лаборатории.
    Настройка проекта
  9. Теперь вы увидите свою интеграцию в разделе «Интеграции Материи» .
  10. Перезагрузите хаб, чтобы убедиться, что он получил самую последнюю конфигурацию проекта интеграции Matter. Если позже вам придется изменить VID или PID, вам также потребуется перезагрузиться после сохранения проекта, чтобы изменения вступили в силу. Пошаговые инструкции по перезагрузке см. в разделе Перезапуск устройств Google Nest или Google Wifi .

4. Сборка устройства

Все примеры в Matter помещены в папку примеров в репозитории Github . Доступно несколько примеров, но в этой лаборатории мы сосредоточимся на приложении освещения .

В этом примере представлено простое устройство, которое отображается в Google Home как индикатор включения/выключения, реагирующий на команды включения и выключения. Заставить его управлять настоящим электрическим светом выходит за рамки данной лаборатории.

Настройка сборки

  1. Настройте Matter SDK и активируйте среду сборки Matter:
    $ cd ~/esp-idf_tools/esp-idf
    $ source export.sh
    $ cd ~/connectedhomeip
    $ source ./scripts/activate.sh
    
  2. Включите Ccache , который ускоряет процесс сборки:
    $ export IDF_CCACHE_ENABLE=1
    
  3. Перейдите в каталог сборки ESP32 lighting-app и установите целевую архитектуру:
    $ cd ./examples/lighting-app/esp32
    $ idf.py set-target esp32
    
    1. Запустите утилиту настройки:
      $ idf.py menuconfig
      
    2. Выберите Demo -> Device Type и установите Device Type на ESP32-DevKitC .
    3. Нажмите клавишу со стрелкой влево, чтобы вернуться в меню верхнего уровня.
    4. Выберите Component config ---> .
    5. Выберите CHIP Device Layer ---> .
    6. Выберите Device Identification Options ---> .
    7. Установите для Vendor ID свой VID, присвоенный Альянсом, или тестовый VID.
    8. Установите Product ID на PID, который вы установили при интеграции Matter в консоли разработчика Google Home.
    9. Нажмите S , чтобы сохранить.
    10. Нажмите Return , чтобы принять путь по умолчанию, в котором будет сохранена конфигурация.
    11. Нажмите Return , чтобы закрыть диалоговое окно подтверждения сохранения.
    12. Нажмите Q , чтобы выйти из утилиты настройки.

Запустите сборку

Вызовите скрипт сборки:

idf.py build

Сборка должна завершиться без ошибок.

Запрограммируйте устройство

  1. Подключите плату разработчика к компьютеру с помощью USB-кабеля.
  2. Удалите всю предыдущую прошивку с устройства (если к вашему компьютеру подключена только одна плата разработчика, вы можете оставить опцию -p {device} — устройство должно быть обнаружено автоматически):
    idf.py -p {device} erase-flash
    
  3. Скопируйте новое приложение на доску разработчика с помощью:
    idf.py -p {device} flash
    

Более подробную информацию о вариантах перепрошивки можно найти на странице документации Espressif esptool.py .

5. Подключитесь к устройству

  1. Откройте окно терминала.
  2. Запишите, в каком каталоге вы находитесь, затем подключитесь к новому устройству Matter с помощью screen GNU:
    $ screen -L {device} 115200
    
  3. Если вы видите пустую консоль, нажмите кнопку RESET , чтобы начать процесс загрузки устройства.

6. Введите устройство в эксплуатацию

Примечание . Этот шаг будет успешным только в том случае, если вы уже настроили свой проект в консоли разработчика Google Home.

Гнездо Хаб

Для ввода вашего устройства в эксплуатацию на фабрике Matter требуется концентратор. Это устройство Google Nest, такое как Nest Hub (2-го поколения), которое поддерживает Matter и которое будет служить как пограничным маршрутизатором для устройств с поддержкой потоков, так и локальным путем выполнения для маршрутизации намерений умного дома.

Обратитесь к этому списку , чтобы узнать, какие концентраторы поддерживают Matter.

Перед началом процесса ввода в эксплуатацию убедитесь, что:

  • Ваш хаб связан с той же учетной записью Google, которую вы использовали для входа в консоль Google Home.
  • Ваш концентратор находится в той же сети Wi-Fi, что и компьютер, который вы используете для запуска устройства Virtual Matter.
  • Ваш хаб имеет ту же структуру, которую вы используете в своем приложении Google Home. («Дом» в Google Home Graph представляет вашу структуру).

Сопряжение устройства

Следуйте инструкциям по сопряжению ESP32 для сопряжения вашего устройства.

Примечание . Если вы используете M5STACK, имейте в виду, что его экран останется пустым после прошивки, поэтому вам придется просматривать QR-код, используя URL-адрес, который появляется в консоли. Или вместо этого вы можете ввести код сопряжения вручную.

Пример вывода консоли, показывающий URL-адрес QR-кода:

I (1926) chip[DL]: Done driving station state, nothing else to do...
I (1936) chip[SVR]: SetupQRCode: [MT:X.XXXXXXXXXXXXXXXXX]
I (1936) chip[SVR]: Copy/paste the below URL in a browser to see the QR Code:
I (1946) chip[SVR]: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3XX.KXXXXXXXXXXXXXXXX
I (1956) chip[SVR]: Manual pairing code: [XXXXXXXXXXX]]

Поиск неисправностей

Ввод в эксплуатацию не удался

Дополнительные советы по устранению неполадок см. на странице «Устранение неполадок Matter» .

7. Управление устройством

После того, как ваше совместимое с Matter устройство будет успешно введено в эксплуатацию и появится в приложении Google Home в виде лампочки, вы можете попробовать управлять устройством с помощью Google Assistant, приложения Google Home или симулятора Google Assistant в расширении Google Home для VS Code.

Google Ассистент

Используйте Google Assistant на своем телефоне или концентраторе, чтобы переключать состояние устройства с помощью голосовых команд, например «Окей, Google, включи мой свет».

Дополнительные примеры команд см. в разделе «Управление устройствами умного дома с помощью голосовых команд» раздела «Управление устройствами умного дома, добавленными в приложение Google Home» .

Приложение Google Home

Вы можете нажать метки «Включить» и «Выключить» рядом со значком лампочки, отображаемым в приложении Google Home.

Дополнительную информацию см. в разделе Управление устройствами с помощью приложения Google Home .

Симулятор Google Ассистента

В расширении Google Home для VS Code с помощью симулятора Google Assistant вы можете отправлять сообщения на свое устройство, используя интерфейс, похожий на чат.

8. Поздравляем!

Вы успешно создали и ввели в эксплуатацию свое первое устройство Материи. Потрясающий!

В этой лаборатории вы узнали, как:

  • Установите среду разработки Matter из требований в рабочее состояние.
  • Создайте и запустите устройство Материи.
  • Вводите в эксплуатацию и управляйте своим устройством из Google Home.

Чтобы узнать больше о Материи, изучите эти ссылки:

  • The Matter Primer от Google Home, где вы познакомитесь с важными концепциями и принципами протокола Matter.
  • Спецификация Matter, Библиотека устройств Matter и Библиотека кластеров приложений Matter, опубликованные Connected Standard Alliance .
  • Репозиторий Matter на GitHub .