将 XIAO ESP32C3 应用 Home Assistant 实现屋内环境监测
本wiki将逐步介绍如何连接Seeed Studio XIAO ESP32C3与运行在Home Assistant上的ESPHome,并在连接Grove模块到XIAO ESP32C3后发送传感器数据/控制设备。我在这里应用了各种端口 包括数字、模拟、IIC、 SPI和UART. 现在让我们开始吧!
什么是ESPHome和家庭助理?
ESPHome 是一个工具,旨在使您的ESP板的管理尽可能简单。它读取一个YAML配置文件并创建自定义固件,并安装在你的ESP设备上。在ESPHome配置中添加的设备或传感器将自动显示在Home Assistant的UI中。ESPHome可以帮助您连接并发送数据到家庭助理设备。
硬件准备
我使用XIAO ESP32C3作为控制板,这里使用reRouter作为硬件,以及多个Grove传感器。
Seeed Studio XIAO ESP32C3 | Seeed Studio 扩展板 | 家庭助理设备 |
---|---|---|
Grove 传感器
软件准备
安装家庭助理
确保你已经有家庭助理启动和运行。这里有多个wiki介绍如何将家庭助理flash到产品中。我使用的是由树莓派CM4驱动的reRouter,所以我可以直接使用官方版本将操作系统flash到reRouter。
在家庭助理上安装ESPHome
ESPHome是一个家庭助理附加组件 可以简单地通过附加组件商店安装。
- 步骤 1. 单击 INSTALL
- 步骤 2. 启用所有选项,然后单击 开始
如果 ESPHome 加载成功,您将看到以下窗口
开始
一旦所有的软件和硬件都准备好了,我们就可以开始了。
1. 添加Seeed Studio XIAO ESP32C3到ESPHome
- 步骤 1. 点击 + NEW DEVICE
- 步骤 2. 点击 CONTINUE
- 步骤 3. 输入设备的 名称 并输入WiFi凭证 如 网络名称 and 密码。然后单击 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:
ota:
wifi:
ssid: "WiFi_SSID"
password: "Your 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. 点击插入运行ESPHome Dashboard的计算机
- 步骤 11. 选择连接的端口。它很可能是
/dev/ttyACM1 because /dev/ttyACM0
连接到reRouter CM4 1432
最好使用 2.4GHz Wi-Fi
现在它将下载所有必要的板包并将ESPHome固件flash到XIAO ESP32C3中。如果闪烁成功,您将看到以下输出。如果您看到一些错误,请尝试重新启动您的XIAO ESP32C3。或通过按住BOOT BUTTON进入引导加载程序模式并连接XIAO ESP32C3。
- 步骤 12. 以上窗口显示的是所连接单板的实时日志。点击 STOP关闭它
- 步骤 13. 如果单板状态显示为 ONLINE ,则表示单板WiFi连接成功
- 步骤 14. 转到Settings并选择Devices & Services
- 步骤 15. 您将看到 ESPHome 作为已发现的集成。单击 CONFIGURE
- 步骤 16. 点击 SUBMIT
- 步骤 17. 输入您的密码。这是您可以在 STEP 8 中找到的 api 密码
- 步骤 18. 点击 FINISH
2. 连接Grove模块并发送数据
现在我们将Grove模块连接到Seeed Studio XIAO ESP32C3,这样我们就可以显示传感器数据或使用家庭助理控制设备!
开发知识
XIAO 扩展板
为了将Grove模块与Seeed Studio XIAO ESP32C3一起使用,我们将使用Seeed Studio扩展基地用于XIAO并将XIAO ESP32C3连接在其上。
之后,可以使用板上的Grove连接器连接Grove模块。这里是引脚定义。
引脚定义
在将Grove模块连接到Seeed Studio XIAO的Grove Shield上的Grove连接器时,您需要按照下表使用适当的内部引脚编号。
例如,如果要将Grove模块连接到D0端口,则需要将ESPHome上的引脚定义为2
Grove兼容性列表与ESPHome
目前ESPHome支持以下Grove模块
点击这里查看
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 协议进行通信。
在仪表盘上可视化
- 步骤 1: 在 Home Assistant 的概览页面,点击右上角的三个点,选择Edit Dashboard。
- 步骤 2: 点击 + ADD CARD
- 步骤 3: 选择 By ENTITY, 输入 temperature 然后勾选 Temperature旁边的 check box 。
步骤 4: 点击 ADD TO DASHBOARD
Step 5. 你还可以将传感器数据可视化为仪表。 点击 BY CARD 下面的 Gauge 。
现在你的 Home Assistant 仪表盘将如下所示:
Grove - 光传感器 (LS06-S)
Grove - 光传感器 v1.2 是一个模拟模块,可以输出各种电信号,并可以转换为不同的范围。它集成了一个 LS06-S 光敏电阻,一个高灵敏度且可靠的光二极管,用于检测环境光强度。它是一个完美的 Arduino 光传感器模块,适用于光照测量、光照检测和光控开关。
点击这里购买 for the purchase.
设置配置
- 步骤 1: 将 Grove - 光传感器连接到 Seeed Studio XIAO 扩展底板的其中一个模拟/数字连接器。
- 步骤 2: 在之前创建的 xiao-esp32c3.yaml 文件中进行修改,并通过 OTA 将其推送到 XIAO ESP32C3。
如果一切顺利,你将看到以下结果。
在仪表盘上可视化
- 步骤 1: 在 Home Assistant 的概览页面,点击右上角的三个点,选择 Edit Dashboard
- 步骤 2: 点击 + ADD CARD
- 步骤 3: 选择 By ENTITY, 选择 Light Sensor
- 步骤 4: 选择 PICK DIFFERENT CARD
- 步骤 5: 选择 Gauge
- 步骤 6: 设置最小值和最大值。
- 步骤 7: 然后,你将看到光传感器的值出现在你的仪表盘上。
✨ 贡献者项目
- 该项目由 Seeed Studio 贡献者项目支持。
- 感谢 Zachary的努力 。你的工作将被 展示出来。
技术支持与产品讨论
感谢选择我们的产品!我们在这里为你提供不同的支持,确保你的产品体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。