XIAO ESP32C3 通过 ESPHome 与 Home Assistant 连接(支持所有端口)
本文档由 AI 翻译。如您发现内容有误或有改进建议,欢迎通过页面下方的评论区,或在以下 Issue 页面中告诉我们:https://github.com/Seeed-Studio/wiki-documents/issues

本指南将逐步演示如何将 Seeed Studio XIAO ESP32C3 与运行在 Home Assistant 上的 ESPHome 连接,并在连接 Grove 模块到 XIAO ESP32C3 后发送传感器数据或控制设备。我在这里应用了所有类型的端口,包括 数字端口、模拟端口、IIC、SPI 和 UART。现在让我们开始吧!
什么是 ESPHome 和 Home Assistant?

ESPHome 是一个旨在简化 ESP 板管理的工具。它读取 YAML 配置文件并创建自定义固件,然后将其安装到 ESP 设备上。在 ESPHome 配置中添加的设备或传感器会自动显示在 Home Assistant 的用户界面中。ESPHome 可以帮助您将数据连接并发送到 Home Assistant 设备。
硬件准备
我使用 XIAO ESP32C3 作为控制板,使用 reRouter 作为硬件,同时搭配多个 Grove 传感器。
Seeed Studio XIAO ESP32C3 | Seeed Studio 扩展板 | Home Assistant 设备 |
---|---|---|
![]() | ![]() | ![]() |
Grove 传感器
软件准备
安装 Home Assistant
确保您已经安装并运行了 Home Assistant。这里有多个指南介绍如何将 Home Assistant 刷入 产品 中。我使用的是基于 Raspberry Pi CM4 的 reRouter,因此我可以 直接使用官方方法将操作系统刷入 reRouter。
在 Home Assistant 上安装 ESPHome
ESPHome 可作为 Home Assistant 插件 使用,可以通过插件商店简单安装。

- 步骤 1. 点击 INSTALL

- 步骤 2. 启用所有选项并点击 START

您将看到以下窗口,如果 ESPHome 成功加载

入门指南
当所有软件和硬件都准备好后,我们就可以开始了。
1. 将 Seeed Studio XIAO ESP32C3 添加到 ESPHome
- 步骤 1. 点击 + NEW DEVICE

- 步骤 2. 点击 CONTINUE

- 步骤 3. 输入设备的 Name,并输入 WiFi 凭据,例如 Network name 和 Password。然后点击 NEXT

- 步骤 4. 选择 ESP32-C3 并点击

- 步骤 5. 点击 SKIP,因为我们将手动配置此开发板

- 步骤 6. 点击新创建开发板下的 EDIT

- 步骤 7. 这将打开一个 YAML 文件,此文件将用于设置所有开发板配置。按照以下内容编辑 esp32 下的内容
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
# Enable Home Assistant API
api:
password: "Your password"
ota:
password: "Your password"
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: "Your Password"
- 步骤 8. 点击 SAVE,然后点击 INSTALL

- 步骤 9. 将 USB Type-C 数据线的一端连接到 Seeed Studio XIAO ESP32C3,另一端连接到 reRouter CM4 1432 的一个 USB 端口

- 步骤 10. 点击 Plug into the computer running ESPHome Dashboard

- 步骤 11. 选择已连接的端口。可能是
/dev/ttyACM1,因为 /dev/ttyACM0
已连接到 reRouter CM4 1432

最好使用 2.4GHz Wi-Fi
现在,它将下载所有必要的开发板包并将 ESPHome 固件烧录到 XIAO ESP32C3。如果烧录成功,您将看到以下输出。如果出现错误,请尝试重启您的 xiao esp32c3 或通过按住 BOOT 按钮并连接 XIAO ESP32C3 进入引导模式。

- 步骤 12. 上述窗口显示了来自连接开发板的实时日志。通过点击 STOP 关闭它

- 步骤 13. 如果您看到开发板状态为 ONLINE,这意味着开发板已成功连接到 WiFi

- 步骤 14. 前往 Settings 并选择 Devices & Services

- 步骤 15. 您将看到 ESPHome 作为一个已发现的集成。点击 CONFIGURE

- 步骤 16. 点击 SUBMIT

