XIAO ESP32C3 accede a Home Assistant a través del servicio ESPHome

Este artículo te guiará a través de la instalación del servicio ESPHome en tu propio entorno de Home Assistant. Al usar la función WiFi del XIAO ESP32C3, podrás conectar tu XIAO al Home Assistant como parte de tu terminal doméstico de una manera muy fluida.
Además, construiremos un Home Assistant con detección de presencia humana en combinación con el popular Módulo Lite de Presencia Estática Humana mmWave de 24GHz.
Comenzando
A partir del 31 de julio de 2023, el problema anterior que causaba que el radar se dañara completamente ahora ha sido solucionado, así que por favor actualiza los archivos de biblioteca y el configurador para que este tutorial funcione correctamente.
Si quieres seguir este tutorial completamente, necesitarás preparar lo siguiente.
XIAO ESP32C3 | Módulo Lite de Presencia Estática Humana mmWave de 24GHz |
---|---|
![]() | ![]() |
El objetivo final de este proyecto es desplegar el Módulo Lite de Presencia Estática Humana mmWave de 24GHz en Home Assistant.
Hemos escrito archivos de configuración y bibliotecas completos para el Módulo Lite de Presencia Estática Humana mmWave de 24GHz para facilitar tu despliegue rápido del sensor en Home Assistant en este proyecto.
El contenido de este tutorial cubrirá ampliamente los siguientes pasos.
- Selecciona tu entorno de Home Assistant
- Instalar y configurar ESPHome en Home Assistant
- Configurar la conexión entre XIAO ESP32C3 y ESPHome
- Configurar el Panel de Home Assistant
Por supuesto, si estás interesado en cómo el XIAO ESP32C3 usa Grove en Home Assistant, puedes leer este capítulo directamente.
Selecciona tu entorno de Home Assistant
En esta rutina, no expandiremos sobre cómo instalar el entorno de Home Assistant, asumiremos que ya tienes un dispositivo Home Assistant funcionando.
Si deseas aprender cómo instalar Home Assistant, entonces puedes consultar el tutorial oficial. Recomendamos encarecidamente que instales Home Assistant usando un dispositivo x86 ya que esta es la forma más amigable para el usuario de instalar Home Assistant con Supervised.

Según la tabla anterior, es más apropiado instalar Home Assistant OS y Home Assistant Supervised, lo cual te quitará muchas molestias de encima. Si estás ejecutando Home Assistant en Docker con OpenWRT (por ejemplo, usando LinkStar H68K), por favor no te preocupes, también te proporcionaremos una referencia detallada sobre cómo hacer esto.
También hemos escrito cómo instalar Home Assistant para algunos productos de Seeed Studio, por favor consúltalos.
- Comenzando con Home Assistant en ODYSSEY-X86
- Comenzando con Home Assistant en reTerminal
- Comenzando con Home Assistant en LinkStar H68K/reRouter CM4
Instalar ESPHome en Home Assistant
Paso 1. Instalar ESPHome
- Escenario 1: instalación de ESPHome bajo Home Assistant OS (con Add-on Store)
Si tienes Home Assistant OS instalado, tiene un Add-on Store, lo cual hace mucho más fácil instalar ESPHome.

En el Add-on Store, puedes buscar e instalar ESPHome.

- Escenario 2: ESPHome instalado bajo Home Assistant bajo Docker de OpenWRT/Docker (sin Add-on Store)
Como estamos instalando el Contenedor de Home Assistant, no podemos simplemente descargar el servicio ESPHome a través del Add-on Store, por lo que se necesita una solución alternativa.
Necesitamos descargar la imagen de ESPHome.
esphome/esphome:latest

En la página donde se crea el contenedor, necesitamos hacer algunas configuraciones simples.
- Container Name: el nombre de tu contenedor
- Docker Image: elige la imagen esphome recién descargada
- Network: elige el modo host
- Environment Variables(-e): tu variable de entorno

Una vez que hayas completado lo anterior, guarda y aplica. Verás que el Contenedor ha sido creado. También necesitas iniciarlo.

Para lograr el mismo efecto que descargar ESPHome en Home Assistant, necesitamos modificar el archivo de configuración bajo Home Assistant.
Ve al Contenedor de Home Assistant.

Vamos al terminal en Home Assistant.

