Tworzenie urządzenia Matter

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

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.

  1. Podłącz płytkę programisty do komputera za pomocą kabla USB.
  2. 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”).

  1. Utwórz katalog zawierający identyfikator ESP-IDF:
    $ mkdir ~/esp-idf_tools
    
  2. 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
    
  3. Dokończ instalację łańcucha narzędzi:
    $ cd ./esp-idf
    $ ./install.sh
    $ cd ~/
    

Konfigurowanie pakietu Matter SDK

  1. 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
    
  2. Pobierz moduły podrzędne repozytorium:
    $ ./scripts/checkout_submodules.py --shallow --platform esp32
    
  3. 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:

  1. Kliknij Utwórz projekt.
  2. Wpisz unikalną nazwę projektu i kliknij Utwórz projekt. Okno tworzenia nowego projektu
  3. 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.
  4. Aby przejść dalej, kliknij Dalej: Programowanie. Wyświetli się strona Lista kontrolna do spraw.
  5. Kliknij Dalej – konfiguracja.
  6. Na stronie Konfiguracja wpisz nazwę usługi.
  7. Kliknij Wybierz typ urządzenia i wybierz typ urządzenia z menu (w tym przypadku Light).
  8. 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.
    Konfiguruję projekt
  9. Teraz zobaczysz swoją integrację w sekcji Integracje spraw.
  10. 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

  1. Skonfiguruj pakiet Matter SDK i aktywuj środowisko kompilacji Matter:
    $ cd ~/esp-idf_tools/esp-idf
    $ source export.sh
    $ cd ~/connectedhomeip
    $ source ./scripts/activate.sh
    
  2. Włącz Ccache, co przyspieszy proces kompilacji:
    $ export IDF_CCACHE_ENABLE=1
    
  3. Przejdź do katalogu kompilacji ESP32 lighting-app i ustaw architekturę docelową:
    $ cd ./examples/lighting-app/esp32
    $ idf.py set-target esp32
    
    1. Uruchom narzędzie konfiguracyjne:
      $ idf.py menuconfig
      
    2. Wybierz Demo -> Device Type i ustaw Device Type na ESP32-DevKitC.
    3. Naciśnij klawisz ze strzałką w lewo, aby powrócić do menu najwyższego poziomu.
    4. Wybierz Component config --->.
    5. Wybierz CHIP Device Layer --->.
    6. Wybierz Device Identification Options --->.
    7. Ustaw Vendor ID na swój identyfikator VID przypisany do Alliance lub testowy identyfikator VID.
    8. Ustaw Product ID na identyfikator PID ustawiony w integracji Matter w konsoli programisty Google Home.
    9. Naciśnij S, aby zapisać.
    10. Naciśnij Return, aby zaakceptować domyślną ścieżkę, w której zostanie zapisana konfiguracja.
    11. Naciśnij Return, aby zamknąć okno potwierdzenia zapisania.
    12. Naciśnij Q, aby zamknąć narzędzie konfiguracyjne.

Uruchamianie kompilacji

Wywołaj skrypt kompilacji:

idf.py build

Kompilacja powinna zakończyć się bez błędów.

Zaprogramuj urządzenie

  1. Podłącz płytę programisty do komputera za pomocą kabla USB.
  2. 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
    
  3. 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

  1. Otwórz okno terminala.
  2. Zanotuj, w którym katalogu jesteś, i połącz się z nowym urządzeniem Matter za pomocą programu GNU screen:
    $ screen -L {device} 115200
    
  3. 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

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: