Pular para o conteúdo principal

Construindo um centro de controle de casa inteligente em torno do Home Assistant

Neste artigo, detalharemos como configurar o Home Assistant no novo produto LinkStar H68K da Seeed Studio e implantar o ambiente ESPHome. ESPHome é um serviço muito comum no Home Assistant. Devido às limitações do sistema de roteamento por software, usaremos ESPHome como exemplo para guiá-lo através de um método inteligente de instalação desse serviço.

Primeiros Passos

Se você quiser seguir este tutorial até o fim, precisará preparar o seguinte.

LinkStar H68K com Wi-Fi 6reRouter CM4 1432 (Opcional)XIAO ESP32C3
Adquira AgoraAdquira AgoraAdquira Agora

*O reRouter CM4 1432 também é compatível com este tutorial. Você pode adquirir o LinkStar ou o reRouter.

O objetivo deste projeto é instalar Home Assitant e ESPHome usando o serviço Docker do LinkStar e, em seguida, configurar um hotspot LinkStar para conectar-se ao LinkStar usando os recursos de WiFi do XIAO ESP32C3 para completar a rede.

Então, combinado com o vasto ecossistema Grove, você pode criar ainda mais possibilidades no Home Assistant.

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

  1. Configurar o ambiente Docker no LinkStar OpenWRT
  2. Instalação e configuração do Home Assistant, ESPHome
  3. Adicionar Seeed Studio XIAO ESP32C3 ao ESPHome
  4. Módulos Grove com ESPHome e Home Assistant

Configurar o ambiente Docker no LinkStar OpenWRT

Passo 1. Instalar OpenWRT para o LinkStar

Detalhamos como instalar vários sistemas para o LinkStar na Wiki do LinkStar. Neste tutorial, tomaremos o sistema OpenWRT como exemplo e explicaremos como instalar o Home Assistant Container garantindo que o LinkStar atue como um roteador por software.

Selecione acima o local do sistema onde você gostaria de instalar o OpenWRT para o LinkStar.

Passo 2. Configurar a rede do LinkStar

Conecte-se ao LinkStar por meio de um cabo de rede e digite o endereço IP: 192.168.100.1 no seu navegador para acessar o backend de operação do OpenWRT.

A conta e senha iniciais são:

Account: root
Password: password

Em seguida, precisamos conectar o LinkStar à Internet.

Você precisa comprar um LinkStar com rede sem fio, assim você pode escolher conectar um cabo de rede ao LinkStar ou conectá-lo ao WiFi.

  • Se for uma rede cabeada, configure sua rede de acordo com as instruções do seu provedor de internet.
  • Se você quiser usar uma rede sem fio, pode procurar uma rede nas opções Wireless.

Depois disso, basta inserir a senha da sua rede, clicar em Save and Apply.

Certifique-se de ter um bom estado de rede antes de continuar com as próximas etapas.

Passo 3. Alocar mais espaço para o Docker

Por padrão, o Docker tem apenas cerca de 250 MB de tamanho, o que não é suficiente para instalarmos a imagem, então primeiro precisamos expandir a capacidade para o Docker.

Clique em System --> Disk Man --> EDIT.

Na última linha, escreva o tamanho do espaço de armazenamento a ser adicionado na coluna END SECTOR. No meu caso, é +20G. Em seguida, clique no botão NEW.

Escolha o formato ext4, depois clique no botão FORMAT.

Quando terminar, você verá que um novo espaço de 20 GB foi adicionado. No entanto, é um espaço livre agora, você precisa montá-lo no Docker.

Então escolha System --> Mount Points, encontre a seção Mount Point, clique no botão ADD.

Escolha o novo espaço que você acabou de criar.

Escolha o ponto de montagem Use as Docker data (/opt). Não se esqueça de marcar a caixa de seleção Enable this mount, depois clique no botão SAVE & APPLY.

Todas as configurações para a expansão estão completas, só é preciso reiniciar para torná-las válidas.

Escolha System --> Reboot, clique no botão PERFORM REBOOT. Aguarde o OpenWRT reiniciar e faça login novamente.

Instalação e configuração do Home Assistant, ESPHome

Passo 4. Instalar o Home Assistant com Docker

Uma forma melhor de instalar o Home Assistant no OpenWRT é fazê-lo no Docker, o que garante que o LinkStar seja estável como um roteador por software e também permite que o Home Assistant seja implantado.

Então tudo o que precisamos fazer é puxar a imagem específica do Home Assistant. Essa imagem nos atenderá bem na instalação do serviço ESPHome mais tarde.

homeassistant/qemuarm-64-homeassistant:latest

Usamos a imagem baixada para criar um Container.

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

  • Container Name: nome do seu container
  • Docker Image: escolha a imagem qemuarm-64-homeassistant que acabou de ser baixada
  • Network: escolha o modo host
  • Environment Variables(-e): sua variável de ambiente

Depois de preencher o conteúdo acima, salve e aplique. Você verá que o Container foi criado. Vamos iniciá-lo.

Passo 5. Instalar ESPHome com Docker

Como estamos instalando o Home Assistant Container, não podemos simplesmente baixar o serviço ESPHome pela loja de Add-on, então é necessário um compromisso.

Repetindo as etapas acima, baixamos a imagem ESPHome.

esphome/esphome:latest

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

  • Container Name: nome do seu container
  • Docker Image: escolha a imagem esphome que acabou de ser baixada
  • Network: escolha o modo host
  • Environment Variables(-e): sua variável de ambiente

Depois de preencher o conteúdo acima, salve e aplique. Você verá que o Container foi criado. Você também precisa iniciá-lo.

Passo 6. Adicionar o serviço ESPHome ao Home Assistant

Para alcançar 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. Depois disso, reinicie o container do Home Assistant.

Crie uma nova página do navegador, digite o endereço IP 192.168.100.1:8123 e registre sua conta do Home Assistant e você verá o ESPHome aparecer na barra de ferramentas à esquerda.

Adicionar Seeed Studio XIAO ESP32C3 ao ESPHome

  • Passo 1. Clique em + NEW DEVICE
  • Passo 2. Clique em CONTINUE
  • Passo 3. Insira um Name para o dispositivo e insira as credenciais de WiFi, como Network name e Password. Depois clique em NEXT
  • Passo 4. Selecione ESP32-C3 e clique
  • Passo 5. Clique em SKIP porque vamos configurar esta placa manualmente
  • Passo 6. Clique em EDIT abaixo da placa recém-criada
  • Passo 7. Isso abrirá um arquivo YAML e este arquivo será usado para definir todas as configurações da placa. Edite o conteúdo em esp32 como segue
esp32:
board: seeed_xiao_esp32c3
variant: esp32c3
framework:
type: arduino
version: 2.0.5
platform_version: 5.2.0

Nota: Aqui estamos usando a versão mais recente do Arduino core for ESP32 e ESP32 support for PlatformIO

  • Passo 8. então, clique no botão Save no canto superior direito.

O LinkStar H68K não suporta reconhecimento de dispositivos MCU externos, precisamos primeiro baixar o firmware compilado e depois enviar o firmware por meio de outro PC.

  • Passo 9. Clique no botão Install no canto superior direito. Em seguida, selecione o último item Manual download.
  • Passo 10. Selecione Modern format.

Em seguida, levará bastante tempo para baixar e compilar, portanto seja paciente. Quando tudo estiver pronto, o firmware será baixado automaticamente para o seu computador.

  • Passo 11. Para enviar o firmware para o 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: Windowns, Mac
  3. Drivers CH340, CH341: Windowns, Mac

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

Clique em CONNECT.

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

Clique em INSTALL e então selecione o arquivo .bin baixado nos passos acima.

Se você ainda não conseguir enviar o firmware usando o primeiro método após instalar o driver e trocar de navegador, então pode tentar usar o segundo método. Consulte o tutorial oficial para métodos de instalação específicos e instruções.

dica

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

Quando o envio estiver concluído, 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 se conectar 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 ela pelo LinkStar H68K.

  • Passo 12. Se você vir o status da placa como ONLINE, isso significa que a placa foi conectada ao WiFi com sucesso
  • Passo 13. 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 na aba Devices. Você pode ver este dispositivo dentro da aba Devices & Services em Settings.

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

Clique em ADD INTEGRSTION e pesquise por esphome.

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

Se o endereço IP e o número da porta inseridos estiverem corretos, você verá que será solicitado a inserir a chave de criptografia, que pedimos para salvar no arquivo yaml.

Depois clique em SUBMIT.

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

Módulos Grove com ESPHome e Home Assistant

Agora iremos conectar módulos Grove ao Seeed Studio XIAO ESP32C3 para que possamos exibir dados de sensores ou controlar os dispositivos usando o Home Assistant!

Conectar Módulos Grove ao XIAO ESP32C3

Para usar módulos Grove com o Seeed Studio XIAO ESP32C3, usaremos um Grove Shield para Seeed Studio XIAO e conectaremos o XIAO ESP32C3 nele.

Depois disso, os conectores Grove na placa podem ser usados para conectar módulos Grove

Definições de Pinos

Você precisa seguir a tabela abaixo para usar os números de pinos internos apropriados ao conectar os módulos Grove aos conectores Grove no Grove Shield para Seeed Studio XIAO.

Número de Pino InternoMapeamento de Pino
2D0
3D1
4D2
5D3
6D4
7D5
21D6
20D7
8D8
9D9
10D10
6SDA
7SCL

