XIAO ESP32S3 sense conectando-se ao Home Assistant via ESPHome (todas as portas suportadas)
Este Wiki mostrará passo a passo como conectar o Seeed Studio XIAO ESP32S3 com o ESPHome em execução no Home Assistant e enviar os dados dos sensores / controlar dispositivos após conectar módulos Grove ao XIAO ESP32S3. Então, vamos começar!
O que são ESPHome e Home Assistant?

ESPHome é uma ferramenta que tem como objetivo tornar o gerenciamento das suas placas ESP o mais simples possível. Ela lê um arquivo de configuração YAML e cria um firmware personalizado que é instalado no seu dispositivo ESP. Dispositivos ou sensores adicionados na configuração do ESPHome aparecerão automaticamente na interface do Home Assistant. O ESPHome pode ajudar você a conectar e enviar os dados para dispositivos do Home Assistant.
Preparação de Hardware
Se você quiser seguir este tutorial até o fim, será necessário preparar o seguinte.
| Seeed Studio XIAO ESP32S3 Sense | Placa de Expansão Seeed Studio | Dispositivos Home Assistant |
|---|---|---|
![]() | ![]() | ![]() |
Sensores Utilizados
- Grove - Temperature and Humidity Sensor (BME680)
- Grove -Smart Air Quality Sensor (SGP41)
- 6x10 RGB MATRIX for XIAO
Preparação de Software
Instalar o Home Assistant
Certifique-se de que você já tem o Home Assistant em execução. Você pode seguir este wiki para um guia passo a passo de instalação do Home Assistant em um SBC ODYSSEY-X86 ou este link para instruções detalhadas de como usar o Home Assistant com um Seeed Mini Router.
Instalar ESPHome no Home Assistant
O ESPHome está disponível como um Add-On do Home Assistant e pode ser instalado facilmente pela loja de add-ons.

- Passo 1. Clique em INSTALL

- Passo 2. Habilite todas as opções e clique em START

Você verá a seguinte janela se o ESPHome tiver sido carregado com sucesso

Primeiros Passos
Depois que todo o software e o hardware estiverem prontos, podemos começar.
1. Adicionar o Seeed Studio XIAO ESP32S3 (Sense) ao ESPHome
- Passo 1. Clique em + NEW DEVICE

- Passo 2. Clique em CONTINUE

- Passo 3. Insira um Name para o dispositivo e informe as credenciais de WiFi, como Network name e Password. Em seguida, clique em NEXT

- Passo 4. Selecione ESP32-S3 e clique

- Passo 5. Clique em SKIP porque iremos 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 da seguinte forma
esphome:
name: esp32s3
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
wifi:
ssid: "your wifi name"
password: "your password"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
Nota: Aqui estamos usando a versão mais recente do Arduino core para ESP32 e o suporte a ESP32 para PlatformIO
- Passo 8. Clique em SAVE e depois clique em INSTALL

- Passo 9. Conecte uma extremidade de um cabo USB Tipo-C ao Seeed Studio XIAO ESP32S3 e a outra extremidade a uma das portas USB do reRouter CM4 1432

- Passo 10. Clique em Plug into the computer running ESPHome Dashboard

- Passo 11. Selecione a porta conectada. Provavelmente será
/dev/ttyACM1porque/dev/ttyACM0está conectado ao reRouter CM4 1432

É melhor usar Wi-Fi de 2,4 GHz
Agora ele vai baixar todos os pacotes de placa necessários e gravar o firmware ESPHome no XIAO ESP32S3. Se a gravação for bem-sucedida, você verá a seguinte saída. Se você vir algum erro, tente reiniciar seu XIAO ESP32S3 ou entrar no modo bootloader mantendo pressionado o BOOT BUTTON e conectando o XIAO ESP32S3.

- Passo 12. A janela acima exibe os logs em tempo real da placa conectada. Feche-a clicando em STOP

- Passo 13. Se você vir o status da placa como ONLINE, isso significa que a placa está conectada com sucesso ao Wi-Fi

Agora você pode desconectar o XIAO ESP32S3 do reRouter CM4 1432 e apenas alimentá-lo via cabo USB. Isso porque, a partir de agora, se você quiser gravar firmware no XIAO ESP32S3, pode simplesmente fazer isso por OTA sem conectar à placa X86 via cabo USB.
-
- Clique nos três pontos e clique em Install

-
- Selecione Wirelessly e isso enviará as alterações para a placa sem fio

