XIAO ESP32C3 通过 ESPHome 连接 Home Assistant(支持所有端口)

本教程将逐步介绍如何将 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 Expansion Board | Home Assistant 设备 |
---|---|---|
![]() | ![]() | ![]() |
Grove 传感器
软件准备
安装 Home Assistant
确保您已经安装并运行了 Home Assistant。这里有多个介绍如何将 Home Assistant 刷入产品的wiki。我使用的是由树莓派 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. 为设备输入一个名称,并输入WiFi凭据,如网络名称和密码。然后点击 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 扩展板
为了将 Grove 模块与 Seeed Studio XIAO ESP32C3 一起使用,我们将使用 Seeed Studio Expansion Base for XIAO 并将 XIAO ESP32C3 连接到其上。
之后,开发板上的 Grove 连接器可用于连接 Grove 模块。以下是引脚定义。

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

例如,如果您想将 Grove 模块连接到 D0 端口,您需要在 ESPHome 上将引脚定义为 GPIO2
Grove 与 ESPHome 兼容性列表
目前 ESPHome 支持以下 Grove 模块。查看 这里
3. Grove 连接和数据传输
现在我们将选择几个 Grove 模块并解释它们如何与 ESPHome 和 Home Assistant 连接。
Grove - 温湿度传感器 (DHT20)
这款温湿度传感器提供预校准的数字输出。独特的电容式传感器元件测量相对湿度,温度由负温度系数 (NTC) 热敏电阻测量。它具有出色的可靠性和长期稳定性。点击这里 购买。
设置配置
- 步骤 1. 将 Grove - DHT20 连接到 Seeed Studio Expansion Base for 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
# 启用日志记录
logger:
hardware_uart: UART0
api:
password: "F4MQG/rBhNmqP8Nud+AJ+5CYu7LuIhIFTOcRwOm5Nw4="
ota:
password: "999afa1f8a07e85959a9f89f8f6aebb2"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# 如果wifi连接失败,启用回退热点(强制门户)
ap:
ssid: "Xiao-Esp32C3 Fallback Hotspot"
password: "YtpCwOqLoYlp"
captive_portal:
# 0x28 是 DHT20 的 I2C 地址
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 协议进行通信。
在仪表板上可视化
- 步骤 1. 在 Home Assistant 的概览页面上,点击 3 个点,然后点击 Edit Dashboard

- 步骤 2. 点击 + ADD CARD

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

- 步骤 4. 点击 ADD TO DASHBOARD

- 步骤 5. 您也可以将传感器数据可视化为仪表。在 BY CARD 下点击 Gauge

现在您的 Home Assistant 仪表板将如下所示

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

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

如果一切顺利,您将看到这个结果。

在仪表板上可视化
- 步骤 1. 在 Home Assistant 的概览页面上,点击 3 个点,然后点击 Edit Dashboard

- 步骤 2. 点击 + ADD CARD

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

- 步骤 4. 选择 PICK DIFFERENT CARD

- 步骤 5. 选择 Gauge

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

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

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