Crea un dispositivo Matter

1. Introduzione

Matter è un protocollo di connettività che offre opportunità interessanti per lo sviluppo di smart device. In questo codelab, creerai il tuo primo dispositivo Matter. Per scoprire di più su Matter, visita il Developer Center di Google Home: Matter o il sito web della Connectivity Standards Alliance.

Obiettivi didattici

  • Come integrare un dispositivo fisico con Matter.
  • Come configurare e controllare il dispositivo Matter con Google Home.

Che cosa ti serve

2. Configura l'ambiente

Identifica il dispositivo seriale

Il primo passo per configurare l'ambiente di sviluppo è determinare a quale porta seriale è collegato il dispositivo. Queste informazioni ti consentiranno di programmare e interagire con la scheda di sviluppo.

  1. Collega la scheda di sviluppo al computer utilizzando un cavo USB.
  2. Cerca il dispositivo della scheda di sviluppo nel file system /dev. Puoi restringere la ricerca specificando il prefisso del dispositivo della scheda di sviluppo. ESP32 di Espressif utilizza /dev/ttyUSBx:
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    

Configura l'hub

Configura l'hub utilizzando lo stesso Account Google che intendi utilizzare per questo codelab.

Configura l'ambiente di sviluppo

Prerequisiti

Queste istruzioni sono state testate su Debian Linux e dovrebbero funzionare sulla maggior parte delle distribuzioni Linux basate su Debian, inclusa Ubuntu. Se utilizzi una distribuzione Linux diversa, la procedura di configurazione delle dipendenze potrebbe variare rispetto a quella che segue.

Installa le dipendenze

Esegui il seguente comando per installare i file binari dei pacchetti Linux richiesti che potrebbero non essere già installati:

$ 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

Configura l'SDK

Per continuare questo codelab, ti servirà l'SDK Espressif (Espressif IoT Development Framework o "ESP-IDF").

  1. Crea una directory per contenere ESP-IDF:
    $ mkdir ~/esp-idf_tools
    
  2. Clona ESP-IDF da GitHub in questa directory:
    $ cd ~/esp-idf_tools
    $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
    
  3. Completa l'installazione della toolchain:
    $ cd ./esp-idf
    $ ./install.sh
    $ cd ~/
    

Configura l'SDK Matter

  1. Clona il repository open source Matter:
    $ git clone https://github.com/project-chip/connectedhomeip.git
    $ cd ./connectedhomeip
    $ git fetch origin v1.0-branch
    $ git checkout FETCH_HEAD
    
  2. Recupera i sottomoduli del repository:
    $ ./scripts/checkout_submodules.py --shallow --platform esp32
    
  3. Esegui il bootstrap dell'ambiente di sviluppo Matter:
    $ source ./scripts/bootstrap.sh
    

3. Google Home Developer Console

La Google Home Developer Console è l'applicazione web in cui gestisci le integrazioni Matter con Google Home.

Qualsiasi dispositivo Matter che ha superato la certificazione Matter della Connectivity Standards Alliance (Alliance) funziona nell'ecosistema Google Home. I dispositivi in fase di sviluppo che non sono stati certificati possono essere configurati nell'ecosistema Google Home a determinate condizioni. Per ulteriori informazioni, consulta la sezione Restrizioni di accoppiamento.

Crea un progetto per sviluppatori

Inizia accedendo a Google Home Developer Console:

  1. Fai clic su Crea progetto.
  2. Inserisci un nome di progetto univoco e fai clic su Crea progetto. Finestra di dialogo Crea nuovo progetto
  3. Fai clic su + Aggiungi integrazione per accedere alla schermata Risorse Matter , dove puoi visualizzare la documentazione di sviluppo di Matter e leggere alcuni strumenti.
  4. Quando è tutto pronto per continuare, fai clic su Avanti: sviluppa per visualizzare la pagina Elenco di controllo Matter.
  5. Fai clic su Avanti: configurazione.
  6. Nella pagina Configurazione, inserisci il nome del prodotto.
  7. Fai clic su Seleziona tipo di dispositivo e seleziona il tipo di dispositivo dal menu a discesa (in questo caso, Light).
  8. In ID fornitore (VID), seleziona VID di test e seleziona 0xFFF1 dal menu a discesa VID di test. In ID prodotto (PID), inserisci 0x8000 e fai clic su Salva e continua, quindi fai clic su Salva nella pagina successiva. Utilizza questi valori VID/PID esatti, perché i passaggi successivi del codelab dipendono da essi.
    Configurare un progetto
  9. Ora vedrai l'integrazione in Integrazioni Matter.
  10. Riavvia l'hub per assicurarti che riceva la configurazione del progetto di integrazione Matter più recente. Se devi modificare il VID o il PID in un secondo momento, dovrai anche riavviare dopo aver salvato il progetto affinché la modifica venga applicata. Per istruzioni dettagliate sul riavvio, consulta l'articolo Riavviare i dispositivi Google Nest o Google Wifi.

4. Crea il dispositivo

Tutti gli esempi in Matter si trovano nella cartella examples del repository GitHub. Sono disponibili diversi esempi, ma in questo codelab ci concentreremo su lighting-app.

Questo esempio è un semplice dispositivo che viene visualizzato in Google Home come una luce On/Off, che risponde ai comandi On e Off. Farla controllare una luce elettrica effettiva esula dall'ambito di questo codelab.

Configura la build

  1. Configura l'SDK Matter e attiva l'ambiente di build Matter:
    $ cd ~/esp-idf_tools/esp-idf
    $ source export.sh
    $ cd ~/connectedhomeip
    $ source ./scripts/activate.sh
    
  2. Attiva Ccache, che accelera il processo di compilazione:
    $ export IDF_CCACHE_ENABLE=1
    
  3. Passa alla directory di build ESP32 lighting-app e imposta l'architettura di destinazione:
    $ cd ./examples/lighting-app/esp32
    $ idf.py set-target esp32
    
    1. Esegui l'utilità di configurazione:
      $ idf.py menuconfig
      
    2. Seleziona Demo -> Device Type e imposta Device Type su ESP32-DevKitC.
    3. Premi il tasto Freccia sinistra per tornare al menu di primo livello.
    4. Seleziona Component config --->.
    5. Seleziona CHIP Device Layer --->.
    6. Seleziona Device Identification Options --->.
    7. Imposta Vendor ID sul VID assegnato dall'Alliance o su un VID di test.
    8. Imposta Product ID sul PID che hai impostato nell'integrazione Matter in Google Home Developer Console.
    9. Premi S per salvare.
    10. Premi Invio per accettare il percorso predefinito in cui verrà salvata la configurazione.
    11. Premi Invio per chiudere la finestra di dialogo di conferma del salvataggio.
    12. Premi Q per uscire dall'utilità di configurazione.

Esegui la build

Richiama lo script di build:

idf.py build

La build dovrebbe essere completata senza errori.

Programma il dispositivo

  1. Collega la scheda di sviluppo al computer utilizzando un cavo USB.
  2. Elimina qualsiasi firmware precedente sul dispositivo (se al computer è collegata una sola scheda di sviluppo, puoi omettere l'opzione -p {device}. Il dispositivo dovrebbe essere rilevato automaticamente):
    idf.py -p {device} erase-flash
    
  3. Copia la nuova applicazione sulla scheda di sviluppo con:
    idf.py -p {device} flash
    

Ulteriori informazioni sulle opzioni di flashing sono disponibili nella pagina della documentazione Espressif esptool.py.

5. Connetti al dispositivo

  1. Apri una finestra del terminale.
  2. Prendi nota della directory in cui ti trovi, quindi connettiti al nuovo dispositivo Matter utilizzando screen GNU:
    $ screen -L {device} 115200
    
  3. Se vedi una console vuota, premi il pulsante RESET per avviare la procedura di avvio del dispositivo.

6. Configura il dispositivo

Nota: questo passaggio verrà completato solo se hai già configurato il progetto in Google Home Developer Console.

Nest Hub

È necessario un hub per configurare il dispositivo nell'infrastruttura Matter. Si tratta di un dispositivo Google Nest, ad esempio Nest Hub (2ª generazione), che supporta Matter e che fungerà sia da router di confine per i dispositivi compatibili con Thread sia da percorso di fulfillment locale per il routing degli intent per la smart home.

Consulta questo elenco per vedere quali hub supportano Matter.

Prima di iniziare la procedura di configurazione, assicurati che:

  • L'hub sia accoppiato allo stesso Account Google che hai utilizzato per accedere a Google Home Console.
  • L'hub si trova sulla stessa rete Wi-Fi del computer che utilizzi per eseguire il dispositivo Matter virtuale.
  • L'hub si trova nella stessa struttura che utilizzi nell'app Google Home. La "casa" nel grafico di Google Home rappresenta la tua struttura.

Accoppia il dispositivo

Segui le istruzioni di accoppiamento ESP32 per accoppiare il dispositivo.

Nota: se utilizzi un M5STACK, tieni presente che lo schermo rimarrà vuoto dopo il flashing, quindi dovrai visualizzare il codice QR utilizzando l'URL visualizzato nella console. In alternativa, puoi inserire il codice di accoppiamento manuale.

Esempio di output della console che mostra l'URL codice 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]]

Risoluzione dei problemi

La configurazione non riesce

Per ulteriori suggerimenti per la risoluzione dei problemi, consulta la pagina Risoluzione dei problemi di Matter.

7. Controlla il dispositivo

Una volta configurato correttamente il dispositivo conforme a Matter e visualizzato nell'app Google Home come una lampadina, puoi provare a controllarlo utilizzando l'Assistente Google, l'app Google Home o il simulatore dell'Assistente Google nell'estensione Google Home per VS Code.

Assistente Google

Utilizza l'Assistente Google sullo smartphone o sull'hub per attivare o disattivare lo stato del dispositivo tramite comandi vocali, ad esempio "Hey Google, attiva/disattiva le luci".

Per altri esempi di comandi, consulta la sezione Controllare i dispositivi per la smart home con i comandi vocali dell'articolo Controllare i dispositivi per la smart home aggiunti all'app Google Home.

App Google Home

Puoi toccare le etichette On e Off accanto all'icona della lampadina mostrata nell'app Google Home.

Per ulteriori informazioni, consulta l'articolo Controllare i dispositivi con l'app Google Home.

Simulatore dell'Assistente Google

Nell'estensione Google Home per VS Code, utilizzando il simulatore dell'Assistente Google, puoi inviare espressioni al dispositivo utilizzando un'interfaccia simile a una chat.

8. Complimenti!

Hai creato e configurato correttamente il tuo primo dispositivo Matter. Fantastico!

In questo codelab hai imparato a:

  • Installare un ambiente di sviluppo Matter dai requisiti a uno stato di funzionamento.
  • Creare ed eseguire un dispositivo Matter.
  • Configurare e controllare il dispositivo da Google Home.

Per scoprire di più su Matter, consulta questi riferimenti: