Skip to main content

将 XIAO ESP32C3 应用 Home Assistant 实现屋内无摄像头监控

本文将指导您在自己的Home Assistant环境中安装ESPHome服务。通过使用XIAO ESP32C3的WiFi功能,您将能够以非常平滑的方式连接您的XIAO与Home Assistant作为您的家庭终端的一部分。

此外,我们将结合目前最流行的24GHz毫米波人体静态存在模块Lite,构建一个具有人体存在检测的Home Assistant。

开始

tip

截至2023年7月31日,之前导致雷达完全死亡的问题现在已经修复,所以请更新这个教程物种的库文件和配置器以正常工作。

如果您想跟随本教程完成所有内容,则需要准备以下内容。

XIAO ESP32C324GHz毫米波人体静态检测
存在感模块 Lite

该项目的最终目标是在Home Assistant中部署24GHz毫米波人体静态存在模块Lite。

我们为24GHz毫米波人体静态存在模块Lite编写了完整的配置文件和库,以方便您在此项目中快速部署传感器到Home Assistant。

本教程的内容大致包括以下步骤。

  1. 选择您的HomeAssistant环境
  2. [在HomeAssistant中安装和配置]ESPHome(#install-and-configure-esphome-in-home-assistant)
  3. 配置XIAO ESP32C3和ESPHome连接
  4. 配置家庭辅助面板

当然,如果你对XIAO ESP32C3如何在Home Assistant中使用Grove感兴趣,可以直接阅读本章。

本教程的内容大致包括以下步骤。

选择您的Home Assistant环境

在这个例程中,我们不会详细说明如何安装Home Assistant环境,我们将假设您已经有一个可用的Home Assistant设备。

如果你想学习如何安装Home Assistant,那么你可以参考官方教程。我们强烈建议您使用x86设备安装Home Assistant,因为这是使用Supervised安装Home Assistant最用户友好的方式。

根据上表,安装Home Assistant OSHome Assistant Supervised是最合适的,这将为你省去很多麻烦。如果您在Docker上使用OpenWRT运行Home Assistant(例如使用LinkStar H68K),请不要担心,我们还将为您提供如何做到这一点的详细参考。

我们也写了如何安装Home Assistant的一些Seeed工作室的产品,请参阅他们。

在Home Assistant中安装ESPHome

第一步.安装ESPHome

  • 场景1:在Home Assistant OS下安装ESPHome(带有插件商店)

如果你安装了Home Assistant操作系统,它有一个插件商店,这使得安装ESPHome容易得多。

在插件商店中,你可以搜索并安装ESPHome。

  • 场景2:ESPHome安装在OpenWRT Docker/Docker下的Home Assistant下(没有插件存储)

由于我们正在安装家庭助手容器,我们不能简单地通过插件商店下载ESPHome服务,因此需要妥协。 我们需要下载ESPHome图像。

esphome / esphome:latest

在创建容器的页面上,我们需要做一些简单的设置。

  • 容器名称:容器名称

  • Docker镜像:选择刚下载的esphome镜像

  • 网络:选择主机模式

  • 环境变量(-e):环境变量

一旦您填写了以上内容,保存并申请。您将看到容器已经创建。你还需要启动它。

为了达到在Home Assistant中下载ESPHome的效果,我们需要修改Home Assistant下的配置文件。

到 Home Assistant处理器.

我们去Home Assistant的终点站

在终端输入以下命令。

vi configuration.yaml

将以下内容添加到configuration.yaml的末尾。

# Example configuration.yaml entry
panel_iframe:
esphome:
title: "ESPHome"
url: "http://192.168.100.1:6052"
icon: mdi:chip

在Home Assistant容器shell中输入 exit 退出docker容器。完成后,我们重新启动Home Assistant容器。

创建一个新的浏览器页面,输入地址http://homeassistant:8123/ ,并输入您的Home Assistant帐户,您将看到ESPHome出现在左侧的工具栏中。

配置XIAO ESP32C3与ESPHome连接

步骤 2.硬件准备

我们教程的目标是能够在Home Assistant仪表板中查看24GHz毫米波人体静态存在模块Lite的数据信息。

通过主板连接设备和计算机。接线图如下表所示。

XIAO ESP32C324GHz毫米波人体静态检测
存在感模块 Lite
5V-->5V
GND-->GND
D2-->RX
D3-->TX

步骤 3:将 XIAO ESP32C3 和 Home Assistant 保持在同一局域网中

我相信您的 Home Assistant 已经完成了联网工作,比如通过网线连接您的设备。接下来,您只需要启用一个本地网络(例如 WiFi),以便 XIAO ESP32C3 也能连接到该网络。

下面我将以 LinkStar H68K 为例,目标是让 XIAO 连接到 LinkStar H68K 的热点。

在 OpenWRT 的 Network 标签页中,选择 Wireless --> ADD

Device Configuration 中的 Transmit Power 设置为 auto

对于 Interface Configuration 的设置,请按照以下说明填写。

  • 一般设置
    • 模式:根据 LinkStar 访问互联网的方式选择。如果是通过有线连接,则选择 Client,如果是连接到 WiFi,则选择 Access Point
    • ESSID: 输入您的 WiFi 名称,请尽量避免使用空格或特殊字符。
    • 网络: 勾选 lan.
  • 无线安全
    • 加密:WPA2-PSK
    • 密钥:输入您想设置的 WiFi 密码。

填写完以上信息后,点击右下角的 Save and Apply 并等待片刻,LinkStar 会启动一个热点。

当没有设备连接到这个热点时,热点会显示为没有信号。

一切就绪后,让我们返回到 Home Assistant 页面。

点击 NEW DEVICE。然后点击 Continue

在弹出的新窗口中,请输入您希望设置的应用名称,以及在 LinkStar 中设置的热点名称和密码(或者您自己的 WiFi)。确保 XIAO ESP32C3 和 Home Assistant 在 同一局域网 下。

然后点击 Next

在设备类型中,选择 ESP32-C3

然后点击 Next

Click on the Encryption key and save it in a secure location, we will use this key in a later step.

然后点击 SKIP

步骤 4:修改 XIAO ESP32C3 配置文件(yaml)

接下来,我们点击刚刚创建的设备标签,在左下角找到 EDIT 按钮。

请注意,我们需要修改这个 yaml 文件。我们将要修改的内容分为两部分,对应于下图中的 两个部分。

  • 部分,除了您已经配置的设备名称外,请不要更改其他内容,其他配置请参考以下代码。
# part 1:
substitutions:
name: "xiao-esp32c3"
friendly_name: "XIAO ESP32C3"

esphome:
name: "${name}"
friendly_name: "${friendly_name}"
name_add_mac_suffix: true
project:
name: "seeedstudio.mmwave_kit"
version: "2.0"
platformio_options:
board_build.flash_mode: dio
board_build.mcu: esp32c3

external_components:
- source: github://limengdu/mmwave-kit-external-components@main
refresh: 0s

esp32:
board: esp32-c3-devkitm-1
variant: esp32c3
framework:
type: esp-idf

# Enable logging
logger:
hardware_uart: USB_SERIAL_JTAG
level: DEBUG
  • 部分,复制以下代码并粘贴到 captive_portal: 后面。
Click here to preview the full code
# 设置蓝牙 LE(仅适用于 ESP32),允许用户
# 向设备提供 Wi-Fi 凭据。
esp32_improv:
authorizer: none

# 通过串行客户端设置 improv 进行 Wi-Fi 配置。
# 如果您的设备有 USB 端口,方便用户在首次使用时添加凭据。
# improv_serial: # 注释掉,直到 improv 与 usb-jtag 在 idf 上兼容

uart:
id: uart_bus
baud_rate: 115200
rx_pin: 4
tx_pin: 5
parity: NONE
stop_bits: 1

seeed_mr24hpc1:
id: my_seeed_mr24hpc1

text_sensor:
- platform: seeed_mr24hpc1
heart_beat:
name: "心跳"
product_model:
name: "产品型号"
product_id:
name: "产品 ID"
hardware_model:
name: "硬件型号"
hardware_version:
name: "硬件版本"
keep_away:
name: "主动报告接近"
motion_status:
name: "运动信息"
custom_mode_end:
name: "自定义模式状态"

binary_sensor:
- platform: seeed_mr24hpc1
someone_exist:
name: "存在信息"

sensor:
- platform: seeed_mr24hpc1
custom_presence_of_detection:
name: "静态距离"
movement_signs:
name: "人体运动参数"
custom_motion_distance:
name: "运动距离"
custom_spatial_static_value:
name: "存在能量"
custom_spatial_motion_value:
name: "运动能量"
custom_motion_speed:
name: "运动速度"
custom_mode_num:
name: "当前自定义模式"

switch:
- platform: seeed_mr24hpc1
underly_open_function:
name: "底层开启功能信息输出开关"

button:
- platform: seeed_mr24hpc1
reset:
name: "模块重置"
custom_set_end:
name: "自定义模式设置结束"

select:
- platform: seeed_mr24hpc1
scene_mode:
name: "场景模式"
unman_time:
name: "进入无人状态的时间(标准功能)"
existence_boundary:
name: "存在边界"
motion_boundary:
name: "运动边界"

number:
- platform: seeed_mr24hpc1
sensitivity:
name: "灵敏度"
custom_mode:
name: "自定义模式"
existence_threshold:
name: "存在能量阈值"
motion_threshold:
name: "运动能量阈值"
motion_trigger:
name: "运动触发时间"
motion_to_rest:
name: "运动到静止时间"
custom_unman_time:
name: "进入无人状态时间(底层开启功能)"

然后,请点击右上角的 Save 按钮。

第五步:上传固件到 XIAO ESP32C3

  • 方法一:直接编译并上传

如果您使用的是 x86 设备并且能够看到 XIAO 出现在设备端口中,那么您可以直接编译并将程序上传到 XIAO。

将 XIAO 连接到您的设备。

点击设备栏右下角的三个点,选择 安装

点击 插入到运行 ESPHome 仪表盘的计算机

选择连接的端口。

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

如果在连接 XIAO 到设备后无法找到端口,您可以尝试使用第二种方法。

  • 方法二:使用主机上传已编译的固件

像 LinkStar H68K 这样的软路由不支持识别外部 MCU 设备,我们需要先下载已编译的固件,然后通过另一台 PC 上传固件。

点击右上角的 安装 按钮。然后选择最后一个项 手动下载

选择 现代格式

然后,它将花费较长时间进行下载和编译,请耐心等待。准备好后,固件将自动下载到您的计算机。

要将固件上传到 XIAO ESP32C3,有几种选择,我们展示了两种方法:

确保已安装正确的驱动程序。以下是 ESP 设备常用芯片的驱动程序。

  1. CP2102 驱动程序: Windows & Mac

  2. CH342, CH343, CH9102 驱动程序: Windowns, Mac

  3. CH340, CH341 驱动程序: Windowns, Mac

在 Chrome 或 Edge 浏览器中打开 ESPhome Web 工具

点击 连接

在弹出的窗口中选择 XIAO ESP32 的串口。

点击 安装,然后选择从上述步骤下载的 .bin 文件。

如果在安装驱动程序并更换浏览器后仍然无法使用方法一上传固件,您可以尝试使用方法二。请参考官方教程,了解具体的安装方法和操作说明。

tip

如果您希望查看 XIAO ESP32C3 的日志消息,您也可以通过该软件的 View Logs 按钮来查看。

上传完成后,您可以断开 XIAO ESP32C3 与 PC 的连接(除非您需要查看日志),然后单独为 XIAO 提供电源。

如果一切顺利,XIAO ESP32C3 将搜索并连接到您为其设置的 Wi-Fi。

就像我一样,我使用 LinkStar H68K 的网络。您可以在网络选项中找到它,并看到 LinkStar H68K 分配给它的 IP 地址。

通常,此时在 Home Assistant 中,设备的状态也会从离线变为在线。

配置 Home Assistant 面板

第六步:连接 XIAO ESP32C3

如果您的局域网中没有太多 Home Assistant 设备,Home Assistant 可以自动搜索并将您的 ESP 设备添加到设备标签中。您可以在 设置 中的 设备与服务 标签页中看到此设备。

如果它没有自动搜索,您也可以通过 IP 地址连接到 XIAO ESP32C3。

点击 添加集成 并搜索 esphome

然后输入 XIAO ESP32C3 的 IP 地址,端口号为 6053,然后点击 提交

如果输入的 IP 地址和端口号正确,您将看到提示输入加密密钥,这个密钥是我们在 第4步 中保存的。

然后点击 提交

此时,设备添加的步骤已经成功完成。

第七步:24GHz mmWave 模块 Lite 功能概述

为了帮助您快速了解该套件的完整功能和如何使用这些功能,您需要仔细阅读这一部分。如果您想要更详细的信息,我们建议您花时间阅读 产品用户手册.

关于仪表板的配置和参数的详细信息,我们在 ESPHome 文档中整理了详细的介绍,请点击链接阅读完整的文档和详细信息。

第八步:配置 Home Assistant 面板

如果您觉得默认的卡片展示数据非常枯燥且不友好,Home Assistant 提供了多种现成的仪表板供您选择。

您可以创建一个适合您个人偏好的仪表板。

例如,将信息输出的控制选项变成一个漂亮的开关。

将人体运动的速度转换成可视化的仪表板展示。

这就是我设计的内容,看起来像是一个智能家居控制中心。

到目前为止,我们已经成功完成了教程的内容。

使用 XIAO ESP32C3 连接 Grove 到 Home Assistant

当然,XIAO ESP32C3 不仅仅支持将 24GHz mmWave 人体静态存在模块 Lite 集成到 Home Assistant,您可以在本文件中找到更多适用于您自己的教程。

让您的创意发挥出来吧!

故障排除

常见问题 1:在使用 ESPhome Web 工具上传固件时出现以下错误,我该如何修复?

回答: 如果上传时出现此提示,断开 XIAO ESP32C3 与 PC 的连接。然后,在按住 BOOT 按钮的同时,将板卡连接到 PC,接着释放 BOOT 按钮,进入引导加载程序模式。此时,只需重新连接并再次上传固件即可。

常见问题 2:按照 esphome flasher 的教程,我在 Linux 下无法安装 esphome flasher?

回答:在执行以下命令时,您需要选择适合您的系统版本,否则会出现错误。例如,如果我的计算机是 Ubuntu 22.04,那么应该执行如下命令。

sudo apt install python3

pip3 install -U \
-f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04/ \
wxPython

pip3 install esphomeflasher

常见问题 3:我填写了正确的 WiFi 和密码,为什么看不到 XIAO ESP32C3 的 IP 地址?

回答: 当遇到此问题时,请检查 XIAO ESP32C3 的天线是否连接到位。如果天线已连接,请确保 XIAO 与 LinkStar 的距离不超过 3 米(除非您已更换了更强大的天线)。如果仍然无法看到 XIAO,可以使用 esphome flasher 软件查看 XIAO 的日志信息,并通过日志检查 XIAO 的连接状态。您可以重新插拔 XIAO 尝试重新搜索 WiFi 并连接。

当您使用 Jlink 刷写固件并出现此错误时,可能是以下情况之一。

  1. 您的传感器完全无法正常工作,无法接收到任何消息。
  2. 您正在尝试使用无效或不正确的固件。
caution

如果您的雷达最初是正常工作的,请再次检查您使用的是正确的固件!不同的雷达和传感器型号使用不同的固件!通过 UART 升级固件与通过 Jlink 升级固件的方式不同!请停止执行以下步骤。

我已经确认我的产品在异常情况下显示此错误消息

如果您的雷达完全无法工作,那么出现此错误消息可能是正常的。

因为雷达的异常操作已经触发了读写保护机制,通常情况下不允许用户再对产品进行刷写程序,所以我们需要解锁雷达的读写保护机制。

由于解锁读写保护存在较高风险,我们不会在此公开解锁方法,而是将该方法放在 此处的ZIP 文件,供需要的用户使用。一旦异常的雷达被解保护,固件就可以重新更新,以恢复正常工作。

技术支持与产品讨论

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

Loading Comments...