1. Wprowadzenie
Matter to protokół łączności, który otwiera nowe możliwości w zakresie tworzenia inteligentnych urządzeń. W tym ćwiczeniu utworzysz swoje pierwsze urządzenie Matter. Aby dowiedzieć się więcej o standardzie Matter, odwiedź Centrum dla Deweloperów Google Home: Matter lub stronę Connectivity Standards Alliance.
Czego się nauczysz
- Jak zintegrować urządzenie fizyczne z Matter.
- Jak skonfigurować urządzenie Matter i sterować nim za pomocą Google Home.
Czego potrzebujesz
- Centrala, czyli dowolne urządzenie Google Nest obsługujące Matter, np. Nest Hub (2. generacji).
- Płytka ewaluacyjna Espressif Systems ESP32-DevkitC lub ESP32 M5STACK Matter.
- Komputer z systemem Linux.
- Podstawowa wiedza o systemie Linux.
2. Konfigurowanie środowiska
Określanie urządzenia szeregowego
Pierwszym krokiem w konfigurowaniu środowiska programistycznego jest określenie portu szeregowego, do którego podłączone jest urządzenie. Te informacje pozwolą Ci programować płytkę deweloperską i wchodzić z nią w interakcje.
- Podłącz płytkę deweloperską do komputera za pomocą kabla USB.
- W systemie plików
/devznajdź urządzenie płytki deweloperskiej. Możesz zawęzić wyszukiwanie, określając prefiks urządzenia płytki deweloperskiej. W przypadku ESP32 firmy Espressif jest to/dev/ttyUSBx:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
Konfigurowanie centrali
Skonfiguruj centralę za pomocą tego samego konta Google, którego zamierzasz używać w tym ćwiczeniu.
Konfigurowanie środowiska programistycznego
Wymagania wstępne
Te instrukcje zostały przetestowane w systemie Debian Linux i powinny działać w większości dystrybucji Linuksa opartych na Debianie, w tym w Ubuntu. Jeśli pracujesz z inną dystrybucją Linuksa, procedura konfigurowania zależności może się różnić od opisanej poniżej.
Instalowanie zależności
Uruchom to polecenie, aby zainstalować wymagane pliki binarne pakietu Linux, które mogą nie być jeszcze zainstalowane:
$ 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
Konfigurowanie pakietu SDK
Aby kontynuować to ćwiczenie, potrzebujesz pakietu SDK firmy Espressif (Espressif IoT Development Framework lub „ESP-IDF”).
- Utwórz katalog, w którym będzie się znajdować ESP-IDF:
$ mkdir ~/esp-idf_tools
- Sklonuj ESP-IDF z GitHub do tego katalogu:
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- Zakończ instalację łańcucha narzędzi:
$ cd ./esp-idf $ ./install.sh $ cd ~/
Konfigurowanie pakietu SDK Matter
- Sklonuj repozytorium Matter typu open source:
$ git clone https://github.com/project-chip/connectedhomeip.git $ cd ./connectedhomeip $ git fetch origin v1.0-branch $ git checkout FETCH_HEAD
- Pobierz podmoduły repozytorium:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Wczytaj środowisko programistyczne Matter:
$ source ./scripts/bootstrap.sh
3. Konsola programisty Google Home
Konsola programisty Google Home to aplikacja internetowa, w której możesz zarządzać integracjami Matter z Google Home.
Każde urządzenie Matter, które przeszło certyfikację Connectivity Standards Alliance (Alliance), działa w ekosystemie Google Home. Urządzenia w trakcie opracowywania, które nie zostały jeszcze certyfikowane, mogą być konfigurowane w ekosystemie Google Home pod pewnymi warunkami. Więcej informacji znajdziesz w sekcji Ograniczenia parowania.
Tworzenie projektu deweloperskiego
Zacznij od otwarcia konsoli programisty Google Home:
- Kliknij Utwórz projekt.
- Wpisz unikalną nazwę projektu, a potem kliknij Utwórz projekt.

