Criar um dispositivo Matter

1. Introdução

O Matter é um protocolo de conectividade que traz oportunidades incríveis para o desenvolvimento de dispositivos inteligentes. Neste codelab, você vai criar seu primeiro dispositivo Matter. Para saber mais sobre o Matter, acesse o Centro para Desenvolvedores do Google Home: Matter ou o site da Connectivity Standards Alliance.

Neste curso, você vai aprender a:

  • Como integrar um dispositivo físico ao Matter.
  • Como comissionar e controlar seu dispositivo Matter com o Google Home.

O que é necessário

2. Configurar o ambiente

Identificar o dispositivo serial

A primeira etapa na configuração do ambiente de desenvolvimento é determinar a porta serial à qual o dispositivo está conectado. Essas informações vão permitir que você programe e interaja com seu painel de desenvolvedor.

  1. Conecte a placa de desenvolvedor ao computador usando um cabo USB.
  2. Procure no sistema de arquivos /dev para encontrar o dispositivo da placa do desenvolvedor. Você pode restringir a pesquisa especificando o prefixo do dispositivo da placa de desenvolvedor. O ESP32 do Espressif usa /dev/ttyUSBx:
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    

Configurar seu hub

Configure o hub usando a mesma Conta do Google que você pretende usar para este codelab.

Configurar o ambiente de desenvolvimento

Pré-requisitos

Essas instruções foram testadas no Debian Linux e devem funcionar na maioria das distribuições do Linux baseadas em Debian, incluindo Ubuntu. Se você estiver trabalhando com uma distribuição diferente do Linux, o procedimento de configuração da dependência poderá ser diferente do mostrado a seguir.

Instalar dependências

Execute o seguinte comando para instalar os binários do pacote Linux necessários que talvez ainda não estejam instalados:

$ 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

configurar o SDK

Para continuar este codelab, você vai precisar do SDK Espressif, que é o framework de desenvolvimento de IoT do Espressif, ou ESP-IDF.

  1. Crie um diretório para conter o ESP-IDF:
    $ mkdir ~/esp-idf_tools
    
  2. Clone o ESP-IDF do GitHub neste diretório:
    $ cd ~/esp-idf_tools
    $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
    
  3. Conclua a instalação do conjunto de ferramentas:
    $ cd ./esp-idf
    $ ./install.sh
    $ cd ~/
    

Configurar o SDK do Matter

  1. Clone o repositório de código aberto do Matter:
    $ git clone https://github.com/project-chip/connectedhomeip.git
    $ cd ./connectedhomeip
    $ git fetch origin v1.0-branch
    $ git checkout FETCH_HEAD
    
  2. Busque os submódulos do repositório:
    $ ./scripts/checkout_submodules.py --shallow --platform esp32
    
  3. Inicialize o ambiente de desenvolvimento do Matter:
    $ source ./scripts/bootstrap.sh
    

3. Console para desenvolvedores do Google Home

O Console para desenvolvedores do Google Home é o aplicativo da Web em que você gerencia as integrações do Matter com o Google Home.

Qualquer dispositivo Matter que tenha sido aprovado na certificação Matter da Connectivity Standards Alliance (Alliance) funciona no ecossistema Google Home. Dispositivos em desenvolvimento que não foram certificados podem ser comissionados no ecossistema do Google Home em determinadas condições. Consulte Restrições de pareamento para mais informações.

Criar um projeto de desenvolvedor

Comece acessando o Play Console do Google Home:

  1. Clique em Criar projeto.
  2. Insira um nome exclusivo para o projeto e clique em Criar projeto. Caixa de diálogo "Criar novo projeto"
  3. Clique em + Add integration para acessar a tela Matter resources (recursos do Matter), onde você pode ver a documentação de desenvolvimento do Matter e ler sobre algumas ferramentas.
  4. Quando estiver tudo pronto para continuar, clique em Próximo: desenvolver, que exibe a página Lista de verificação do Matter.
  5. Clique em Próxima configuração.
  6. Na página Configuração, digite o nome do produto.
  7. Clique em Selecionar tipo de dispositivo e selecione o tipo de dispositivo no menu suspenso (neste caso, Light).
  8. Em "ID do fornecedor" (VID, na sigla em inglês), selecione Testar VID e escolha 0xFFF1 no menu suspenso. Em "ID do produto" (PID, na sigla em inglês), insira "0x8000", clique em Salvar e continuar. Em seguida, clique em Salvar na página seguinte. Use esses valores exatos de VID/PID. As etapas posteriores do codelab dependem deles.
    Como configurar um projeto
  9. A integração vai aparecer em Integrações do Matter.
  10. Reinicie o hub para garantir que ele receba a configuração mais recente do projeto de integração do Matter. Se você precisar alterar o VID ou o PID mais tarde, também será necessário reiniciar depois de salvar o projeto para que a alteração entre em vigor. Consulte Reiniciar dispositivos Google Nest ou Google Wifi para ver instruções detalhadas de reinicialização.

4. Desenvolver o dispositivo

Todos os exemplos do Matter estão na pasta de exemplos do repositório do GitHub. Há vários exemplos disponíveis, mas nosso foco neste codelab é o lighting-app.

Este exemplo é um dispositivo simples que aparece no Google Home como uma luz "Ligar/Desligar", respondendo a comandos de ativação e desativação. Fazer com que ela controle uma luz elétrica real está além do escopo deste codelab.

Configure a compilação

  1. Configure o SDK do Matter e ative o ambiente de build do Matter:
    $ cd ~/esp-idf_tools/esp-idf
    $ source export.sh
    $ cd ~/connectedhomeip
    $ source ./scripts/activate.sh
    
  2. Ative o Ccache, que acelera o processo de build:
    $ export IDF_CCACHE_ENABLE=1
    
  3. Acesse o diretório de build lighting-app do ESP32 e defina a arquitetura de destino:
    $ cd ./examples/lighting-app/esp32
    $ idf.py set-target esp32
    
    1. Execute o utilitário de configuração:
      $ idf.py menuconfig
      
    2. Selecione Demo -> Device Type e defina Device Type como ESP32-DevKitC.
    3. Pressione a seta para a esquerda para voltar ao menu de nível superior.
    4. Selecione Component config --->.
    5. Selecione CHIP Device Layer --->.
    6. Selecione Device Identification Options --->.
    7. Defina Vendor ID como seu VID atribuído pela Aliança ou um VID de teste.
    8. Defina Product ID como o PID definido na integração do Matter no Play Console do Google Home.
    9. Pressione S para salvar.
    10. Pressione Return para aceitar o caminho padrão em que a configuração será salva.
    11. Pressione Return para dispensar a caixa de diálogo de confirmação de salvamento.
    12. Pressione Q para sair do utilitário de configuração.

Executar o build

Invoque o script de compilação:

idf.py build

O build será concluído sem erros.

Programar o dispositivo

  1. Conecte a placa de desenvolvedor ao computador usando um cabo USB.
  2. Apague todos os firmwares anteriores do dispositivo. Se você tiver apenas uma placa de desenvolvedor conectada ao computador, deixe de fora a opção -p {device}. O dispositivo será detectado automaticamente:
    idf.py -p {device} erase-flash
    
  3. Copie o novo aplicativo para o painel de controle do desenvolvedor com:
    idf.py -p {device} flash
    

Mais informações sobre as opções de atualização podem ser encontradas na página de documentação do Espressif esptool.py.

5. Conectar ao dispositivo

  1. Abra uma janela de terminal.
  2. Anote em qual diretório você está e conecte-se ao novo dispositivo Matter usando GNU screen:
    $ screen -L {device} 115200
    
  3. Se você vir um console em branco, pressione o botão REDEFINIR para iniciar o processo de inicialização do dispositivo.

6. Comissionamento do dispositivo

Observação: esta etapa só funcionará se você já tiver configurado seu projeto no Play Console do Google Home.

Nest Hub

É necessário ter um hub para comissionar o dispositivo no tecido do Matter. Este é um dispositivo Google Nest, como o Nest Hub (2a geração), compatível com o Matter e que vai funcionar como roteador de borda para dispositivos com Thread e como um caminho de fulfillment local para roteamento de intents de casa inteligente.

Consulte esta lista para ver quais hubs são compatíveis com o Matter.

Antes de iniciar o processo de comissionamento, verifique se:

  • A central está pareada com a mesma Conta do Google que você usou para fazer login no Google Home Console.
  • O hub está na mesma rede Wi-Fi do computador que você está usando para executar o Dispositivo Virtual Matter.
  • O hub está na mesma estrutura que você usa no app Google Home. A "casa" no Google Home Graph representa sua estrutura.

Parear o dispositivo

Siga as instruções de pareamento do ESP32 para parear seu dispositivo.

Observação: se você estiver usando um M5STACK, lembre-se de que a tela ficará em branco após a atualização, então você precisará ver o código QR usando o URL que aparece no console. Ou digite o código de pareamento manual.

Exemplo de saída do console mostrando o URL do código 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]]

Solução de problemas

Falha no comissionamento

Para mais dicas sobre solução de problemas, consulte a página de solução de problemas do Matter.

7. Controlar o dispositivo

Depois que o dispositivo compatível com o Matter for comissionado e aparecer no app Google Home como uma lâmpada, tente controlá-lo usando o Google Assistente, o app Google Home ou o simulador do Google Assistente na extensão do Google Home para VS Code.

Google Assistente

Use o Google Assistente no smartphone ou no hub para alternar o estado do dispositivo com comandos de voz, como "Ok Google, alternar minhas luzes".

Veja mais exemplos de comandos na seção Controlar dispositivos de casa inteligente com comandos de voz de Controlar dispositivos de casa inteligente adicionados ao app Google Home.

App Google Home

Toque nos marcadores Ativar e Desativar ao lado do ícone de lâmpada exibido no app Google Home.

Consulte Controlar dispositivos com o app Google Home para mais informações.

Simulador do Google Assistente

Na extensão do Google Home para VS Code, usando o simulador do Google Assistente, é possível emitir discursos para seu dispositivo usando uma interface semelhante a um chat.

8. Parabéns!

Você criou e comissionou seu primeiro dispositivo Matter. Incrível!

Neste codelab, você aprendeu a:

  • Instalar um ambiente de desenvolvimento do Matter dos requisitos para um estado de trabalho.
  • Crie e execute um dispositivo Matter.
  • Comissionamento e controle do dispositivo com o Google Home.

Para saber mais sobre o Matter, consulte estas referências: