Pular para o conteúdo principal

XIAO ESP32C3 acessa o Home Assistant via serviço ESPHome

Este artigo irá guiá-lo pela instalação do serviço ESPHome em seu próprio ambiente Home Assistant. Usando a função WiFi do XIAO ESP32C3, você poderá conectar seu XIAO ao Home Assistant como parte do seu terminal doméstico de forma muito simples.

Além disso, construiremos um Home Assistant com detecção de presença humana em combinação com o popular Módulo Lite de Presença Estática Humana mmWave de 24GHz.

Primeiros Passos

dica

A partir de 31 de julho de 2023, o problema anterior que causava a falha completa do radar foi corrigido, portanto, atualize os arquivos de biblioteca e o configurador desta espécie de tutorial para que funcione corretamente.

Se você deseja seguir este tutorial do início ao fim, precisará preparar o seguinte.

XIAO ESP32C3Módulo Lite de Presença Estática Humana
mmWave de 24GHz

O objetivo final deste projeto é implantar o Módulo Lite de Presença Estática Humana mmWave de 24GHz no Home Assistant.

Escrevemos arquivos de configuração e bibliotecas completos para o Módulo Lite de Presença Estática Humana mmWave de 24GHz para facilitar a implantação rápida do sensor no Home Assistant neste projeto.

O conteúdo deste tutorial seguirá amplamente as etapas a seguir.

  1. Selecione seu ambiente Home Assistant
  2. Instalar e configurar o ESPHome no Home Assistant
  3. Configurar a conexão entre o XIAO ESP32C3 e o ESPHome
  4. Configurar o Painel do Home Assistant

Claro, se você estiver interessado em como o XIAO ESP32C3 usa o Grove no Home Assistant, pode ler este capítulo diretamente.

Selecione seu ambiente Home Assistant

Nesta rotina, não vamos expandir sobre como instalar o ambiente Home Assistant, assumiremos que você já possui um dispositivo Home Assistant funcionando.

Se você deseja aprender como instalar o Home Assistant, pode consultar o tutorial oficial. Recomendamos fortemente que você instale o Home Assistant usando um dispositivo x86, pois esta é a maneira mais amigável de instalar o Home Assistant com Supervised.

De acordo com a tabela acima, é mais apropriado instalar o Home Assistant OS e o Home Assistant Supervised, o que poupará muito trabalho. Se você estiver executando o Home Assistant no Docker com OpenWRT (por exemplo, usando o LinkStar H68K), não se preocupe, também forneceremos uma referência detalhada sobre como fazer isso.

Também escrevemos como instalar o Home Assistant para alguns produtos da Seeed Studio, consulte-os abaixo.

Instalar o ESPHome no Home Assistant

Etapa 1. Instalar o ESPHome

  • Cenário 1: Instalação do ESPHome no Home Assistant OS (com Add-on Store)

Se você tiver o Home Assistant OS instalado, ele possui uma Add-on Store, o que facilita muito a instalação do ESPHome.

Na Add-on Store, você pode pesquisar e instalar o ESPHome.

  • Cenário 2: ESPHome instalado no Home Assistant sob OpenWRT Docker/Docker (sem Add-on Store)

Como estamos instalando o Home Assistant Container, não podemos simplesmente baixar o serviço ESPHome pela Add-on Store, portanto, é necessária uma solução alternativa.

Precisamos baixar a imagem do ESPHome.

esphome/esphome:latest

Na página onde o container é criado, precisamos fazer algumas configurações simples.

  • Nome do Container: nome do seu container
  • Imagem Docker: escolha a imagem esphome recém-baixada
  • Rede: escolha o modo host
  • Variáveis de Ambiente(-e): sua variável de ambiente

Após preencher o acima, salve e aplique. Você verá que o Container foi criado. Você também precisa iniciá-lo.

Para obter o mesmo efeito de baixar o ESPHome no Home Assistant, precisamos modificar o arquivo de configuração no Home Assistant.

Vá para o Home Assistant Container.

Vamos ao terminal no Home Assistant.

Digite o seguinte comando no terminal.

vi configuration.yaml

Adicione o seguinte conteúdo ao final de configuration.yaml.

# Example configuration.yaml entry
panel_iframe:
esphome:
title: "ESPHome"
url: "http://192.168.100.1:6052"
icon: mdi:chip

Saia do container docker digitando exit no shell do Home Assistant Container. Feito isso, reiniciamos o container do Home Assistant.

Crie uma nova página no navegador, insira o endereço http://homeassistant:8123/, insira sua conta do Home Assistant e você verá o ESPHome aparecer na barra de ferramentas à esquerda.

Configurar a conexão entre o XIAO ESP32C3 e o ESPHome

Etapa 2. Preparação do hardware

O objetivo do nosso tutorial é poder visualizar as informações de dados do Módulo Lite de Presença Estática Humana mmWave de 24GHz no painel do Home Assistant.

Conecte o dispositivo ao computador através da placa principal. O diagrama de fiação é mostrado na tabela abaixo.

XIAO ESP32C3Módulo Lite de Presença Estática Humana
mmWave de 24GHz
5V-->5V
GND-->GND
D2-->RX
D3-->TX

Etapa 3. Manter o XIAO ESP32C3 e o Home Assistant na mesma LAN

Tenho certeza de que seu Home Assistant já realizou o trabalho de entrar na rede, por exemplo, conectando-se ao seu dispositivo via cabo de rede. Tudo o que você precisa fazer é simplesmente ativar uma rede local (por exemplo, WiFi) para que o XIAO ESP32C3 também possa se conectar a essa rede.

Usarei o LinkStar H68K como exemplo abaixo. Meu objetivo é conectar o XIAO ao ponto de acesso do LinkStar H68K.

Na aba Network no OpenWRT, selecione Wireless --> ADD.

Para Transmit Power em Device Configuration, selecione auto.

Para as configurações de Interface Configuration, preencha as seguintes instruções.

  • General Setup
    • Mode: Depende de como o LinkStar acessa a internet. Se você estiver usando uma conexão a cabo, selecione Client; se estiver conectado via WiFi, selecione Access Point.
    • ESSID: Insira o nome do seu WiFi; tente não usar espaços ou caracteres especiais.
    • Network: marque lan.
  • Wireless Security
    • Encryption: WPA2-PSK
    • Key: Insira a senha WiFi que deseja definir.

Depois de preencher as informações acima, clique em Save and Apply no canto inferior direito e aguarde alguns instantes para que o LinkStar abra um hotspot.

Quando nenhum dispositivo estiver conectado a este hotspot, ele será exibido sem sinal.

Considerando tudo, vamos retornar à página do Home Assistant.

Clique em NEW DEVICE. Em seguida, clique em Continue.

Na nova janela pop-up, insira o nome do aplicativo que deseja configurar, bem como o nome e a senha do hotspot que você configurou no LinkStar (ou seu próprio WiFi). Certifique-se de que o XIAO ESP32C3 e o Home Assistant estejam na mesma LAN.

Em seguida, clique em Next.

No tipo de dispositivo, selecione ESP32-C3.

Em seguida, clique em Next.

Clique na Chave de criptografia e salve-a em um local seguro; usaremos essa chave em uma etapa posterior.

Em seguida, clique em SKIP.

Passo 4. Alterar o arquivo yaml de configuração do XIAO ESP32C3

Em seguida, clicamos na aba do dispositivo que acabamos de criar, com o botão EDIT no canto inferior esquerdo.

Observe que precisamos fazer alterações neste arquivo yaml. Dividimos o conteúdo a ser modificado em duas partes principais, correspondendo a um e dois no diagrama abaixo.

  • No conteúdo , não altere o nome do dispositivo, exceto o que você configurou; consulte o código abaixo para o restante do conteúdo.
# part 1:
substitutions:
name: "xiao-esp32c3"
friendly_name: "XIAO ESP32C3"

esphome:
name: "${name}"
friendly_name: "${friendly_name}"
name_add_mac_suffix: true
project:
name: "seeedstudio.mmwave_kit"
version: "2.0"
platformio_options:
board_build.flash_mode: dio
board_build.mcu: esp32c3

external_components:
- source: github://limengdu/mmwave-kit-external-components@main
refresh: 0s

esp32:
board: esp32-c3-devkitm-1
variant: esp32c3
framework:
type: esp-idf

# Enable logging
logger:
hardware_uart: USB_SERIAL_JTAG
level: DEBUG
  • No conteúdo , copie o seguinte código após captive_portal:.
Clique aqui para visualizar o código completo
# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
esp32_improv:
authorizer: none

# Sets up the improv via serial client for Wi-Fi provisioning.
# Handy if your device has a usb port for the user to add credentials when they first get it.
# improv_serial: # Commented until improv works with usb-jtag on idf

uart:
id: uart_bus
baud_rate: 115200
rx_pin: 4
tx_pin: 5
parity: NONE
stop_bits: 1

seeed_mr24hpc1:
id: my_seeed_mr24hpc1

text_sensor:
- platform: seeed_mr24hpc1
heart_beat:
name: "Heartbeat"
product_model:
name: "Product Model"
product_id:
name: "Product ID"
hardware_model:
name: "Hardware Model"
hardware_version:
name: "Hardware Version"
keep_away:
name: "Active Reporting Of Proximity"
motion_status:
name: "Motion Information"
custom_mode_end:
name: "Custom Mode Status"

binary_sensor:
- platform: seeed_mr24hpc1
has_target:
name: "Presence Information"

sensor:
- platform: seeed_mr24hpc1
custom_presence_of_detection:
name: "Static Distance"
movement_signs:
name: "Body Movement Parameter"
custom_motion_distance:
name: "Motion Distance"
custom_spatial_static_value:
name: "Existence Energy"
custom_spatial_motion_value:
name: "Motion Energy"
custom_motion_speed:
name: "Motion Speed"
custom_mode_num:
name: "Current Custom Mode"

switch:
- platform: seeed_mr24hpc1
underlying_open_function:
name: Underlying Open Function Info Output Switch

button:
- platform: seeed_mr24hpc1
restart:
name: "Module Restart"
custom_set_end:
name: "End Of Custom Mode Settings"

select:
- platform: seeed_mr24hpc1
scene_mode:
name: "Scene"
unman_time:
name: "Time For Entering No Person State (Standard Function)"
existence_boundary:
name: "Existence Boundary"
motion_boundary:
name: "Motion Boundary"

number:
- platform: seeed_mr24hpc1
sensitivity:
name: "Sensitivity"
custom_mode:
name: "Custom Mode"
existence_threshold:
name: "Existence Energy Threshold"
motion_threshold:
name: "Motion Energy Threshold"
motion_trigger:
name: "Motion Trigger Time"
motion_to_rest:
name: "Motion To Rest Time"
custom_unman_time:
name: "Time For Entering No Person State (Underlying Open Function)"

Em seguida, clique no botão Save no canto superior direito.

Passo 5. Carregar o firmware no XIAO ESP32C3

  • Método 1: Compilar e carregar diretamente

Se você estiver usando um dispositivo x86 e puder ver o XIAO na porta do dispositivo, poderá compilar e carregar o programa no XIAO.

Conecte o XIAO ao seu dispositivo.

Clique nos três pontos no canto inferior direito da barra do dispositivo e selecione Install.

Clique em Plug into the computer running ESPHome Dashboard.

Selecione a porta conectada.

Agora ele baixará todos os pacotes de placa necessários e gravará o firmware do ESPHome no XIAO ESP32C3. Se a gravação for bem-sucedida, você verá a seguinte saída.