- 步骤 17. 输入您的密码。这是您在 步骤 8 中设置的 api 密码

第18步. 点击 FINISH

2. 连接 Grove 模块并发送数据
现在我们将 Grove 模块连接到 Seeed Studio XIAO ESP32C3,以便我们可以使用 Home Assistant 显示传感器数据或控制设备!
开发知识
XIAO 扩展板
为了在 Seeed Studio XIAO ESP32C3 上使用 Grove 模块,我们将使用 Seeed Studio XIAO 扩展基板,并将 XIAO ESP32C3 安装到扩展板上。
之后,扩展板上的 Grove 接口即可用于连接 Grove 模块。以下是引脚定义。

引脚定义
当将 Grove 模块连接到 Seeed Studio XIAO 的 Grove Shield 上的 Grove 接口时,需要按照下图使用适当的内部引脚编号。

例如,如果您想将 Grove 模块连接到 D0 接口,则需要在 ESPHome 中将引脚定义为 GPIO2。
Grove 模块与 ESPHome 的兼容性列表
目前以下 Grove 模块已被 ESPHome 支持。点击 这里 查看详细信息。
3. Grove 连接与数据传输
现在我们将选择几个 Grove 模块,并解释如何将它们与 ESPHome 和 Home Assistant 连接。
Grove - 温湿度传感器 (DHT20)
此温湿度传感器提供预校准的数字输出。独特的电容传感器元件测量相对湿度,温度由负温度系数 (NTC) 热敏电阻测量。它具有出色的可靠性和长期稳定性。点击这里 购买。
设置配置
- 第1步. 将 Grove - DHT20 连接到 Seeed Studio XIAO 扩展基板上的一个 I2C 接口。

- 第2步. 在我们之前创建的 xiao-esp32c3.yaml 文件中修改配置文件,并通过 OTA 推送到 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
您可以在 DHT20 组件 中了解更多信息。这里我们添加了 I²C 总线组件,因为 DHT20 使用 I2C 协议进行通信。
在 Dashboard 上可视化
- 第1步. 在 Home Assistant 的概览页面,点击右上角的三个点并选择 Edit Dashboard。

- 第2步. 点击 + ADD CARD。

- 第3步. 选择 By ENTITY,输入 temperature 并勾选 Temperature 旁边的复选框。

- 第4步. 点击 ADD TO DASHBOARD。

- 第5步. 您还可以将传感器数据以仪表形式可视化。点击 Gauge,在 BY CARD 下选择。

现在您的 Home Assistant 仪表盘将如下图所示:

Grove - 光传感器 (LS06-S)
Grove - 光传感器 v1.2 是一个模拟模块,可以输出各种电信号并转换为不同的范围。它集成了 LS06-S 光敏电阻,一个高灵敏度和可靠的光电二极管,用于检测环境中的光强度。它是一个完美的 Arduino 光传感器模块,用于光测量、光检测和光控开关。
点击这里 购买。
设置配置
- 第1步. 将 Grove - 光传感器连接到 Seeed Studio XIAO 扩展基板上的一个模拟/数字接口。

- 第2步. 在我们之前创建的 xiao-esp32c3.yaml 文件中修改配置文件,并通过 OTA 推送到 XIAO ESP32C3。

如果一切正常,您将看到以下结果。

在 Dashboard 上可视化
- 步骤 1. 在 Home Assistant 的概览页面,点击右上角的三个点,然后点击 Edit Dashboard

- 步骤 2. 点击 + ADD CARD

- 步骤 3. 选择 By ENTITY,然后选择 Light Sensor

- 步骤 4. 选择 PICK DIFFERENT CARD

- 步骤 5. 选择 Gauge

- 步骤 6. 设置最小值和最大值

- 步骤 7. 然后您将在仪表板上看到光传感器的值。

✨ 贡献者项目
- 此项目由 Seeed Studio 贡献者项目 支持。
- 感谢 Zachary 的努力,你的工作将会被 展示。
技术支持与产品讨论
感谢您选择我们的产品!我们将为您提供不同的支持,以确保您使用我们的产品时体验顺畅。我们提供多个沟通渠道,以满足不同的偏好和需求。