- Passo 14. Vá para Settings e selecione Devices & Services

- Passo 15. Você verá ESPHome como uma integração descoberta. Clique em CONFIGURE

- Passo 16. Clique em SUBMIT

- Passo 17. Clique em FINISH

2. Conectar Módulos Grove com ESPHome e Home Assistant
Agora vamos conectar módulos Grove ao Seeed Studio XIAO ESP32S3 (sense) para que possamos exibir dados de sensores ou controlar os dispositivos usando o Home Assistant!
Conhecimento de Desenvolvimento
Placa de Expansão XIAO
Para usar módulos Grove com o Seeed Studio XIAO ESP32S3, usaremos uma Seeed Studio Expansion Base for XIAO e conectaremos o XIAO ESP32S3 nela.
Depois disso, os conectores Grove na placa podem ser usados para conectar módulos Grove

Definições de Pinos
Você precisa seguir o gráfico 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.

Por exemplo, se você quiser conectar um módulo Grove à porta D0, você precisa definir o pino no ESPHome como GPIO1. Você pode encontrar mais detalhes clicando aqui.
Lista de Compatibilidade Grove com ESPHome
Atualmente, os seguintes módulos Grove são suportados pelo ESPHome
Verifique aqui
Agora selecionaremos 6 módulos Grove da tabela acima e explicaremos como eles podem ser conectados ao ESPHome e ao Home Assistant.
3. Conexão Grove e Transmissão de Dados
Agora vamos selecionar vários módulos Grove e explicar como eles podem ser conectados ao ESPHome e ao Home Assistant.
Grove - Sensor de Temperatura e Umidade (BME680)
Configuração de Setup
-
Passo 1. Conecte o Grove - Temperature, Humidity, Pressure and Gas Sensor (BME680) a um dos conectores I2C na Seeed Studio Expansion Base for XIAO
-
Passo 2. Dentro do arquivo xiao-esp32s3-bme680.yaml que criamos antes, altere o arquivo e envie-o OTA para o XIAO ESP32S3
# Configuration for ESPHome
esphome:
# Name of the ESP32-S3 device
name: esp32s3
# PlatformIO build options
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# Configuration for ESP32
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
# Over-the-Air update configuration
ota:
# Wi-Fi configuration
wifi:
ssid: "your wifi name"
password: "your password"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# Captive portal configuration
captive_portal:
# I2C configuration for BME680 sensor
i2c:
sda: GPIO5
scl: GPIO6
# BME680 sensor configuration
sensor:
- platform: bme680
temperature:
name: "BME680 Temperature"
oversampling: 16x
pressure:
name: "BME680 Pressure"
humidity:
name: "BME680 Humidity"
gas_resistance:
name: "BME680 Gas Resistance"
address: 0x76
update_interval: 60s
Você pode aprender mais sobre o componente BME680 aqui. Ele permite que você use sensores baseados em BME280, BME680, BMP085, BMP280, AHT10, AHT20 e AHT21. Aqui adicionamos o componente de barramento I²C porque o AHT20 se comunica usando o protocolo I2C.
Visualizar no Dashboard
- Passo 1. Na página Overview do Home Assistant, clique nos 3 pontos e clique em Edit Dashboard

- Passo 2. Clique em + ADD CARD

- Passo 3. Selecione By ENTITY, digite temperature e selecione a caixa de seleção ao lado de Temperature

-
Passo 4. Repita o mesmo para Humidity, Gas Resitance e Pressure
-
Passo 5. Clique em CONTINUE
-
Passo 6. Clique em ADD TO DASHBOARD
Agora o seu painel do Home Assistant ficará como abaixo

- Passo 7. Você também pode visualizar os dados do sensor como medidores. Clique em Gauge em BY CARD

- Passo 8. Selecione Temperature no menu suspenso

-
Passo 9. Clique em SAVE
-
Passo 10. Repita o mesmo para Humidity, Gas Resitance e Pressure
-
Agora o seu painel ficará como abaixo

Grove -Smart Air Quality Sensor (SGP41)
- Passo 1. Conecte o Grove - Smart Air Quality Sensor (SGP41) a um dos conectores I2C na Seeed Studio Expansion Base for XIAO