Por exemplo, se você quiser conectar um módulo Grove à porta D0, você precisa definir o pino no ESPHome como 2

Lista de Compatibilidade Grove com ESPHome

Atualmente, os seguintes módulos Grove são suportados pelo ESPHome

Módulo GroveCategoria
Grove - Laser PM2.5 Dust SensorGás
Grove - SEN55 All-in-one environmental sensor, NOx, PM, VOC, RH, TempGás
Grove - SEN54 All-in-one environmental sensor, PM, VOC, RH, TemperatureGás
Grove - CO2 & Temperature & Humidity Sensor (SCD30)Gás
Grove - CO2 & Temperature & Humidity Sensor - SCD41Gás
Grove - VOC and eCO2 Gas Sensor - SGP30Gás
Grove - 4 Channel 16-bit ADC (ADS1115)ADC
Grove - Time of Flight Distance Sensor(VL53L0X)Distância
Grove - Ultrasonic Distance SensorDistância
Grove - AHT20 I2C Industrial Grade Temperature and Humidity SensorAmbiental
Grove - Sensor de Temperatura e Umidade V2.0 (DHT20)Ambiental
Grove - Sensor de Temperatura e Umidade Pro (DHT22/AM2302)Ambiental
Grove - Sensor de Temperatura, Umidade e Barômetro (BME280)Ambiental
Grove - Sensor de Temperatura, Umidade, Pressão e Gás para Arduino - BME680Ambiental
Grove Sensor de Temperatura e Barômetro (BMP280)Ambiental
Sensor de Temperatura One Wire - DS18B20Ambiental
Grove - Sensor de Temperatura e Umidade (DHT11)Ambiental
Grove - Sensor de Temperatura I2C de Alta Precisão - MCP9808Ambiental
Grove - Sensor de Temperatura e Umidade (SHT31)Ambiental
Grove - Sensor de Temperatura e Umidade (SHT40)Ambiental
Grove - Sensor Barométrico de Alta Precisão (DPS310)Ambiental
Grove - Amplificador de Termopar I2C (MCP9600)Ambiental
Grove - Sensor de Cor I2C V2Cor
Grove - Sensor de Luz Digital - TSL2561Luz
Grove - ADC para Célula de Carga (HX711)Peso
Grove - Sensor de Toque Capacitivo I2C de 12 Teclas V3 (MPR121)Capacitivo
Grove - Driver PWM de 16 Canais (PCA9685)PWM
Grove - Display de 4 DígitosDisplay
Grove - Display OLED 0,66" (SSD1306)Display
Grove - ReléRelé
Grove - Relé SPDT (30A)Relé
Grove - Relé de Estado Sólido V2Relé
Grove - Relé SPDT de 2 CanaisRelé
Grove - Sensor de Movimento PIRMovimento
Grove - sensor de movimento PIR miniMovimento
Grove - Sensor de Movimento PIR Digital (12m)Movimento
Grove - ServoAtuador
Grove - Multiplexador I2C/Hub I2C de 8 Canais (TCA9548A)Multiplexador

Agora vamos selecionar 6 módulos Grove da tabela acima e explicar como eles podem ser conectados com ESPHome e Home Assistant.

Grove - Sensor de Temperatura e Umidade (AHT20)

Configuração de Instalação

  • Etapa 2. Dentro do arquivo xiao-esp32c3.yaml que criamos antes, adicione o seguinte ao final do arquivo e envie OTA para o XIAO ESP32C3
i2c:
sda: 6
scl: 7

sensor:
- platform: aht10
temperature:
name: "Temperature"
humidity:
name: "Humidity"

Você pode aprender mais sobre o componente AHT10 aqui. Ele permite que você use sensores baseados em AHT10, AHT20 e AHT21. Aqui adicionamos o componente I²C Bus porque o AHT20 se comunica usando o protocolo I2C.

Visualizar no Dashboard

  • Etapa 1. Na página Overview do Home Assistant, clique nos 3 pontos e clique em Edit Dashboard
  • Etapa 2. Clique em + ADD CARD
  • Etapa 3. Selecione By ENTITY, escreva temperature e marque a check box ao lado de Temperature
  • Etapa 4. Repita o mesmo para Humidity
  • Etapa 5. Clique em CONTINUE
  • Etapa 6. Clique em ADD TO DASHBOARD

Agora o seu dashboard do Home Assistant ficará como abaixo

  • Etapa 7. Você também pode visualizar os dados do sensor como medidores. Clique em Gauge em BY CARD
  • Etapa 8. Selecione Temperature no menu suspenso
  • Etapa 9. Clique em SAVE
  • Etapa 10. Repita o mesmo para Humidity

Agora o seu dashboard ficará como abaixo

Para o Grove - Sensor de Gás VOC e eCO2 (SGP30) e o Grove - Sensor de CO2 e Temperatura e Umidade (SCD41) neste wiki, você pode seguir um procedimento semelhante para visualizar os dados do sensor no dashboard

Grove - Sensor de Gás VOC e eCO2 (SGP30)

Configuração de instalação

  • Etapa 2. Dentro do arquivo xiao-esp32c3.yaml que criamos antes, adicione o seguinte ao final do arquivo e envie OTA para o XIAO ESP32C3
i2c:
sda: 6
scl: 7

sensor:
- platform: sgp30
eco2:
name: "eCO2"
accuracy_decimals: 1
tvoc:
name: "TVOC"
accuracy_decimals: 1

Você pode aprender mais sobre o componente SGP30 aqui.

Grove - Sensor de CO2 e Temperatura e Umidade (SCD41)

Configuração de instalação

  • Etapa 2. Dentro do arquivo xiao-esp32c3.yaml que criamos antes, adicione o seguinte ao final do arquivo e envie OTA para o XIAO ESP32C3
i2c:
sda: 6
scl: 7

sensor:
- platform: scd4x
co2:
name: "CO2"
temperature:
name: "Temperature"
humidity:
name: "Humidity"

Você pode aprender mais sobre o componente SGP4x aqui

Grove - Relay

Configuração de instalação

  • Passo 1. Conecte o Grove - Relay a uma das portas Digitais no Grove Shield para Seeed Studio XIAO. Aqui selecionamos a porta D0
  • Passo 2. Dentro do arquivo xiao-esp32c3.yaml que criamos antes, adicione o seguinte ao final do arquivo e envie via OTA para o XIAO ESP32C3
switch:
- platform: gpio
pin: 2
name: "Relay"

Você pode aprender mais sobre o componente Relay aqui

Visualizar no Dashboard

  • Passo 1. Em + ADD CARD que mencionamos antes, selecione BY ENTITY, digite relay, selecione e clique em CONTINUE
  • Passo 2. Clique em ADD TO DASHBOARD

Agora você pode ligar e desligar o relay (ON/OFF) usando a chave de alternância

Grove - mini PIR motion sensor

Configuração de instalação

  • Passo 2. Dentro do arquivo xiao-esp32c3.yaml que criamos antes, adicione o seguinte ao final do arquivo e envie via OTA para o XIAO ESP32C3
binary_sensor:
- platform: gpio
pin: 2
name: "PIR Sensor"
device_class: motion

Você pode aprender mais sobre o componente PIR aqui

Visualizar no Dashboard

  • Passo 1. Em + ADD CARD que mencionamos antes, selecione BY ENTITY, digite pir, selecione e clique em CONTINUE
  • Passo 2. Clique em ADD TO DASHBOARD

Agora, se um movimento for detectado, ele será exibido como Detected

O que vem a seguir?

Parabéns, você aprendeu a concluir a implantação do Home Assistant no LinkStar e a usar o plugin ESPHome. Para qualquer situação semelhante em que não seja possível instalar um Home Assistant Container com Add-on, você pode usar este método para instalar outro plugin do Home Assistant.

Também esperamos que você se junte ao nosso time de criadores e nos traga mais exemplos úteis!

Claro, o XIAO ESP32C3 não se resume apenas ao suporte para o MR24HPCB1 no Home Assistant, e você pode encontrar mais tutoriais para o seu próprio uso neste documento.

Liberte sua criatividade!

Solução de problemas

FAQ1: Recebi o seguinte erro ao enviar o firmware usando a ferramenta ESPhome Web, como posso corrigi-lo?

R: Se este aviso aparecer durante o envio, desconecte o XIAO ESP32C3 do PC. Em seguida, mantenha pressionado o BOOT BUTTON, conecte a placa ao seu PC enquanto mantém o botão BOOT pressionado e depois solte-o para entrar no modo bootloader. Neste ponto, basta reconectar e enviar o firmware novamente.

FAQ2: Não consigo instalar o esphome flasher no Linux seguindo o tutorial do esphome flasher. O que fazer?

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 corretamente o WiFi e a senha, por que não vejo o endereço IP do XIAO ESP32C3?

R: Quando você encontrar esse problema, verifique se a antena do XIAO ESP32C3 está conectada corretamente. Se a antena já estiver conectada, verifique se o XIAO não está a mais de 3 m do LinkStar, se possível (a menos que você tenha substituído a antena por uma mais potente). Se você ainda não conseguir ver o XIAO, pode usar o software esphome flasher para verificar as informações de log do XIAO e checar a conexão do XIAO por meio dos logs. Você pode reconectar o XIAO para que ele tente procurar o WiFi e se conectar novamente.

Suporte Técnico e Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para lhe oferecer 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...