Skip to main content

XIAO ESP32C3 conectado con Home Assistant a través de ESPHome (todos los puertos compatibles)

Este wiki te guiará paso a paso sobre cómo conectar la XIAO ESP32C3 de Seeed Studio con ESPHome ejecutándose en Home Assistant y cómo enviar datos de sensores o controlar dispositivos después de conectar módulos Grove al XIAO ESP32C3. He aplicado todo tipo de puertos aquí, incluyendo digital, analógico, IIC, SPI y UART. ¡Ahora comencemos!

¿Qué son ESPHome y Home Assistant?

ESPHome es una herramienta que tiene como objetivo facilitar al máximo la gestión de tus placas ESP. Lee un archivo de configuración en YAML y crea un firmware personalizado que instala en tu dispositivo ESP. Los dispositivos o sensores añadidos en la configuración de ESPHome aparecerán automáticamente en la interfaz de usuario de Home Assistant. ESPHome te permite conectar y enviar datos a los dispositivos de Home Assistant.

Preparación del Hardware

Estoy utilizando XIAO ESP32C3 como la placa de control, junto con reRouter como el hardware, además de varios sensores Grove.

Seeed Studio XIAO ESP32C3Seeed Studio Placa de ExpansionDispositivos Home Assistant

Sensores Grove

Preparación del Software

Instalar Home Assistant

Asegúrate de que ya tienes Home Assistant instalado y en funcionamiento. Existen múltiples wikis que explican cómo flashear Home Assistant en los productos. En mi caso, estoy utilizando reRouter, que funciona con Raspberry Pi CM4, por lo que puedo usar directamente la herramienta oficial para flashear el sistema operativo en el reRouter.

Instalar ESPHome en Home Assistant

ESPHome está disponible como un complemento de Home Assistant y se puede instalar fácilmente desde la tienda de complementos.

  • Paso 1. Haz click en INSTALL
  • Paso 2. Activa todas las opciones y haz click en START

Verás la siguiente ventana si ESPHome carga correctamente

Primeros Pasos

Una vez que todo el hardware y el software estén listos, podemos comenzar.

1. Agregar XIAO ESP32C3 a ESPHome

  • Paso 1. Haz click en + NEW DEVICE
  • Paso 2. Haz click en CONTINUE
  • Paso 3. Ingresa un Nombre para el dispositivo y proporciona las credenciales de WiFi, como el Nombre de la red y la Contraseña. Luego, haz clic en NEXT.
  • Paso 4. Selecciona ESP32-C3 y haz click
  • Paso 5. Haz click en SKIP porque vamos a configurar la tarjeta manualmente.
  • Paso 6. Haz click EDIT debajo de la placa creada recientemente
  • Paso 7. Esto abrirá un archivo YAML, este archivo será usado para hacer todas las configraciones de la placa. Edita el contenido del archivo con lo siguiente:
esphome:
name: xiao-esp32c3
platformio_options:
board_build.flash_mode: dio

esp32:
board: seeed_xiao_esp32c3
variant: esp32c3
framework:
type: arduino
platform_version: 5.4.0

# Habilitar registro
logger:
hardware_uart: UART0

# Habilitar API de Home Assistant
api:
password: "Tu contraseña"

ota:
password: "Tu contraseña"

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

# Habilitar punto de acceso de respaldo (portal cautivo) en caso de que falle la conexión wifi
ap:
ssid: "Xiao-Esp32C3 Fallback Hotspot"
password: "Tu Contraseña"
Aquí estamos utilizando la última versión del núcleo de Arduino para ESP32 y el soporte de ESP32 para PlatformIO.
  • Paso 8. Haz click en SAVE y luego click en INSTALL
  • Paso 9. Conecta un extremo de un cable USB Tipo-C al XIAO ESP32C3 y el otro extremo a uno de los puertos USB del reRouter CM4 1432.
  • Paso 10. Haz click en Plug into the computer running ESPHome Dashboard
  • Paso 11. Selecciona el puerto conectado. Es probable que sea /dev/ttyACM1 porque /dev/ttyACM0 está conectado al reRouter CM4 1432.
tip

Es preferible usar Wi-Fi de 2.4GHz

Ahora descargará todos los paquetes necesarios para la placa y flasheará el firmware de ESPHome en el XIAO ESP32C3. Si el flasheo es exitoso, verás la siguiente salida. Si ves algún error, intenta reiniciar tu XIAO ESP32C3 o entra en el modo de arranque manteniendo presionado el BOTÓN BOOT y conecta el XIAO ESP32C3.

  • Paso 12. La ventana anterior muestra los registros en tiempo real de la placa conectada. Ciérrala haciendo clic en STOP.
  • Paso 13. Si ves el estado de la placa como ONLINE, eso significa que la placa está conectada exitosamente al WiFi.
  • Paso 14. Ve a Settings y selecciona Devices & Services
  • Paso 15. Verás ESPHome como una integración descubierta. Haz clic en CONFIGURAR.
  • Paso 16. Haz click en SUBMIT
  • Paso 17. Ingresa tu contraseña. Esta es la contraseña de la API que puedes encontrar en Paso 8.
  • Paso 18. Haz click en FINISH

2. Conectar los Módulos Grove y Enviar los Datos

Ahora conectaremos los módulos Grove a la XIAO ESP32C3 para poder mostrar los datos de los sensores o controlar los dispositivos usando Home Assistant.

Conocimiento para el Desarrollo

Placa de Expansión para XIAO

Para utilizar los módulos Grove con la XIAO ESP32C3, utilizaremos una Placa de Expansión de Seeed Studio para XIAO y conectaremos la XIAO ESP32C3 en ella.

Después de eso, los conectores Grove en la placa podrán usarse para conectar los módulos Grove. Aquí están las definiciones de los pines.

Definiciones de Pines

Debes seguir la gráfica a continuación para utilizar los números de pines internos apropiados al conectar los módulos Grove a los conectores Grove en la Placa de Expansión Grove para XIAO.

Por ejemplo, si deseas conectar un módulo Grove al puerto D0, debes definir el pin en ESPHome como GPIO2.

Lista de Compatibilidad de Grove con ESPHome

Actualmente, los siguientes módulos Grove son compatibles con ESPHome. Consulta aquí.

3. Conexión Grove y Transmisión de Datos

Ahora seleccionaremos varios módulos Grove y explicaremos cómo pueden conectarse con ESPHome y Home Assistant.

Grove - Sensor de Temperatura y Humedad (DHT20)

Este sensor de Temperatura y Humedad proporciona una salida digital precalibrada. Un elemento sensor capacitivo único mide la humedad relativa y la temperatura se mide mediante un termistor de coeficiente de temperatura negativo (NTC). Tiene una excelente fiabilidad y estabilidad a largo plazo. Haz clic aquí para realizar la compra.

Setup Configuration
  • Paso 1. Conecta el Grove - DHT20 a uno de los conectores I2C en la Placa de Expansión Seeed Studio para XIAO
  • Paso 2. Dentro del archivo xiao-esp32c3.yaml que creamos antes, realiza los cambios en el archivo y envíalo por OTA al XIAO ESP32C3.
esphome:
name: xiao-esp32c3
platformio_options:
board_build.flash_mode: dio

esp32:
board: seeed_xiao_esp32c3
variant: esp32c3
framework:
type: arduino
platform_version: 5.4.0

# Enable logging
logger:
hardware_uart: UART0

api:
password: "F4MQG/rBhNmqP8Nud+AJ+5CYu7LuIhIFTOcRwOm5Nw4="

ota:
password: "999afa1f8a07e85959a9f89f8f6aebb2"

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xiao-Esp32C3 Fallback Hotspot"
password: "YtpCwOqLoYlp"

captive_portal:

# 0x28 is the I2C address of DHT20
i2c:
sda: GPIO6
scl: GPIO7
scan: True
id: bus_0x38

sensor:
- platform: aht10
temperature:
name: "Living Room Temperature"
humidity:
name: "Living Room Humidity"
update_interval: 60s

Puedes aprender más sobre el componente DHT20 aquí. En este caso, añadimos el componente I²C Bus porque el DHT20 se comunica utilizando el protocolo I2C.

Visualizar en el Panel de Control
  • Paso 1. En la página de Visión General de Home Assistant, haz clic en los 3 puntos y luego en Editar Panel.
  • Paso 2. }Haz click en + ADD CARD
  • Paso 3. Selecciona By ENTITY, escribe temperature y marca la casilla junto a Temperature
  • Paso 4. Haz click en ADD TO DASHBOARD

  • Paso 5. También puedes visualizar los datos del sensor como indicadores (gauges). Haz click en Gauge en BY CARD

Ahora, tu panel de Home Assistant se verá como el siguiente.

Grove - Sensor de Luz (LS06-S)

El Grove - Sensor de Luz v1.2 es un módulo analógico y puede generar diversas señales eléctricas que se pueden convertir a diferentes rangos. Integra un fotorresistor LS06-S, un fotodiodo altamente sensible y confiable, para detectar la intensidad de la luz en el entorno. Es un módulo ideal para Arduino en medición de luz, detección de luz y un interruptor controlado por luz.

Haz click aquí para comprarlo.

Configuración de la Configuración
  • Paso 1. Conecta el Sensor de Luz Grove a uno de los conectores Analógicos/Digitales en la Placa de Expansión para XIAO.
  • Paso 2. Dentro del archivo xiao-esp32c3.yaml que creamos antes, realiza los cambios en el archivo y envíalo por OTA al XIAO ESP32C3.

Verás este resultado si todo va bien.

Visualizar en el Panel de Control
  • Paso 1. En la página de Visión General de Home Assistant, haz clic en los 3 puntos y luego en Edit Dashboard.
  • Paso 2. Haz click en + ADD CARD
  • Paso 3. Selecciona By ENTITY, ahí selecciona Light Sensor
  • PAso 4. Selecciona PICK DIFFERENT CARD
  • Paso 5. Selecciona Gauge
  • Paso 6. Establece mínimo y máximo
  • Paso 7. Luego verás el valor del sensor de luz en tu panel de control.

✨ Proyecto de Contribuidor

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para proporcionarte soporte diverso y asegurarnos de que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.