1. Wprowadzenie
Matter to protokół łączności, który zapewnia ekscytujące możliwości rozwoju urządzeń inteligentnych. W tym ćwiczeniu z programowania stworzysz pierwsze urządzenie ze standardem Matter. Aby dowiedzieć się więcej o standardzie Matter, odwiedź Google Home Developer Center: Matter lub stronę Connectivity Standards Alliance.
Czego się nauczysz
- Jak zintegrować urządzenie fizyczne z standardem Matter.
- Jak uruchomić i sterować urządzeniem Matter za pomocą Google Home.
Czego potrzebujesz
- Koncentrator to dowolne urządzenie Google Nest obsługujące standard Matter, np. Nest Hub (2 generacji).
- Platforma oceniająca Espressif Systems ESP32-DevkitC lub ESP32 M5STACK Matter.
- Komputer z systemem Linux.
- Podstawowa wiedza o systemie Linux.
2. Konfigurowanie środowiska
Zidentyfikuj urządzenie szeregowe
Pierwszym krokiem podczas konfigurowania środowiska programistycznego jest określenie, do którego portu szeregowego jest podłączone Twoje urządzenie. Te informacje pozwolą Ci programować panel dewelopera i wchodzić z nim w interakcje.
- Podłącz płytę programisty do komputera kablem USB.
- Wyszukaj w systemie plików
/dev
urządzenie płyty programisty. Możesz zawęzić wyszukiwanie, podając prefiks urządzenia płyty programisty. ESP32 wykonawcy Espressif wykorzystuje/dev/ttyUSBx
:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
Konfigurowanie centrum
Skonfiguruj centrum przy użyciu konta Google, którego zamierzasz użyć w tym ćwiczeniu z programowania.
Konfigurowanie środowiska programistycznego
Wymagania wstępne
Te instrukcje zostały przetestowane w systemie Debian Linux i powinny działać w większości dystrybucji systemu Linux opartych na Debianie, w tym Ubuntu. Jeśli używasz innej dystrybucji Linuksa, procedura konfiguracji zależności może wyglądać inaczej.
Instalowanie zależności
Uruchom to polecenie, aby zainstalować wymagane pliki binarne pakietów Linuksa, które mogły 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
Skonfiguruj pakiet SDK
Aby kontynuować to ćwiczenie z programowania, będziesz potrzebować pakietu SDK Espressif (ESP-IDF, czyli Espressif IoT Development Framework).
- Utwórz katalog, który będzie zawierał plik ESP-IDF:
$ mkdir ~/esp-idf_tools
- Skopiuj plik ESP-IDF z GitHuba do tego katalogu:
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- Zainstaluj łańcuch narzędzi:
$ cd ./esp-idf $ ./install.sh $ cd ~/
Konfigurowanie pakietu Matter SDK
- Skopiuj 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 moduły podrzędne repozytorium:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Uruchomienie środowiska programistycznego 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 certyfikat Connectivity Standards Alliance (Alliance) Matter, działa w ekosystemie Google Home. Urządzenia, które nie zostały certyfikowane, można od razu uruchomić w ekosystemie Google Home pod pewnymi warunkami. Więcej informacji znajdziesz w sekcji Ograniczenia dotyczące parowania.
Tworzenie projektu programisty
Najpierw otwórz konsolę programisty Google Home:
- Na stronie Zarządzaj projektami kliknij Utwórz projekt.
- Na stronie Rozpocznij kliknij Utwórz projekt.
- Wpisz unikalną nazwę projektu, a następnie kliknij Create new project (Utwórz nowy projekt).
- Kliknij + Dodaj integrację. Otworzy się ekran „Zasoby sprawy”, na którym możesz przejrzeć dokumentację dotyczącą tworzenia standardu Matter i poznać niektóre narzędzia.
- Aby kontynuować, kliknij Next: Develop (Dalej: program), co spowoduje wyświetlenie strony Lista kontrolna spraw.
- Kliknij Dalej: konfiguracja.
- Na stronie Konfiguracja wpisz nazwę usługi.
- Kliknij Wybierz typ urządzenia i wybierz typ urządzenia z menu (w tym przypadku
Light
). - W polu Identyfikator dostawcy (VID) wybierz Testuj identyfikator VID i wybierz 0xFFF1 z menu Testuj identyfikator VID. W polu Identyfikator produktu (PID) wpisz 0x8000 i kliknij Zapisz i kontynuuj, a następnie kliknij Zapisz na następnej stronie.
- Teraz w sekcji integracji Matter zobaczysz 1 urządzenie ze standardem Matter.
- Zrestartuj centrum, aby mieć pewność, że otrzymuje najnowszą konfigurację projektu integracji Matter. Jeśli musisz później zmienić identyfikator VID lub PID, po zapisaniu projektu musisz też ponownie uruchomić projekt, aby zmiana została zastosowana. Szczegółowe instrukcje znajdziesz w artykule Ponowne uruchamianie urządzeń Google Nest lub Google Wifi.
4. Zbuduj urządzenie
Wszystkie przykłady w standardzie Matter znajdziesz w folderze z przykładami w repozytorium GitHub. Dostępnych jest kilka przykładów, ale nasze ćwiczenia z programowania dotyczą aplikacji oświetleniowej.
W tym przykładzie to proste urządzenie wyświetlane w Google Home jako światło do włączania i wyłączania, które reaguje na polecenia włączania i wyłączania. Te ćwiczenia nie obejmują możliwości sterowania prawdziwym oświetleniem elektrycznym.
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 ustawienie Ccache, które przyspiesza proces kompilacji:
$ export IDF_CCACHE_ENABLE=1
- Przejdź do katalogu kompilacji ESP32
lighting-app
i ustaw architekturę docelową:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- Uruchom narzędzie do konfiguracji:
$ idf.py menuconfig
- Wybierz
Demo -> Device Type
i ustawDevice Type
naESP32-DevKitC
. - Naciśnij klawisz strzałki w lewo, aby wrócić do menu najwyższego poziomu.
- Wybierz
Component config --->
. - Wybierz
CHIP Device Layer --->
. - Wybierz
Device Identification Options --->
. - Ustaw
Vendor ID
na swój identyfikator VID przypisany przez stowarzyszenie lub testowy identyfikator VID. - Ustaw
Product ID
na identyfikator PID ustawiony w integracji Matter w konsoli programisty Google Home. - Aby zapisać, naciśnij S.
- Naciśnij Return, aby zaakceptować domyślną ścieżkę pliku, w której zostanie zapisana konfiguracja.
- Naciśnij Return, aby zamknąć okno potwierdzenia zapisu.
- Naciśnij Q, aby wyjść z narzędzia konfiguracyjnego.
- Uruchom narzędzie do konfiguracji:
Uruchamianie kompilacji
Wywołaj skrypt kompilacji:
idf.py build
Kompilacja powinna się zakończyć bez błędów.
Zaprogramuj urządzenie
- Podłącz tablicę programisty do komputera kablem USB.
- Wyczyść poprzednie oprogramowanie układowe na urządzeniu (jeśli do komputera jest podłączona tylko jedna płyta programisty, możesz zrezygnować z opcji
-p {device}
– urządzenie powinno zostać wykryte automatycznie):idf.py -p {device} erase-flash
- Skopiuj nową aplikację do tablicy programistów przy użyciu:
idf.py -p {device} flash
Więcej informacji o opcjach Flasha znajdziesz na stronie dokumentacji Espressif esptool.py
.
5. Połącz z urządzeniem
- Otwórz okno terminala.
- Zanotuj katalog, w którym się znajdujesz, a następnie połącz się z nowym urządzeniem Matter przy użyciu GNU
screen
:$ screen -L {device} 115200
- Jeśli widzisz pustą konsolę, naciśnij przycisk RESETUJ, aby rozpocząć proces uruchamiania urządzenia.
6. Przekaż urządzenie
Uwaga: ten krok zadziała tylko wtedy, gdy masz już skonfigurowany projekt w konsoli programisty Google Home.
Nest Hub
Do złożenia urządzenia na tkaninę Matter wymagane jest centrum. To urządzenie Google Nest, takie jak Nest Hub (2 generacji), które obsługuje standard Matter i będzie pełnić zarówno funkcję routera granicznego dla urządzeń obsługujących Thread, jak i lokalną ścieżkę realizacji zamówień do inteligentnego domu.
Sprawdź tę listę, aby sprawdzić, które centra obsługują standard Matter.
Przed rozpoczęciem procesu uruchamiania upewnij się, że:
- Twoje centrum jest sparowane z tym samym kontem Google, którego używasz do logowania się w konsoli Google Home.
- Hub jest w tej samej sieci Wi-Fi co komputer, którego używasz do uruchamiania urządzenia Virtual Matter.
- Twoje centrum ma tę samą strukturę, której używasz w aplikacji Google Home. „Dom” w Google Home Graph reprezentuje Twoją strukturę.
Sparuj urządzenie
Wykonaj instrukcje parowania ESP32, aby sparować urządzenie.
Uwaga: jeśli używasz urządzenia M5STACK, pamiętaj, że po zmignięciu ekranu jego ekran pozostanie pusty, więc trzeba będzie wyświetlić kod QR za pomocą adresu URL podanego w konsoli. Możesz też wpisać ręcznie 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
Nie udało się uruchomić
- Sprawdź, czy w konsoli Google Home został utworzony projekt z prawidłową kombinacją identyfikatora VID i PID.
- Sprawdź, czy w konfiguracji kompilacji podano prawidłowy identyfikator VID i PID.
- Sprawdź, czy w konfiguracji kompilacji został wybrany prawidłowy typ elementu
Device Type
.
Więcej wskazówek dotyczących rozwiązywania problemów znajdziesz na stronie Rozwiązywanie problemów ze sprawą.
7. Steruj urządzeniem
Gdy urządzenie zgodne ze standardem Matter zostanie udostępnione i wyświetli się w aplikacji Google Home jako żarówka, możesz spróbować nim sterować za pomocą Asystenta Google, aplikacji Google Home lub symulatora Asystenta Google w rozszerzeniu Google Home dla VS Code.
Asystent Google
Za pomocą Asystenta Google na telefonie lub centrum możesz przełączać stan urządzenia na podstawie poleceń głosowych, np. „OK Google, przełą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ł. i Wył. obok ikony żarówki w aplikacji Google Home.
Więcej informacji znajdziesz w artykule Sterowanie urządzeniami za pomocą aplikacji Google Home.
Symulator Asystenta Google
W rozszerzeniu Google Home dla VS Code, używając symulatora Asystenta Google, możesz wydawać polecenia na urządzenie, używając interfejsu przypominającego czat.
8. Gratulacje!
Udało Ci się utworzyć i udostępnić pierwsze urządzenie Matter. Świetnie!
Dzięki temu ćwiczeniu z programowania wiesz już, jak:
- Zainstaluj środowisko programistyczne Matter od wymagań do stanu roboczego.
- Zbudowanie i uruchamianie urządzenia ze standardem Matter.
- Prowizja i sterowanie urządzeniem z Google Home.
Aby dowiedzieć się więcej o standardzie Matter, zapoznaj się z tymi materiałami:
- Poradnik Matter Primer w Google Home, w którym poznasz ważne pojęcia i zasady korzystania z protokołu Matter.
- Specyfikacja Matter, biblioteka Matter Device Library i Matter Application Cluster Library, opublikowane przez Connected Standard Alliance.
- Repozytorium Matter na GitHubie.