Se você não conseguir encontrar a porta após conectar o XIAO ao seu dispositivo, tente usar o segundo método.

  • Método 2: Carregar o firmware compilado usando o host

Roteadores soft como o LinkStar H68K não suportam o reconhecimento de dispositivos MCU externos; precisamos baixar o firmware compilado primeiro e depois carregá-lo via outro PC.

Clique no botão Install no canto superior direito. Em seguida, selecione o último item Manual download.

Selecione Modern format.

Em seguida, levará um longo tempo para baixar e compilar, portanto, tenha paciência. Quando tudo estiver pronto, o firmware será baixado automaticamente para o seu computador.

Para carregar o firmware no XIAO ESP32C3, há algumas opções; aqui mostramos 2 maneiras de fazer isso:

Certifique-se de ter os drivers corretos instalados. Abaixo estão os drivers para chips comuns usados em dispositivos ESP.

  1. Drivers CP2102: Windows & Mac

  2. Drivers CH342, CH343, CH9102: Windows, Mac

  3. Drivers CH340, CH341: Windows, Mac

Abra a ferramenta ESPhome Web com o navegador Chrome ou Edge.

Clique em CONNECT.

Selecione a porta serial do XIAO ESP32 na janela pop-up.

Clique em INSTALL e selecione o arquivo .bin baixado nas etapas anteriores.

Se ainda não conseguir carregar o firmware usando o método um após instalar o driver e trocar de navegador, tente usar o método dois. Consulte o tutorial oficial para métodos e instruções específicos de instalação.

dica

Se desejar observar as mensagens de log do XIAO ESP32C3, você também pode visualizá-las pelo botão View Logs deste software.

Após a conclusão do upload, você pode desconectar o XIAO ESP32C3 do PC (a menos que precise visualizar os logs) e simplesmente alimentar o XIAO separadamente.

Se tudo correr bem, o XIAO ESP32C3 irá procurar e conectar-se ao WiFi que você configurou para ele.

Assim como eu, uso a rede do LinkStar H68K. Você pode encontrá-la nas opções de rede e ver o endereço IP atribuído a ele pelo LinkStar H68K.

Normalmente, neste ponto no Home Assistant, o status do dispositivo também mudará de offline para online.

Configurar o Painel do Home Assistant

Passo 6. Conectar ao XIAO ESP32C3

Se você não tiver muitos dispositivos Home Assistant na sua LAN, o Home Assistant pode pesquisar e adicionar automaticamente seus dispositivos ESP à aba Dispositivos. Você pode ver este dispositivo dentro da aba Devices & Services em Settings.

Se não pesquisar automaticamente, você também pode conectar-se ao XIAO ESP32C3 com base no seu endereço IP.

Clique em ADD INTEGRSTION e pesquise por esphome.

Em seguida, insira o endereço IP do XIAO ESP32C3 com o número de porta 6053. Depois clique em SUBMIT.

Se o endereço IP e o número de porta inseridos estiverem corretos, você verá que será solicitado a inserir a Chave de Criptografia, que pedimos para salvar no passo 4.

Em seguida, clique em SUBMIT.

Neste ponto, as etapas para adicionar o dispositivo foram concluídas com sucesso.

Passo 7. Visão geral das funções do Módulo mmWave Lite de 24GHz

Para ajudá-lo a entender rapidamente todas as capacidades do conjunto e o uso dessas funcionalidades, você precisa ler esta seção com atenção. Se quiser informações mais detalhadas, recomendamos que você reserve um tempo para ler o manual do usuário do produto.

Para detalhes sobre a configuração e os parâmetros do painel, compilamos um artigo detalhado na documentação do ESPHome, portanto, acesse para ler o artigo completo e os detalhes.

Passo 8. Configurar o painel do Home Assistant

Se você achar os cartões padrão muito entediantes e pouco amigáveis para apresentar dados, o Home Assistant oferece uma ampla variedade de painéis prontos para escolher.

Você pode criar seu próprio painel de acordo com suas preferências.

Por exemplo, a opção de controlar a saída de informações é transformada em um interruptor elegante.

Transformando a velocidade do movimento humano em uma exibição visual no painel.

Isso é o que eu criei. Parece que tem os elementos de um centro de controle de casa inteligente.

Até agora, concluímos com sucesso o conteúdo do nosso tutorial.

Conectar Grove ao Home Assistant usando XIAO ESP32C3

Claro, o XIAO ESP32C3 oferece mais do que apenas suporte ao Módulo de Presença Estática Humana mmWave de 24GHz Lite no Home Assistant, e você pode encontrar mais tutoriais para seu próprio uso neste documento.

Deixe sua criatividade fluir!

Solução de Problemas

FAQ1: Obtive o seguinte erro ao fazer upload do firmware usando a ferramenta ESPhome Web, como posso corrigi-lo?

R: Se este aviso aparecer durante o upload, desconecte o XIAO ESP32C3 do PC. Em seguida, segure o BOOT BUTTON, conecte a placa ao seu PC enquanto segura o botão BOOT e, em seguida, solte-o para entrar no modo bootloader. Neste ponto, basta reconectar e fazer o upload do firmware novamente.

FAQ2: Não consigo instalar o esphome flasher no Linux seguindo o tutorial do esphome flasher?

R: Ao executar os seguintes comandos, você precisa selecionar a versão do seu sistema, caso contrário ocorrerá um erro. Por exemplo, meu computador é Ubuntu 22.04, então o comando que deve ser executado é o seguinte.

sudo apt install python3

pip3 install -U \
-f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04/ \
wxPython

pip3 install esphomeflasher

FAQ3: Preenchi o WiFi e a senha corretos, por que não vejo o endereço IP do XIAO ESP32C3?

R: Quando você encontrar este problema, verifique se a antena do XIAO ESP32C3 está conectada corretamente. Se a antena já estiver conectada, certifique-se de que o XIAO não esteja a mais de 3m do LinkStar, se possível (a menos que você tenha substituído a antena por uma mais potente). Se você ainda não vir o XIAO, pode usar o software esphome flasher para verificar as informações de log do XIAO e verificar a conexão do XIAO através dos logs. Você pode reconectar o xiao para deixá-lo tentar pesquisar o WiFi e conectar novamente.

Quando você está usando o firmware flash do Jlink e esse erro ocorre, você pode estar em uma das seguintes situações.

  1. Seu sensor não está mais funcionando corretamente e você não consegue receber nenhuma mensagem dele.
  2. Você está tentando usar um firmware inválido ou incorreto.
cuidado

Se o seu radar estava funcionando corretamente antes, verifique novamente se está usando o firmware correto! O firmware utilizado varia de radar para radar e de modelo de sensor para modelo de sensor! Além disso, a atualização de firmware via UART não é a mesma que a atualização de firmware via Jlink! Por favor, pare de prosseguir com as etapas a seguir.

Confirmei que meu produto recebe esta mensagem de erro em caso de exceção

Se o seu radar não estiver funcionando de forma alguma, então pode ser normal receber esta mensagem de erro.

Como o funcionamento anormal do radar permitiu que ele acionasse o mecanismo de proteção de leitura/gravação, o usuário não tem mais permissão para gravar o programa no produto em geral; portanto, precisamos desbloquear o mecanismo de proteção de leitura/gravação do radar.

Devido ao alto risco de desproteger leituras e gravações, não divulgamos publicamente o método de desproteger leituras e gravações aqui; colocaremos o método no arquivo zip aqui para quem precisar. Após desproteger o radar com funcionamento anormal, o firmware pode ser atualizado novamente para restaurar o funcionamento normal.

Suporte Técnico e Discussão sobre Produtos

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...