1. Wprowadzenie
Matter to protokół łączności, który zapewnia niesamowite możliwości w zakresie rozwoju inteligentnych urządzeń. W ramach tego ćwiczenia w Codelabs utworzysz pierwsze urządzenie 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 ze standardem Matter.
- Jak uruchomić urządzenie Matter i nim sterować za pomocą Google Home.
Czego potrzebujesz
- Hub, czyli dowolne urządzenie Google Nest obsługujące standard Matter, takie jak Nest Hub (2 generacji).
- albo tablica oceniająca Matter Systems ESP32-DevkitC lub ESP32 M5STACK.
- Komputer z systemem Linux.
- Podstawowa znajomość systemu Linux.
2. Konfigurowanie środowiska
Zidentyfikuj urządzenie szeregowe
Pierwszym krokiem przy konfigurowaniu środowiska programistycznego jest określenie, do którego portu szeregowego jest podłączone Twoje urządzenie. Te informacje umożliwią Ci programowanie i interakcję z platformą programisty.
- Podłącz płytkę programisty do komputera za pomocą kabla USB.
- Znajdź urządzenie deweloperskie w systemie plików
/dev
. Możesz zawęzić wyszukiwanie, podając prefiks urządzenia swojego zespołu programistów. Protokół ESP32 Espressif używa identyfikatora/dev/ttyUSBx
:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
Konfigurowanie centrum
Skonfiguruj centrum przy użyciu tego samego konta Google, którego chcesz 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 różnić się od przedstawionych 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
Do kontynuowania tego ćwiczenia w Codelabs potrzebny jest pakiet SDK Espressif (Espressif IoT Development Framework, „ESP-IDF”).
- Utwórz katalog zawierający identyfikator 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
- Dokończ instalację łańcucha narzędzi:
$ cd ./esp-idf $ ./install.sh $ cd ~/
Konfigurowanie pakietu Matter SDK
- 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 moduły podrzędne repozytorium:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Wczytywanie ś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ć integracją standardu Matter z Google Home.
W ekosystemie Google Home działa każde urządzenie Matter, które otrzymało certyfikat Connectivity Standards Alliance (Alliance) Matter. Urządzenia będące w trakcie opracowywania, które nie mają certyfikatu, można w określonych warunkach przekazywać w ekosystemie Google Home. Więcej informacji znajdziesz w sekcji Ograniczenia parowania.
Tworzenie projektu programisty
Najpierw otwórz konsolę programisty Google Home:
- Kliknij Utwórz projekt.
- Wpisz unikalną nazwę projektu i kliknij Utwórz projekt.
- Kliknij + Dodaj integrację. Otworzy się ekran Zasoby dotyczące spraw, na którym możesz wyświetlić dokumentację programowania standardu Matter i poczytać o niektórych narzędziach.
- Aby przejść dalej, kliknij Dalej: Programowanie. Wyświetli się strona Lista kontrolna do 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 Test VID (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 na następnej stronie kliknij Zapisz. Użyj tych dokładnych wartości VID/PID. Zależą od nich późniejsze kroki ćwiczeń w Codelabs.
- Teraz zobaczysz swoją integrację w sekcji Integracje spraw.
- Zrestartuj centrum, aby mieć pewność, że otrzymało najnowszą konfigurację projektu integracji ze standardem Matter. Jeśli później będzie konieczna zmiana identyfikatora VID lub PID, trzeba będzie zrestartować projekt po zapisaniu projektu, aby zmiana zaczęła obowiązywać. Szczegółowe instrukcje znajdziesz w artykule Ponowne uruchamianie urządzeń Google Nest lub Google Wifi.
4. Zbuduj urządzenie
Wszystkie przykłady ze standardu Matter znajdują się w folderze przykładów w repozytorium GitHub. Dostępnych jest kilka przykładów, ale to ćwiczenia z programowania skupiamy się na aplikacji lighting-app.
To proste urządzenie, które wyświetla się w Google Home jako światło włączane/wyłączone i reaguje na polecenia włączania i wyłączania. Skonfigurowanie go w celu kontrolowania rzeczywistego światła elektrycznego wykracza poza zakres tego ćwiczenia z programowania.
Konfigurowanie kompilacji
- Skonfiguruj pakiet Matter SDK i aktywuj środowisko kompilacji Matter:
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- Włącz Ccache, co przyspieszy 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 konfiguracyjne:
$ idf.py menuconfig
- Wybierz
Demo -> Device Type
i ustawDevice Type
naESP32-DevKitC
. - Naciśnij klawisz ze strzałką w lewo, aby powró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 do Alliance lub testowy identyfikator VID. - Ustaw
Product ID
na identyfikator PID ustawiony w integracji Matter w konsoli programisty Google Home. - Naciśnij S, aby zapisać.
- Naciśnij Return, aby zaakceptować domyślną ścieżkę, w której zostanie zapisana konfiguracja.
- Naciśnij Return, aby zamknąć okno potwierdzenia zapisania.
- Naciśnij Q, aby zamknąć narzędzie konfiguracyjne.
- Uruchom narzędzie konfiguracyjne:
Uruchamianie kompilacji
Wywołaj skrypt kompilacji:
idf.py build
Kompilacja powinna zakończyć się bez błędów.
Zaprogramuj urządzenie
- Podłącz płytę programisty do komputera za pomocą kabla USB.
- Wyczyść poprzednie oprogramowanie układowe na urządzeniu (jeśli do komputera masz podłączoną tylko jedną płytę programisty, możesz wyłączyć opcję
-p {device}
– urządzenie powinno zostać wykryte automatycznie):idf.py -p {device} erase-flash
- Skopiuj nową aplikację do tablicy programisty za pomocą:
idf.py -p {device} flash
Więcej informacji o opcjach dotyczących lampy błyskowej znajdziesz na stronie dokumentacji Espressif esptool.py
.
5. Połącz się z urządzeniem
- Otwórz okno terminala.
- Zanotuj, w którym katalogu jesteś, i połącz się z nowym urządzeniem Matter za pomocą programu GNU
screen
:$ screen -L {device} 115200
- Jeśli zobaczysz pustą konsolę, naciśnij przycisk RESETUJ, aby rozpocząć proces uruchamiania urządzenia.
6. Przekaż urządzenie
Uwaga: ten krok powiedzie się tylko wtedy, gdy Twój projekt jest już skonfigurowany w konsoli programisty Google Home.
Nest Hub
Aby uruchomić urządzenie na tkaninie Matter, musisz mieć centrum. Jest to urządzenie Google Nest, takie jak Nest Hub (2 generacji), które obsługuje standard Matter i służy zarówno jako router brzegowy w przypadku urządzeń obsługujących Thread, jak i lokalna ścieżka realizacji do kierowania intencji inteligentnego domu.
Na tej liście możesz sprawdzić, które centra obsługują standard Matter.
Przed rozpoczęciem procesu uruchamiania upewnij się, że:
- Centrum jest sparowane z tym samym kontem Google, którego używasz do logowania się w konsoli Google Home.
- Centrum jest w tej samej sieci Wi-Fi co komputer, którego używasz do uruchomienia urządzenia wirtualnej sprawy.
- Centrum jest w tej samej strukturze, której używasz w aplikacji Google Home. („Dom” na Grafie Google Home reprezentuje Twoją strukturę).
Sparuj urządzenie
Postępuj zgodnie z instrukcjami parowania z ESP32, aby sparować urządzenie.
Uwaga: jeśli używasz M5STACK, pamiętaj, że po odtworzeniu obrazu jego ekran jest pusty. Aby go wyświetlić, musisz użyć adresu URL z konsoli. Możesz też zamiast tego wpisać kod parowania ręcznego.
Przykładowe dane wyjściowe w 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
Nieudane prowizje
- Sprawdź, czy w konsoli Google Home został utworzony projekt z właściwą kombinacją identyfikatora VID i PID.
- Sprawdź, czy w konfiguracji kompilacji wpisane są prawidłowe identyfikatory VID i PID.
- Sprawdź, czy w konfiguracji kompilacji została wybrana prawidłowa
Device Type
.
Więcej wskazówek dotyczących rozwiązywania problemów znajdziesz na stronie Rozwiązywanie problemów.
7. Steruj urządzeniem
Gdy urządzenie zgodne ze standardem Matter zostanie oddane do użytku 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 aplikacji VS Code.
Asystent Google
Użyj Asystenta Google na telefonie lub koncentratorze, aby przełączać stan urządzenia za pomocą poleceń głosowych, takich jak „OK Google, przełącz światło”.
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 widocznej w aplikacji Google Home.
Więcej informacji znajdziesz w artykule Sterowanie urządzeniami w aplikacji Google Home.
Symulator Asystenta Google
W rozszerzeniu Google Home dotyczącym VS Code za pomocą symulatora Asystenta Google możesz wydawać wypowiedzi na urządzeniu, korzystając z interfejsu przypominającego czat.
8. Gratulacje!
Udało Ci się utworzyć i oddać do użytku pierwsze urządzenie Matter. Świetnie!
Dzięki temu ćwiczeniu w programie omówiliśmy, jak:
- Zainstaluj środowisko programistyczne Matter od wymagań do stanu roboczego.
- Utworzenie i uruchomienie urządzenia Matter.
- Przekaż urządzenie i steruj nim z poziomu Google Home.
Aby dowiedzieć się więcej o standardzie Matter, zapoznaj się z tymi materiałami:
- Poradnik Matter Primer od Google Home, w którym poznasz ważne koncepcje i zasady protokołu Matter.
- Specyfikacja Matter, Biblioteka urządzeń w standardzie i Biblioteka klastrów aplikacji Matter opublikowana przez Connected Standard Alliance.
- repozytorium Matter GitHub.