Ingresa el siguiente comando en el terminal.
vi configuration.yaml
Añade el siguiente contenido al final de configuration.yaml
.
# Example configuration.yaml entry
panel_iframe:
esphome:
title: "ESPHome"
url: "http://192.168.100.1:6052"
icon: mdi:chip
Sal del contenedor docker escribiendo exit
en el shell del contenedor de Home Assistant. Una vez hecho esto, reiniciamos el contenedor de Home Assistant.
Crea una nueva página del navegador, ingresa la dirección http://homeassistant:8123/
e ingresa tu cuenta de Home Assistant y verás que ESPHome aparece en la barra de herramientas de la izquierda.

Configurar la conexión entre XIAO ESP32C3 y ESPHome
Paso 2. Preparación del hardware
El objetivo de nuestro tutorial es poder ver la información de datos del Módulo de Presencia Estática Humana mmWave de 24GHz Lite en el panel de Home Assistant.
Conecta el dispositivo a la computadora a través de la placa principal. El diagrama de cableado se muestra en la tabla a continuación.
![]() | ||
XIAO ESP32C3 | Módulo de Presencia Estática Humana mmWave de 24GHz Lite | |
5V | --> | 5V |
GND | --> | GND |
D2 | --> | RX |
D3 | --> | TX |
Paso 3. Mantener el XIAO ESP32C3 y Home Assistant en la misma LAN
Estoy seguro de que tu Home Assistant ya ha realizado el trabajo de conectarse a la red, por ejemplo conectándose a tu dispositivo a través de un cable de red. Todo lo que necesitas hacer entonces es simplemente activar una red local (por ejemplo WiFi) para que el XIAO ESP32C3 también pueda conectarse a esta red.
Usaré el LinkStar H68K como ejemplo a continuación. Mi objetivo es conseguir que el XIAO se conecte al punto de acceso del LinkStar H68K.
En la pestaña Network en OpenWRT, selecciona Wireless --> ADD.

Para Transmit Power en Device Configuration, selecciona auto.
Para la configuración de Interface Configuration, por favor completa las siguientes instrucciones.
- General Setup
- Mode: Depende de cómo LinkStar accede a internet. Si estás usando una conexión por cable entonces selecciona Client, si estás conectado a WiFi entonces selecciona Access Point.
- ESSID: Introduce el nombre de tu WiFi, por favor trata de no tener espacios o caracteres especiales.
- Network: marca lan.

- Wireless Security
- Encryption: WPA2-PSK
- Key: Introduce la contraseña WiFi que deseas establecer.

Una vez que hayas completado la información anterior, haz clic en Save and Apply en la esquina inferior derecha y espera unos momentos para que LinkStar abra un punto de acceso.
Cuando ningún dispositivo esté conectado a este punto de acceso, se mostrará como sin señal.

Considerando todo, regresemos a la página de Home Assistant.

Haz clic en NEW DEVICE. Luego haz clic en Continue.
Bajo la nueva ventana emergente, por favor introduce el nombre de la aplicación que deseas configurar, así como el nombre y contraseña del punto de acceso que has configurado en LinkStar (O tu propio WiFi). Asegúrate de que el XIAO ESP32C3 y Home Assistant estén en la misma LAN.

Luego haz clic en Next.
En el tipo de dispositivo, por favor selecciona ESP32-C3.

Luego haz clic en Next.
Haz clic en la Encryption key y guárdala en un lugar seguro, usaremos esta clave en un paso posterior.
Luego haz clic en SKIP.
Paso 4. Cambiar el archivo yaml de configuración del XIAO ESP32C3
Luego, hacemos clic en la pestaña del dispositivo que acabamos de crear, con el botón EDIT en la esquina inferior izquierda.

Por favor ten en cuenta que necesitamos hacer cambios a este archivo yaml. Hemos dividido el contenido a modificar en dos partes principales, correspondientes a uno y dos en el diagrama de abajo.

- En el ① del contenido, por favor no cambies el nombre del dispositivo excepto el que has configurado, por favor consulta el código de abajo para el resto del contenido.
# 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
- En el ② del contenido, copia el siguiente código después de
captive_portal:
.
Haz clic aquí para previsualizar el 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)"
Luego, haz clic en el botón Guardar en la esquina superior derecha.

