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

1. Введение

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

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

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

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

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

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

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

  1. Подключите плату разработчика к компьютеру с помощью USB-кабеля.
  2. Найдите устройство платы разработчика в файловой системе /dev . Вы можете сузить область поиска, указав префикс устройства вашей платы разработчика. Например, Espressif ESP32 использует /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.

Для продолжения этого практического занятия вам понадобится SDK Espressif (фреймворк разработки IoT Espressif, или '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 ~/
    

Настройте SDK Matter.

  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. Запустите среду разработки The 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. Теперь вы увидите свою интеграцию в разделе «Интеграции Matter» .
  10. Перезагрузите хаб, чтобы убедиться, что он получил самую последнюю конфигурацию проекта интеграции Matter. Если вам потребуется изменить VID или PID позже, вам также потребуется перезагрузить устройство после сохранения проекта, чтобы изменения вступили в силу. Пошаговые инструкции по перезагрузке см. в разделе «Перезапуск устройств Google Nest или Google Wifi» .

4. Соберите устройство.

Все примеры из Matter находятся в папке examples в репозитории Github . Доступно несколько примеров, но в этом практическом занятии мы сосредоточимся на приложении lighting-app .

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

Настройте сборку

  1. Настройте SDK Matter и активируйте среду сборки Matter:
    $ cd ~/esp-idf_tools/esp-idf
    $ source export.sh
    $ cd ~/connectedhomeip
    $ source ./scripts/activate.sh
    
  2. Включите кэширование (Ccache) , это ускорит процесс сборки:
    $ export IDF_CCACHE_ENABLE=1
    
  3. Перейдите в каталог сборки lighting-app для ESP32 и укажите целевую архитектуру:
    $ 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 равным идентификатору продукта, который вы задали для интеграции Matter в консоли разработчика Google Home.
    9. Нажмите S для сохранения.
    10. Нажмите Enter , чтобы принять путь по умолчанию, куда будут сохранены настройки.
    11. Нажмите Enter , чтобы закрыть диалоговое окно подтверждения сохранения.
    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 с помощью команды GNU screen :
    $ screen -L {device} 115200
    
  3. Если на экране консоли отображается пустое поле, нажмите кнопку RESET , чтобы запустить процесс загрузки устройства.

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

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

Nest Hub

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

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

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

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

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

Для сопряжения устройства следуйте инструкциям по сопряжению 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 Ассистент на своем телефоне или хабе, чтобы переключать состояние устройства с помощью голосовых команд, например, скажите: «Привет, Google, включи свет».

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

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

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

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

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

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

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

Вы успешно создали и ввели в эксплуатацию своё первое устройство Matter. Замечательно!

В этом практическом занятии вы научились:

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

Чтобы узнать больше о материи, изучите следующие источники: