在智能家居和环境感知领域,传统的运动检测往往依赖摄像头或红外传感器,这些方法虽有效,但存在隐私泄露和高功耗等问题。WiFi 通道状态信息(CSI)技术提供了一种创新解决方案:利用现有 WiFi 基础设施,通过分析信号的幅度和相位变化来检测运动。这种方法无需额外硬件侵入用户隐私,且功耗极低,特别适合低功耗物联网设备如 ESP32。ESPectre 项目正是这一技术的典型实现,它将 WiFi CSI 转化为可靠的运动检测系统,支持 Home Assistant 等智能平台集成,实现无缝的环境感知。
CSI 是 WiFi 通信中描述无线信道物理特性的多维数据,与简单的 RSSI(接收信号强度指示)不同,CSI 捕捉每个 OFDM 子载波的幅度和相位信息。这些数据反映了信号的多径传播、Doppler 移位和时变特性。当环境中发生运动时,人体或物体会干扰 WiFi 波的传播路径,导致多径反射变化,从而引起幅度波动和相位偏移。例如,一个人走动时,会改变信号的时空分布,产生可检测的 “湍流” 模式。ESPectre 项目采用数学方法而非机器学习,从 CSI 数据中提取 10 个关键特征,包括统计特征(如方差、偏度、峰度、熵和四分位距)、空间特征(如子载波间方差、相关性和梯度)以及时域特征(如相邻数据包间的均值和方差变化)。这些特征通过移动方差分割(MVS)算法实时处理,实现 IDLE 和 MOTION 两种状态的二元分类。证据显示,在 3-8 米距离内,这种方法能可靠检测通过墙体的运动,准确率依赖环境调优,但无需训练数据集即可开箱即用。
在实现层面,ESPectre 基于 ESP32-S3 开发板,利用 Espressif 的 CSI API 捕获原始数据。处理管道包括:首先采集 CSI 数据(幅度和相位),然后应用可选滤波器如 Butterworth 低通滤波(去除 >8Hz 高频噪声)、Daubechies db4 小波变换(去除低频持久噪声)、Hampel 滤波(异常值剔除)和 Savitzky-Golay 平滑(多项式滤波)。滤波仅应用于特征提取,以保留分割阶段的运动敏感性。分割算法计算子载波幅度的标准差作为湍流指标,使用自适应阈值(基于湍流信号的移动方差)判断状态切换。MOTION 状态下提取特征,IDLE 状态仅监控基线。整个过程在 ESP32-S3 上延迟 <50ms,支持 10-100 包 / 秒的捕获率。项目强调实时性和低开销,MQTT 发布使用 QoS 0 模式,仅在显著变化或 5 秒心跳时发送数据,带宽 <1 KB/s。
要落地部署这一系统,需要关注硬件、软件和参数优化。首先,硬件选择:ESP32-S3 DevKitC-1(16MB Flash、8MB PSRAM),配备外部天线(IPEX 接口)以提升接收质量,总成本约 10 欧元。路由器需支持 2.4GHz WiFi(标准家庭设备即可),无需修改配置。软件环境:安装 ESP-IDF v6.1 框架,使用 C 语言构建固件,通过 esptool.py 刷写。MQTT 代理可选 Home Assistant(内置 broker)或独立 Mosquitto,支持多传感器部署(如每个房间一个)。放置指南至关重要:传感器距路由器 3-8 米,高度 1-1.5 米,避免金属障碍或角落;监控区域内放置以最大化多径多样性。调优参数包括:segmentation_threshold(默认 1.0,范围 0.5-2.0,根据环境噪声调整,高值降低假阳性);filter_enable(布尔,启用滤波以提高特征质量);feature_extraction(布尔,仅 MOTION 时提取以节省 CPU);publish_interval(秒,1-5 秒平衡延迟和带宽)。校准步骤:静置 10 分钟建立基线,测试走动场景调整阈值,直至假警报 <5%。集成清单:1) 连接 MQTT(topic 如 home/espectre/room1);2) 在 Home Assistant 创建 MQTT 传感器实体,状态为 movement (0.0-1.0),属性包括特征值;3) 设置自动化,如运动触发灯光;4) 监控日志,优化功耗(典型 500mW,支持深度睡眠扩展)。回滚策略:若检测不准,禁用特征提取仅用分割,或缩短距离测试。
尽管优势明显,但风险与限制需注意。环境因素如墙材(混凝土减弱信号)和干扰(高 WiFi 流量)会降低灵敏度;系统仅检测通用运动,无法区分人 / 宠物或计数,需要 ML 扩展。隐私方面,CSI 数据匿名但可推断行为模式,使用前须获得同意,遵守 GDPR 等法规。功耗虽低,但连续运行需稳定电源;安全性上,MQTT 需加密以防数据泄露。未来,随着 IEEE 802.11bf 标准(2025 年发布),WiFi 感知将标准化,支持原生 CSI 提取,提升精度至 vital signs 检测(如呼吸)。ESPectre 的特征提取可作为 ML 数据集基础,结合 CNN/LSTM 实现活动识别或定位。
总之,ESPectre 展示了 WiFi CSI 在低功耗运动检测中的潜力,提供从原理到部署的完整路径。开发者可基于此扩展至多传感器融合或边缘 AI。
资料来源:
- GitHub 项目:https://github.com/francescopace/ESPectre
- Medium 文章:https://medium.com/@francesco.pace/how-i-turned-my-wi-fi-into-a-motion-sensor-61a631a9b4ec
- 参考论文:Wang et al. (2017), "Device-Free Crowd Counting Using WiFi Channel State Information", IEEE INFOCOM。