Skip to main content

使用 ESPHome 将 Grove 模块连接到 Home Assistant

简介​

本教程将逐步讲解如何将 Seeed Studio XIAO ESP32C3 与运行在 Home Assistant 上的 ESPHome 连接,并在将 Grove 模块连接到 XIAO ESP32C3 后发送传感器数据或控制设备。让我们开始吧!

什么是 ESPHome?​

ESPHome 是一个工具,旨在使管理 ESP 板尽可能简单。它读取 YAML 配置文件并创建自定义固件,然后将其安装到 ESP 设备上。在 ESPHome 配置中添加的设备或传感器会自动显示在 Home Assistant 的用户界面中。

安装 Home Assistant​

确保您已经安装并运行了 Home Assistant。您可以按照 此教程 获取在 ODYSSEY-X86 SBC 上安装 Home Assistant 的分步指南。

在 Home Assistant 上安装 ESPHome​

ESPHome 可作为 Home Assistant 插件 使用,可以通过插件商店轻松安装。

  • 步骤 1. 要快速在 Home Assistant 上设置 ESPHome,点击以下按钮
  • 步骤 2. 当看到以下弹窗时,点击 OPEN LINK
  • 步骤 3. 点击 INSTALL
  • 步骤 4. 启用所有选项并点击 START
  • 步骤 5. 点击 OPEN WEB UI 或从侧边栏选择 ESPHOME

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

将 Seeed Studio XIAO ESP32C3 添加到 ESPHome​

  • 步骤 1. 点击 + NEW DEVICE
  • 步骤 2. 点击 CONTINUE
  • 步骤 3. 为设备输入一个 名称,并输入 WiFi 凭据,例如 网络名称 和 密码。然后点击 NEXT
  • 步骤 4. 选择 ESP32-C3 并点击
  • 步骤 5. 点击 SKIP,因为我们将手动配置此板
  • 步骤 6. 点击新创建板下的 EDIT
  • 步骤 7. 这将打开一个 YAML 文件,该文件将用于设置所有板配置。编辑 esp32 下的内容如下
esp32:
board: seeed_xiao_esp32c3
variant: esp32c3
framework:
type: arduino
version: 2.0.5
platform_version: 5.2.0

注意: 这里我们使用的是 Arduino core for ESP32 和 PlatformIO 的 ESP32 支持 的最新版本。

  • 步骤 8. 点击 SAVE,然后点击 INSTALL
  • 步骤 9. 将 USB Type-C 数据线的一端连接到 Seeed Studio XIAO ESP32C3,另一端连接到 ODYSSEY-X86 的一个 USB 端口
  • 步骤 10. 点击 Plug into the computer running ESPHome Dashboard
  • 步骤 11. 选择已连接的端口。它可能是 /dev/ttyACM1,因为 /dev/ttyACM0 已连接到 ODYSSEY-X86 上的板载 ATSAMD21 协处理器

现在它将下载所有必要的板包并将 ESPHome 固件刷入 XIAO ESP32C3。如果刷写成功,您将看到以下输出

  • 步骤 12. 上述窗口显示了来自连接板的实时日志。点击 STOP 关闭它
  • 步骤 12. 如果您看到板的状态为 ONLINE,则表示板已成功连接到 WiFi

现在,您可以将 XIAO ESP32C3 从 X86 板上断开连接,仅通过 USB 电缆供电。这是因为从现在开始,如果您想将固件刷写到 XIAO ESP32C3,可以直接通过 OTA(无线方式)完成,而无需通过 USB 电缆连接到 X86 板。

  • 步骤 13. 点击 三个点,然后点击 安装
  • 步骤 14. 点击 三个点,然后点击 安装
  • 步骤 15. 选择 无线方式,它将通过无线方式将更改推送到开发板
  • 步骤 16. 转到 设置,选择 设备与服务
  • 步骤 17. 您将看到 ESPHome 作为发现的集成。点击 配置
  • 步骤 18. 点击 提交

此时,它会要求您输入配置中为 xiao-esp32c3 设置的加密密钥。

  • 步骤 19. 返回 xiao-esp32c3.yaml,复制加密密钥,粘贴到上述对话框中,然后点击 提交
  • 步骤 20. 点击 完成

使用 ESPHome 和 Home Assistant 的 Grove 模块​

现在我们将连接 Grove 模块到 Seeed Studio XIAO ESP32C3,以便通过 Home Assistant 显示传感器数据或控制设备!

将 Grove 模块连接到 XIAO ESP32C3​

为了使用 Grove 模块与 Seeed Studio XIAO ESP32C3,我们将使用 Grove Shield for Seeed Studio XIAO 并将 XIAO ESP32C3 安装到其上。

之后,板上的 Grove 接口可以用于连接 Grove 模块。

引脚定义​

当将 Grove 模块连接到 Grove Shield for Seeed Studio XIAO 的 Grove 接口时,您需要遵循下表以使用适当的内部引脚编号。

内部引脚编号引脚映射
2D0
3D1
4D2
5D3
6D4
7D5
21D6
20D7
8D8
9D9
10D10
6SDA
7SCL

例如,如果您想将一个 Grove 模块连接到 D0 端口,您需要在 ESPHome 中将引脚定义为 2。

Grove 与 ESPHome 的兼容性列表​

目前以下 Grove 模块受 ESPHome 支持:

Grove类别ESPHome 组件
Grove - 激光 PM2.5 灰尘传感器气体Grove - 激光 PM2.5 传感器 (HM3301)
Grove - SEN55 一体化环境传感器, NOx, PM, VOC, RH, 温度气体Sen5x 系列环境传感器
Grove - SEN54 一体化环境传感器, PM, VOC, RH, 温度气体Sen5x 系列环境传感器
Grove - VOC 和 eCO2 气体传感器 - SGP30气体SGP30 二氧化碳和挥发性有机化合物传感器
Grove - VOC 气体传感器 (SGP40)气体SGP40 挥发性有机化合物传感器和 SGP41 VOC 和 NOx 传感器
Grove - 甲醛传感器 (SFA30) - HCHO 传感器空气质量SFA30 甲醛传感器
Grove - 4 位数码管显示器显示TM1637 七段显示器
Grove - 舵机执行器舵机组件
Grove - I2C 电机驱动器 (TB6612FNG)执行器Grove TB6612FNG 电机驱动
Grove - DS1307 RTC (实时时钟) for Arduino时间时间组件
Grove - 高精度 RTC (DS1307)时间时间组件
Grove - WS2813 RGB LED 灯带防水 - 30 LED/m - 1m灯光NeoPixelBus 灯光
Grove - WS2813 RGB LED 灯带防水 - 60 LED/m - 1m灯光NeoPixelBus 灯光
Grove - RGB LED 环 (20 - WS2813 Mini)灯光NeoPixelBus 灯光
Grove - RGB LED 棒 (10 - WS2813 Mini)灯光NeoPixelBus 灯光
Grove - RGB LED 环 (24-WS2813 Mini)灯光NeoPixelBus 灯光
Grove - RGB LED (WS2813 Mini)灯光NeoPixelBus 灯光
Grove - RGB LED 棒 (20-WS2813 Mini)灯光NeoPixelBus 灯光
Grove - RGB LED 环 (16-WS2813 Mini)灯光NeoPixelBus 灯光
Grove - RGB LED 棒 (15-WS2813 Mini)灯光NeoPixelBus 灯光
Grove - 终极 RGB LED 环灯光NeoPixelBus 灯光

现在我们将从上表中选择 6 个 Grove 模块,并解释如何将它们与 ESPHome 和 Home Assistant 连接。

Grove - 温湿度传感器 (AHT20)​

设置配置​

  • 步骤 2. 在我们之前创建的 xiao-esp32c3.yaml 文件中,添加以下内容到文件末尾,并通过 OTA 推送到 XIAO ESP32C3。
i2c:
sda: 6
scl: 7

sensor:
- platform: aht10
variant: AHT20
temperature:
name: "Temperature"
humidity:
name: "Humidity"

您可以在 这里 了解更多关于 AHT10 组件 的信息。它支持使用 AHT10、AHT20 和 AHT21 传感器。在这里我们添加了 I²C 总线 组件,因为 AHT20 使用 I2C 协议进行通信。

在仪表板上可视化​

  • 步骤 1. 在 Home Assistant 的 概览 页面,点击 3 个点,然后点击 编辑仪表板。
  • 步骤 2. 点击 + 添加卡片。
  • 步骤 3. 选择 按实体,输入 temperature,然后勾选 Temperature。
  • 步骤 4. 对 Humidity 重复相同操作。
  • 步骤 5. 点击 继续。
  • 步骤 6. 点击 添加到仪表板。

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

  • 步骤 7. 您还可以将传感器数据以仪表形式可视化。点击 按卡片 下的 仪表。
  • 步骤 8. 从下拉菜单中选择 Temperature。
  • 步骤 9. 点击 保存。
  • 步骤 10. 对 Humidity 重复相同操作。

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

对于本 Wiki 中的 Grove - VOC 和 eCO2 气体传感器 (SGP30) 和 Grove - CO2 & 温湿度传感器 (SCD41),您可以按照类似的步骤在仪表板上可视化传感器数据。

Grove - VOC 和 eCO2 气体传感器 (SGP30)​

设置配置​

  • 步骤 2. 在我们之前创建的 xiao-esp32c3.yaml 文件中,添加以下内容到文件末尾,并通过 OTA 推送到 XIAO ESP32C3。
i2c:
sda: 6
scl: 7

sensor:
- platform: sgp30
eco2:
name: "eCO2"
accuracy_decimals: 1
tvoc:
name: "TVOC"
accuracy_decimals: 1

您可以在 这里 了解更多关于 SGP30 组件 的信息。

Grove - CO2 & 温湿度传感器 (SCD41)​

设置配置​

  • 步骤 2. 在我们之前创建的 xiao-esp32c3.yaml 文件中,添加以下内容到文件末尾,并通过 OTA 推送到 XIAO ESP32C3。
i2c:
sda: 6
scl: 7

sensor:
- platform: scd4x
co2:
name: "CO2"
temperature:
name: "Temperature"
humidity:
name: "Humidity"

您可以在 这里 了解更多关于 SGP4x 组件 的信息。

Grove - 继电器​

设置配置​

  • 步骤 1. 将 Grove - 继电器 连接到 Seeed Studio XIAO 的 Grove Shield 上的一个 数字端口。这里我们选择 D0 端口。
  • 步骤 2. 在我们之前创建的 xiao-esp32c3.yaml 文件中,添加以下内容到文件末尾,并通过 OTA 推送到 XIAO ESP32C3。
switch:
- platform: gpio
pin: 2
name: "Relay"

您可以在 这里 了解更多关于 继电器组件 的信息。

在仪表板上可视化​

  • 步骤 1. 在我们之前提到的 + 添加卡片 下,选择 按实体,输入 relay,选择它并点击 继续。
  • 步骤 2. 点击 添加到仪表板。

现在您可以使用切换开关打开或关闭继电器。

Grove - mini PIR运动传感器​

设置配置​

  • 步骤 2. 在我们之前创建的 xiao-esp32c3.yaml 文件中,在文件末尾添加以下内容,并通过 OTA 推送到 XIAO ESP32C3。
binary_sensor:
- platform: gpio
pin: 2
name: "PIR Sensor"
device_class: motion

您可以在 这里 了解更多关于 PIR组件 的信息。

在仪表板上可视化​

  • 步骤 1. 在我们之前提到的 + 添加卡片 下,选择 按实体,输入 pir,选择它并点击 继续。
  • 步骤 2. 点击 添加到仪表板。

现在如果检测到运动,它将显示为 已检测。

技术支持与产品讨论​

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

Loading Comments...