- Kliknij + Dodaj integrację, aby przejść do ekranu Zasoby Matter, na którym możesz wyświetlić dokumentację dotyczącą tworzenia aplikacji Matter i przeczytać o niektórych narzędziach.
- Gdy wszystko będzie gotowe, kliknij Dalej: tworzenie, aby wyświetlić stronę Lista kontrolna Matter.
- Kliknij Dalej: konfiguracja.
- Na stronie Konfiguracja wpisz Nazwę produktu.
- Kliknij Wybierz typ urządzenia i w menu wybierz typ urządzenia (w tym przypadku
Light). - W polu Vendor ID (VID) (Identyfikator dostawcy) wybierz Test VID (Testowy identyfikator dostawcy), a potem w menu Test VID (Testowy identyfikator dostawcy) wybierz 0xFFF1. W polu Product ID (PID) (Identyfikator produktu) wpisz 0x8000 i kliknij Zapisz i kontynuuj , a potem na następnej stronie kliknij Zapisz. Użyj dokładnie tych wartości VID/PID, ponieważ są one wymagane w dalszych krokach ćwiczenia.

- Teraz integracja będzie widoczna w sekcji Integracje Matter.
- Uruchom ponownie centralę, aby mieć pewność, że otrzyma ona najnowszą konfigurację projektu integracji Matter. Jeśli później będziesz musiał zmienić identyfikator VID lub PID, po zapisaniu projektu musisz też ponownie uruchomić centralę, aby zmiany zostały zastosowane. Szczegółowe instrukcje ponownego uruchamiania znajdziesz w artykule Ponowne uruchamianie urządzeń Google Nest lub Google Wifi.
4. Tworzenie urządzenia
Wszystkie przykłady w Matter znajdują się w folderze examples w repozytorium GitHub. Dostępnych jest kilka przykładów, ale w tym ćwiczeniu skupimy się na aplikacji lighting-app.
Ten przykład to proste urządzenie, które w Google Home jest wyświetlane jako włącznik światła i reaguje na polecenia włączania i wyłączania. Sterowanie prawdziwym oświetleniem elektrycznym wykracza poza zakres tego ćwiczenia.
Konfigurowanie kompilacji
- Skonfiguruj pakiet SDK Matter i aktywuj środowisko kompilacji Matter:
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- Włącz Ccache, aby przyspieszyć proces kompilacji:
$ export IDF_CCACHE_ENABLE=1
- Przejdź do katalogu kompilacji ESP32
lighting-appi ustaw architekturę docelową:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- Uruchom narzędzie do konfiguracji:
$ idf.py menuconfig
- Wybierz
Demo -> Device Typei ustawDevice TypenaESP32-DevKitC. - Naciśnij strzałkę w lewo, aby wrócić do menu najwyższego poziomu.
- Wybierz
Component config --->(Konfiguracja komponentu --->). - Wybierz
CHIP Device Layer --->(Warstwa urządzenia CHIP --->). - Wybierz
Device Identification Options --->(Opcje identyfikacji urządzenia --->). - Ustaw
Vendor ID(Identyfikator dostawcy) na identyfikator VID przypisany przez Alliance lub na testowy identyfikator VID. - Ustaw
Product ID(Identyfikator produktu) na identyfikator PID ustawiony w integracji Matter w konsoli programisty Google Home. - Naciśnij S , aby zapisać.
- Naciśnij Enter , aby zaakceptować domyślną ścieżkę, w której zostanie zapisana konfiguracja.
- Naciśnij Enter , aby zamknąć okno potwierdzenia zapisu.
- Naciśnij Q , aby zamknąć narzędzie do konfiguracji.
- Uruchom narzędzie do konfiguracji:
Uruchamianie kompilacji
Wywołaj skrypt kompilacji:
idf.py build
Kompilacja powinna zakończyć się bez błędów.
Programowanie urządzenia
- Podłącz płytkę deweloperską do komputera za pomocą kabla USB.
- Usuń poprzednie oprogramowanie z urządzenia (jeśli do komputera jest podłączona tylko 1 płytka deweloperska, możesz pominąć opcję
-p {device}– urządzenie powinno zostać wykryte automatycznie):idf.py -p {device} erase-flash - Skopiuj nową aplikację na płytkę deweloperską za pomocą tego polecenia:
idf.py -p {device} flash
Więcej informacji o opcjach flashowania znajdziesz na stronie dokumentacji Espressif esptool.py.
5. Łączenie z urządzeniem
- Otwórz okno terminala.
- Zanotuj, w jakim katalogu się znajdujesz, a potem połącz się z nowym urządzeniem Matter za pomocą GNU
screen:$ screen -L {device} 115200 - Jeśli widzisz pustą konsolę, naciśnij przycisk RESET , aby rozpocząć proces uruchamiania urządzenia.
6. Konfigurowanie urządzenia
Uwaga: ten krok zakończy się powodzeniem tylko wtedy, gdy projekt został już skonfigurowany w konsoli programisty Google Home.
Nest Hub
Aby skonfigurować urządzenie w sieci Matter, potrzebujesz centrali. Jest to urządzenie Google Nest, np. Nest Hub (2. generacji), które obsługuje Matter i będzie pełnić funkcję zarówno routera brzegowego dla urządzeń obsługujących Thread, jak i lokalnej ścieżki realizacji do kierowania intencji inteligentnego domu.
Na tej liście znajdziesz centrale obsługujące Matter.
Zanim rozpoczniesz proces konfiguracji, sprawdź, czy:
- centrala jest sparowana z tym samym kontem Google, którego używasz do logowania się w konsoli Google Home;
- centrala jest połączona z tą samą siecią Wi-Fi co komputer, na którym uruchamiasz wirtualne urządzenie Matter;
- centrala znajduje się w tej samej strukturze, której używasz w aplikacji Google Home (dom w grafie Google Home reprezentuje Twoją strukturę).
Parowanie urządzenia
Aby sparować urządzenie, postępuj zgodnie z instrukcjami parowania ESP32.
Uwaga: jeśli używasz M5STACK, pamiętaj, że po flashowaniu ekran pozostanie pusty, więc kod QR musisz wyświetlić za pomocą adresu URL, który pojawi się w konsoli. Możesz też wpisać ręczny kod parowania.
Przykładowe dane wyjściowe konsoli z adresem URL kodu 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]]
Rozwiązywanie problemów
Konfiguracja się nie powiodła
- Sprawdź, czy w konsoli Google Home utworzono projekt z prawidłową kombinacją identyfikatorów VID/PID.
- Sprawdź, czy w konfiguracji kompilacji wpisano prawidłowe identyfikatory VID i PID.
- Sprawdź, czy w konfiguracji kompilacji wybrano prawidłowy
Device Type.
Więcej wskazówek dotyczących rozwiązywania problemów znajdziesz na stronie Rozwiązywanie problemów z Matter.
7. Sterowanie urządzeniem
Gdy urządzenie zgodne z Matter zostanie pomyślnie skonfigurowane i pojawi się w aplikacji Google Home jako żarówka, możesz spróbować sterować nim za pomocą Asystenta Google, aplikacji Google Home lub symulatora Asystenta Google w rozszerzeniu Google Home dla VS Code.
Asystent Google
Użyj Asystenta Google na telefonie lub centrali, aby przełączać stan urządzenia za pomocą poleceń głosowych, np. „OK Google, włącz światła”.
Więcej przykładów poleceń znajdziesz w sekcji Sterowanie inteligentnymi urządzeniami domowymi za pomocą poleceń głosowych w artykule Sterowanie inteligentnymi urządzeniami domowymi dodanymi do aplikacji Google Home.
Aplikacja Google Home
Możesz kliknąć etykiety Włącz i Wyłącz obok ikony żarówki wyświetlanej w aplikacji Google Home.
Więcej informacji znajdziesz w sekcji _Sterowanie urządzeniami za pomocą aplikacji Google Home_.
Symulator Asystenta Google
W rozszerzeniu Google Home dla VS Code możesz używać symulatora Asystenta Google, aby wydawać polecenia urządzeniu za pomocą interfejsu podobnego do czatu.
8. Gratulacje!
Udało Ci się utworzyć i skonfigurować pierwsze urządzenie Matter. Świetnie!
Z tego ćwiczenia dowiedziałeś się, jak:
- zainstalować środowisko programistyczne Matter i doprowadzić je do stanu gotowości do pracy;
- skompilować i uruchomić urządzenie Matter;
- skonfigurować urządzenie i sterować nim za pomocą Google Home.
Aby dowiedzieć się więcej o Matter, zapoznaj się z tymi materiałami:
- Matter Primer od Google Home, w którym znajdziesz ważne pojęcia i zasady protokołu Matter.
- Specyfikacja Matter, biblioteka urządzeń Matter i biblioteka klastrów aplikacji Matter opublikowane przez Connected Standard Alliance.
- Repozytorium Matter na GitHubie.