Skip to main content

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 ESP32C3Seeed Studio 扩展板Home Assistant 设备

Grove 传感器

软件准备​

安装 Home Assistant​

确保您已经安装并运行了 Home Assistant。这里有多个介绍如何将 Home Assistant 刷入产品的wiki。我使用的是由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. 为设备输入一个名称,并输入 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"
这里我们使用最新版本的 Arduino core for ESP32 和 ESP32 support for PlatformIO
  • 步骤 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
tip

最好使用 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

# 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 协议进行通信。

在仪表板上可视化​
  • 步骤 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. 然后您将在仪表板上看到光传感器的值。

✨ 贡献者项目​

技术支持与产品讨论​

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...