跳到主要内容

ESPectre 在 NM-CYD-C5 上的实现

本方案将 ESPectre 的 WiFi CSI 人体运动检测能力移植到 NM-CYD-C5,并利用板载显示屏与触摸屏提供实时曲线、门限调节和一键校准。实现基于 ESPHome 配置完成,无需修改 ESPectre C++ 组件。

ESPectre 在 NM-CYD-C5 上运行

硬件映射​

功能引脚实现说明
SPISCK=GPIO6、MISO=GPIO2、MOSI=GPIO7LCD、触摸屏与 SD 卡共享总线
LCDCS=GPIO23、DC=GPIO242.8 英寸 ST7789,320×240,使用 ESPHome mipi_spi
背光GPIO25高电平点亮,由显示组件的 enable_pin 控制
触摸屏CS=GPIO1XPT2046 电阻触摸屏,轮询模式
SD 卡CS=GPIO10当前固件不使用
RGB LEDGPIO27当前固件不使用,可扩展为运动状态指示灯
主控ESP32-C5-WROOM-116 MB Flash、8 MB PSRAM

触摸校准参考范围为 X:185–3700、Y:250–3800。电阻触摸屏存在个体差异,实际按钮位置偏移时,应根据设备读数微调 ESPHome 配置中的 touchscreen.calibration。

可视化数据​

ESPectre 组件现有实体已覆盖屏幕交互需要,无需增加新的组件接口:

数据或状态ESPHome 实体屏幕用途
Movement 分数movement_sensor绘制实时运动曲线
Motion 状态motion_sensor显示 IDLE 或 MOTION
Movement Thresholdthreshold_number绘制门限线并接收触摸调节
校准状态calibrate_switch触发重新校准并显示校准状态
WiFi 信号wifi_signal显示 RSSI

Movement 默认约每秒发布一次。屏幕保存 272 个采样点,因此可展示约 4.5 分钟的滚动历史。纵轴按历史峰值和当前门限自动缩放,曲线超过门限的部分显示为红色,其余部分显示为青色。

屏幕布局​

┌──────────────────────────────────────────────┐
│ 192.168.1.100 MOTION / IDLE / CAL MVS │
├──────────────────────────────────────────────┤
│ ╭─╮ Movement 曲线(青色) │
│ ╱ ╲╭─╮ 超门限部分(红色) │
│ - - - - - - - - Threshold(黄色虚线) │
├──────────────────────────────────────────────┤
│ 1.83 mv 1.10 thr -55 dBm │
├────────────┬──────────────────┬──────────────┤
│ THR -0.5 │ CALIBRATE │ THR +0.5 │
└────────────┴──────────────────┴──────────────┘

顶部状态栏显示 IP 地址、检测状态与算法;中部为滚动曲线;底部三个触摸热区分别用于降低门限、重新校准和提高门限。

触摸交互​

按钮动作行为
THR -0.5调用 number.set将手动门限降低 0.5,最低为 0
CALIBRATE打开 calibrate_switch重新选择子载波并计算自适应门限
THR +0.5调用 number.set将手动门限提高 0.5,最高为 10

手动调节立即生效,但只在当前会话中保留;设备重启后会根据 YAML 配置或校准结果重新计算门限。校准通常约需 10 秒,其间应保持设备和周围环境静止。

刷新与共享 SPI 约束​

LCD 与 XPT2046 使用同一条 SPI 总线。显示刷新必须在 ESPHome 主循环中统一执行,不能直接从 Movement、Motion、Threshold 或 Calibrate 的实体回调中调用显示组件更新。

推荐将显示组件设置为 update_interval: never,再由 1 秒 interval 触发重绘。实体回调只更新内存中的状态,主循环负责读取状态并刷新屏幕。这样可以避免显示写入与触摸轮询同时占用总线,导致 spi_master: Cannot acquire bus when a polling transaction is in progress 断言重启。

后续扩展​

  • 将增益锁状态暴露为诊断实体并显示在状态栏;
  • 暴露校准采样数量,显示真实校准进度;
  • 增加已选 CSI 子载波的诊断视图;
  • 使用板载 RGB LED 指示运动状态;
  • 长时间无运动时关闭背光,触摸后唤醒。

下一步请参阅 ESPectre × NM-CYD-C5 使用指南。