Paso 5. Subir firmware al XIAO ESP32C3
- Método 1: Compilar y subir directamente
Si estás usando un dispositivo x86 y puedes ver el XIAO en el puerto del dispositivo, entonces puedes compilar y subir el programa al XIAO.
Conecta el XIAO a tu dispositivo.

Haz clic en los tres puntos en la esquina inferior derecha de la barra del dispositivo y selecciona Install.

Haz clic en Plug into the computer running ESPHome Dashboard.

Selecciona el puerto conectado.

Ahora descargará todos los paquetes de placa necesarios y grabará el firmware de ESPHome en el XIAO ESP32C3. Si la grabación es exitosa, verás la siguiente salida.

Si no puedes encontrar el puerto después de conectar el XIAO a tu dispositivo, entonces puedes intentar usar el segundo método.
- Método 2: Subir firmware compilado usando el host
Los routers suaves como LinkStar H68K no soportan el reconocimiento de dispositivos MCU externos, necesitamos descargar primero el firmware compilado y luego subir el firmware a través de otra PC.
Haz clic en el botón Install en la esquina superior derecha. Luego selecciona el último elemento Manual download.

Selecciona Modern format.

Luego tomará mucho tiempo descargar y compilar, así que ten paciencia. Una vez que todo esté listo, el firmware se descargará automáticamente a tu computadora.

Para subir el firmware al XIAO ESP32C3 hay un par de opciones, aquí mostramos 2 formas de hacerlo:
- Opción 1: usando la herramienta web de ESPhome para subir.
Asegúrate de tener los controladores correctos instalados. A continuación están los controladores para chips comunes usados en dispositivos ESP.
-
Controladores CP2102: Windows & Mac
Abre la herramienta web de ESPhome con el navegador Chrome o Edge.
Haz clic en CONNECT.

selecciona el puerto serie del XIAO ESP32 en la ventana emergente.

Haz clic en INSTALL y luego selecciona el archivo .bin
descargado de los pasos anteriores.


- Opción 2: Usando la herramienta esphome-flasher.
Si aún no puedes subir el firmware usando el método uno después de instalar el controlador y cambiar navegadores, entonces puedes intentar usar el método dos. Por favor consulta el tutorial oficial para métodos de instalación específicos e instrucciones.
Si deseas observar los mensajes de registro del XIAO ESP32C3, también puedes verlos a través del botón View Logs de este software.

Una vez que la subida esté completa, puedes desconectar el XIAO ESP32C3 de la PC (a menos que tengas necesidad de ver los registros) y simplemente alimentar el XIAO por separado.
Si todo va bien, el XIAO ESP32C3 buscará y se conectará al WiFi que has configurado para él.
Como yo, uso la red de LinkStar H68K. Puedes encontrarla en las opciones de red y ver la dirección IP asignada por LinkStar H68K.

Normalmente, en este punto en Home Assistant, el estado del dispositivo también cambiará de desconectado a conectado.

Configurar Panel de Home Assistant
Paso 6. Conectar a XIAO ESP32C3
Si no tienes muchos dispositivos de Home Assistant en tu LAN, Home Assistant puede buscar automáticamente y agregar tus dispositivos ESP a la pestaña de Dispositivos. Puedes ver este dispositivo dentro de la pestaña Devices & Services en Settings.


Si no busca automáticamente, también puedes conectarte al XIAO ESP32C3 basándote en su dirección IP.
Haz clic en ADD INTEGRSTION y busca esphome.

Luego ingresa la dirección IP del XIAO ESP32C3 con el número de puerto 6053. Después haz clic en SUBMIT.

Si la dirección IP y el número de puerto ingresados son correctos, entonces verás que se te pide ingresar la clave de cifrado, que pedimos guardar en el paso 4.
Luego haz clic en SUBMIT.

En este punto, los pasos para agregar el dispositivo se han completado exitosamente.

Paso 7. Descripción general de las funciones del Módulo mmWave de 24GHz Lite
Para ayudarte a entender rápidamente las capacidades completas del conjunto y el uso de estas características, necesitas leer esta sección cuidadosamente. Si quieres información más detallada, recomendamos que te tomes el tiempo de leer el manual de usuario del producto.
Para detalles sobre la configuración y parámetros del panel de control, hemos compilado un artículo detallado en la documentación de ESPHome, así que por favor dirígete allí para leer el artículo completo y los detalles.

Paso 8. Configurar panel de Home Assistant
Si encuentras las tarjetas predeterminadas muy aburridas y poco amigables para presentar datos, Home Assistant ofrece una amplia gama de paneles de control listos para elegir.
Puedes hacer tu propio panel de control que se adapte a tus preferencias.

Por ejemplo, la opción para controlar la salida de información se convierte en un interruptor agradable.

Convirtiendo la velocidad del movimiento humano en una visualización de panel de control visual.

Esto es lo que se me ocurrió. Parece que tiene las características de un centro de control de hogar inteligente.

Hasta aquí, hemos concluido exitosamente nuestro contenido del tutorial.
Conectar Grove a Home Assistant usando XIAO ESP32C3
Por supuesto, hay más en el XIAO ESP32C3 que solo el soporte para el Módulo Lite de Presencia Estática Humana mmWave de 24GHz en Home Assistant, y puedes encontrar más tutoriales para tu propio uso en este documento.
¡Deja fluir tu creatividad!
Solución de problemas
FAQ1: Obtuve el siguiente error mientras subía el firmware usando la herramienta web ESPhome, ¿cómo puedo solucionarlo?

R: Si aparece este mensaje mientras subes, desconecta el XIAO ESP32C3 de la PC. Luego, mantén presionado el BOTÓN BOOT, conecta la placa a tu PC mientras mantienes presionado el botón BOOT, y luego suéltalo para entrar al modo bootloader. En este punto es suficiente reconectar y subir el firmware nuevamente.
FAQ2: No puedo instalar esphome flasher en Linux siguiendo el tutorial de esphome flasher?
R: Al ejecutar los siguientes comandos, necesitas seleccionar la versión de tu sistema, de lo contrario ocurrirá un error. Por ejemplo, mi computadora es Ubuntu 22.04, entonces el comando que debería ejecutarse es el siguiente.
sudo apt install python3
pip3 install -U \
-f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04/ \
wxPython
pip3 install esphomeflasher
FAQ3: Llené el WiFi y la contraseña correctos, ¿por qué no veo la dirección IP del XIAO ESP32C3?
R: Cuando encuentres este problema, por favor verifica que la antena del XIAO ESP32C3 esté conectada en su lugar. Si la antena ya está conectada, por favor asegúrate de que el XIAO no esté a más de 3m del LinkStar si es posible (a menos que hayas reemplazado la antena con una más potente). Si aún no ves el XIAO, puedes usar el software esphome flasher para verificar la información de registro del XIAO y comprobar la conexión del XIAO a través de los registros. Puedes volver a conectar el xiao para que trate de buscar WiFi y conectarse nuevamente.
FAQ4: Usé el firmware flash de Jlink, pero obtuve el error "Programming of range @address 0x08000000 failed (block verification error) Program failed Failed to program and verify target" ?
Cuando estás usando el firmware flash de Jlink y ocurre este error, entonces puedes estar en cualquiera de las siguientes situaciones.
- Tu sensor ya no está funcionando correctamente en absoluto y no puedes recibir ningún mensaje de él.
- Estás tratando de usar un firmware inválido o incorrecto.
¡Si tu radar originalmente estaba funcionando correctamente, verifica nuevamente que estés usando el firmware correcto! ¡El firmware utilizado varía de radar a radar y de modelo de sensor a modelo de sensor! ¡Y la actualización de firmware vía UART no es la misma que la actualización de firmware vía Jlink! Por favor detén el procedimiento con los siguientes pasos.
He confirmado que mi producto obtiene este mensaje de error en caso de una excepción
Si tu radar no está funcionando en absoluto, entonces puede ser normal tener este mensaje de error.
Porque el funcionamiento anormal del radar ha permitido que el radar active el mecanismo de protección de lectura/escritura, ya no se permite al usuario flashear el programa del producto en general, por lo que necesitamos desbloquear el mecanismo de protección de lectura/escritura del radar.
Debido al alto riesgo de desproteger las lecturas y escrituras, no divulgamos el método de desprotección de lecturas y escrituras por separado al público aquí, colocaremos el método en el archivo zip aquí para aquellos que lo necesiten. Una vez que el radar anormal esté desprotegido, el firmware puede actualizarse nuevamente para restaurar el funcionamiento normal.
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.