- Passo 2. Dentro do arquivo xiao-esp32S3.yaml que criamos antes, altere o arquivo e envie-o por OTA para o XIAO ESP32S3 sense
# Configuration for ESPHome
esphome:
# Name of the ESP32-S3 device
name: esp32s3
# PlatformIO build options
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# Configuration for ESP32
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
# Over-the-Air update configuration
ota:
# Wi-Fi configuration
wifi:
ssid: "your wifi name"
password: "your password"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# Captive portal configuration
captive_portal:
# SPI configuration
spi:
clk_pin: GPIO8
mosi_pin: GPIO10
miso_pin: GPIO9
# I2C configuration for BME680 sensor
i2c:
sda: GPIO5
scl: GPIO6
scan: True
id: bus_a
frequency: 1MHz
# Sensor configuration for SGP4X
sensor:
- platform: sgp4x
voc:
id: sgp41_voc
name: "VOC Index"
nox:
id: sgp41_nox
name: "NOx Index"
- Passo 3. Exemplo com compensação compensation (Opcional): O bloco que contém sensores usados para compensação. Se não for definido, valores padrão serão usados. Usaremos o Temperature and Humidity Sensor (BME680) para compensar o Smart Air Quality Sensor (SGP41). Aqui está o arquivo xiao-esp32S3.yaml atualizado:
# Configuration for ESPHome
esphome:
# Name of the ESP32-S3 device
name: esp32s3
# PlatformIO build options
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# Configuration for ESP32
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
# Over-the-Air update configuration
ota:
# Wi-Fi configuration
wifi:
ssid: "your wifi name"
password: "your password"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# Captive portal configuration
captive_portal:
# SPI configuration
spi:
clk_pin: GPIO8
mosi_pin: GPIO10
miso_pin: GPIO9
# I2C configuration for BME680 sensor
i2c:
sda: GPIO5
scl: GPIO6
scan: True
id: bus_a
frequency: 1MHz
# BME680 sensor configuration
sensor:
- platform: bme680
temperature:
id: bme680_temp
name: "BME680 Temperature"
oversampling: 16x
pressure:
name: "BME680 Pressure"
humidity:
id: bme680_hum
name: "BME680 Humidity"
gas_resistance:
name: "BME680 Gas Resistance"
address: 0x76
# SGP4X sensor configuration
- platform: sgp4x
voc:
name: "VOC Index"
nox:
name: "NOx Index"
compensation:
humidity_source: bme680_hum
temperature_source: bme680_temp
Observação: Este sensor levará 90 ciclos para coletar amostras de dados suficientes e, até o momento, o aviso não pode ser evitado.

Visualizar no Dashboard
O mesmo que antes.

Câmera OV2640/OV3660 (XIAO ESP32S3 Sense)
Configurar
-
Passo 1. Conecte a placa externa da câmera OV2640 ou OV660 ao xiao esp32s3 sense
-
Passo 2. Dentro do arquivo xiao-esp32s3-camera.yaml que criamos antes, altere o arquivo e envie-o por OTA para o XIAO ESP32S3 sense
# Configuration for ESPHome
esphome:
# Name of the ESP32-S3 device
name: esp32s3
# PlatformIO build options
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# Configuration for ESP32
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
# Over-the-Air update configuration
ota:
# Wi-Fi configuration
wifi:
ssid: "your wifi name"
password: "your password"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# Captive portal configuration
captive_portal:
# Configuration for the ESP32 Camera
esp32_camera:
id: espcam
name: My Camera
external_clock:
pin: GPIO10
frequency: 20MHz
i2c_pins:
sda: GPIO40
scl: GPIO39
data_pins: [GPIO15, GPIO17, GPIO18, GPIO16, GPIO14, GPIO12, GPIO11, GPIO48]
vsync_pin: GPIO38
href_pin: GPIO47
pixel_clock_pin: GPIO13
resolution: 800x600
# Configuration for the ESP32 Camera Web Server
esp32_camera_web_server:
- port: 8080
mode: stream
- port: 8081
mode: snapshot
Observação: Para mais informações, por favor leia aqui.
Visualizar no Dashboard
- Passo 1. Na página Overview do Home Assistant, clique nos 3 pontos e clique em Edit Dashboard

- Passo 2. Clique em + ADD CARD

- Passo 3. Selecione By ENTITY, digite Camera e selecione My Camera

- Passo 4. Clique em Add to Dashboard

- Passo 5. Ao visualizar o stream da câmera na dashboard, ele está em modo ocioso, atualizando apenas alguns frames por minuto. Ele passa para o modo ativo quando clicamos no card, normalmente com uma taxa de atualização de um a dez frames por segundo. Neste tutorial, a taxa de atualização é de aproximadamente quatro frames por segundo.

Microfone PDM para Assistente de Voz
Configuração de Setup
- Passo 1. Dentro do arquivo xiao-esp32s3-microphone.yaml que criamos antes, altere o arquivo e envie-o via OTA para o XIAO ESP32S3 sense
# Configuration for ESPHome
esphome:
name: esp32s3
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# Configuration for ESP32
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
# Over-the-Air update configuration
ota:
# Wi-Fi configuration
wifi:
ssid: "your wifi name"
password: "your password"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32s3 Fallback Hotspot"
password: "MoLTqZUvHwWI"
# Captive portal configuration
captive_portal:
# Configuration for the status LED light
light:
- platform: status_led
id: light0
name: "Voice Assistant State"
pin:
number: GPIO21
inverted: true
# Configuration for I2S audio
i2s_audio:
i2s_lrclk_pin: GPIO46 # Note: labeled as "useless"
i2s_bclk_pin: GPIO42
# Configuration for the microphone using I2S audio
microphone:
- platform: i2s_audio
id: echo_microphone
i2s_din_pin: GPIO41
adc_type: external
pdm: true
# Configuration for the Voice Assistant
voice_assistant:
microphone: echo_microphone
# Configuration for the binary sensor (Boot Switch)
binary_sensor:
- platform: gpio
pin:
number: GPIO2
mode:
input: true
pullup: true
name: Boot Switch
internal: true
on_press:
- voice_assistant.start:
- light.turn_off: light0
on_release:
- voice_assistant.stop:
- light.turn_on: light0
Nota: Para mais informações, por favor leia aqui.
Visualizar na Dashboard
- Passo 1. Na página Overview do Home Assistant, clique nos 3 pontos e clique em Edit Dashboard

- Passo 2. Clique em + ADD CARD

- Passo 3. Selecione By ENTITY, depois selecione Esp32S3 Assist in progress, Esp32S3 Assist in progress, Esp32S3 Finished speaking detection, Status e voice assistant state


- Passo 4. Clique em Add to Dashboard

- Passo 5. Quando você pressionar o Button(D1) na Seeed Studio Expansion Base para XIAO, o LED definido pelo usuário (GPIO2) ficará ligado no esp32s3 e você poderá falar com o esphome através do voice assitant.

Nota: Para mais informações, por favor leia isto.
Matriz RGB 6x10 para XIAO
Configuração de Setup
-
Passo 1. Primeiro você precisa conectar a Matriz RGB 6x10 ao XIAO, veja este Wiki para detalhes.
-
Passo 2. Copie as informações .yaml abaixo e envie-as via OTA para o XIAO ESP32S3.
esphome:
name: sixtyled
friendly_name: sixtyled
esp32:
board: seeed_xiao_esp32s3
variant: esp32s3
framework:
type: arduino
version: latest
platform_version: 6.4.0
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Sixtyled Fallback Hotspot"
password: "MoLTqZUvHwWI"
captive_portal:
light:
- platform: esp32_rmt_led_strip
rgb_order: GRB
pin: GPIO1
num_leds: 60
rmt_channel: 0
chipset: ws2812
name: "XIAO LEDS"
Visualizar na Dashboard
- Passo 1. Abra o caminho
Setting - Devices&services - ESPHome - sixtyled(the name you set)para adicionar o card na dashboard.

- Passo 2. Na página Overview do Home Assistant, clique nos 3 pontos e clique em Edit Dashboard

- Passo 3. Clique em + ADD CARD

- Passo 4. Selecione By ENTITY, digite xiao e selecione a check box ao lado de sixtyled XIAO LEDS

- Passo 5. Clique em CONTINUE e Add to Dashboard

- Passo 6. Em seguida, você pode encontrar um card na seção "Overview" onde pode controlar a Matriz RGB 6x10 para XIAO. Aqui, você pode alternar seu estado de ligado/desligado e personalizar sua cor e brilho.

✨ Projeto de Contribuidor
- Este projeto é apoiado pelo Projeto de Contribuidores da Seeed Studio.
- Obrigado pelos esforços do Zachary e seu trabalho será exibido.
- Obrigado pelos esforços do python e a fonte do projeto está sendo compartilhada aqui.
Suporte Técnico & Discussão de Produto
Obrigado por escolher nossos produtos! Estamos aqui para lhe fornecer diferentes formas 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.


