ESPectre: 基于Wi-Fi频谱分析(CSI)的运动检测系统
原标题:francescopace/espectre
Python★ 8,029 stars+112 今日
速览
该项目通过解析Wi-Fi频谱数据(CSI)来捕捉环境中的微小运动,无需佩戴任何设备即可实现精准的运动感知。它专为智能家居场景设计,可与Home Assistant无缝集成,提供隐私保护且低成本的安防或自动化触发方案。
AI 深度解读
这是什么
ESPectre 是一个基于 Wi-Fi 频谱分析(CSI, Channel State Information)的运动检测系统,由开发者 francescopace 在 GitHub 上开源(Python 为主,配合 ESPHome 固件)。该项目利用现有的 2.4GHz Wi-Fi 路由器信号,通过廉价的 ESP32 开发板“监听”环境中的无线电信号变化,从而实现对人员移动的感知。
其最大特色在于原生集成 Home Assistant,通过 ESPHome 实现自动发现与数据上报。项目近期引入了基于神经网络的实验性 ML 检测器,无需校准即可在设备端运行,进一步降低了使用门槛。
解决的问题
传统智能家居中的运动检测主要依赖 PIR(被动红外)传感器或摄像头,二者均存在明显痛点:
- 隐私泄露风险:摄像头和麦克风会持续录制音视频数据,引发严重的隐私担忧。
- 穿戴负担:针对老人跌倒或健康监测的方案往往需要佩戴手环或传感器,依从性差。
- 穿透力与盲区:PIR 传感器无法穿透墙壁,且对静止物体不敏感,存在检测死角。
- 配置复杂:传统 Wi-Fi 感知方案往往需要修改路由器底层配置或编写复杂的驱动程序。
ESPectre 通过利用环境中已存在的 Wi-Fi 信号进行非侵入式感知,解决了上述隐私、穿戴和穿透性问题,且无需对路由器进行任何修改。
核心功能
- 非接触式运动检测:利用 Wi-Fi 多径效应(Multipath Effect),当人体移动时,会扰动 Wi-Fi 信号在空间中的传播路径,ESPectre 通过分析 CSI 数据的变化来识别运动。
- 双模式检测引擎:
- 传统 MVS 模式:基于 NBVI(Normalized Band Variance Index)算法,自动选择 12 个最优子载波进行方差分析,无需手动校准,F1 分数可达 96% 以上。
- ML 神经网络模式:实验性功能,直接在 ESP32 设备端运行轻量级神经网络,无需启动时的 10 秒静默校准,适合对响应速度要求高的场景。
- Home Assistant 原生集成:
- 自动发现设备,生成二进制传感器(Binary Sensor)用于状态上报(空闲/运动)。
- 提供“移动评分”传感器(Movement Score),允许用户通过调整阈值来微调灵敏度。
- 支持边缘驱动的状态切换(Edge-driven IDLE ↔ MOTION),减少误报。
- 自适应信号处理:
- Gain Lock:锁定硬件增益,稳定测量基准。
- Hampel 滤波器:默认启用,用于去除信号中的湍流异常值。
- 低通滤波:可选启用,用于平滑噪声。
亮点 / 与同类相比
- 极致隐私保护:完全不采集图像、音频或个人身份信息,仅处理 Wi-Fi 射频信号的幅度与相位统计特征。
- 超低硬件成本:核心传感器仅需一个 ESP32 开发板(推荐 ESP32-S3 或 C6),成本约 10 欧元,远低于专用雷达传感器或摄像头。
- 零路由器配置:无需修改路由器固件或设置,传感器仅作为“听众”被动接收信号,兼容所有支持 2.4GHz Wi-Fi 的路由器,包括 Mesh 网络。
- 穿墙能力:2.4GHz Wi-Fi 信号可穿透石膏板等常见墙体,单个传感器可覆盖约 50 平方米区域,适合多房间部署。
- 极简上手体验:无需编程知识,仅需 YAML 配置文件。通过 ESPHome 界面或 App 即可烧录固件并配置 Wi-Fi,10-15 分钟即可完成部署。
适合谁用 / 上手
适合人群:
- Home Assistant 用户:希望在不增加摄像头隐私风险的前提下,实现全屋智能自动化(如人来灯亮、人走关空调)。
- 隐私敏感用户:对家中监控有顾虑,希望实现无感知的存在检测。
- 独居老人/儿童看护者:用于监测长时间无活动(可能跌倒)或夜间离床报警。
- 极客与开发者:对 Wi-Fi CSI 技术感兴趣,希望进行低成本智能家居实验。
上手指南:
- 硬件准备:购买 ESP32-S3 或 ESP32-C6 开发板(建议带外置天线接口),以及一个普通的 2.4GHz Wi-Fi 路由器。
- 软件环境:确保已部署 Home Assistant,并安装 ESPHome 集成。
- 配置烧录:
- 下载项目中的 YAML 配置示例。
- 根据
SETUP.md指南,在 ESPHome 中填入 Wi-Fi 信息。 - 烧录固件到 ESP32 设备。
- 部署与调优:
- 将传感器放置在距离路由器 3-8 米、高度 1-1.5 米的位置,避免金属遮挡。
- 若使用 MVS 模式,设备启动后需保持环境静止 10 秒以完成自动校准;若使用 ML 模式则跳过此步。
- 在 Home Assistant 中根据实际环境调整
segmentation_threshold阈值,以平衡灵敏度与误报率。
查看原文 →github.com
