不用摄像头,Wi‑Fi 怎么知道你动了:ESP32 实作指南

不用摄像头,Wi‑Fi 怎么知道你动了:ESP32 实作指南

英文版:Wi-Fi That Knows You Moved: A Practical ESP32 Field Guide

房间里没有摄像头、麦克风,也没有墙上的红外探头,一块插着 USB 的小板子却能察觉有人走过。它不是看见了脸,也不知道那个人是谁;它只是发现,原本相对稳定的 Wi‑Fi 反射图样发生了变化。

这篇指南把听起来像“黑科技”的概念缩成一个诚实、可复现的周末项目:ESP32 在本地输出一个运动信号,Home Assistant 负责规则与权限,Claude Code 或 Codex 帮你生成和检查配置。它不能识别人,不能证明房间为空,也不能替代安防、医疗或紧急系统。

把 Wi‑Fi 想成铺满房间的绊线

无线电波从路由器到接收端,并不只走一条直线。它会被墙面、家具、金属物体和人体反射,许多强弱不同、到达时间不同的路径最后叠在一起,这就是多径。人一移动,几条反射路径同时变长、变短、增强或衰减,原本平静的“绊线”便开始晃动。

现代 Wi‑Fi 会把一个信道分成许多窄小的 OFDM 子载波。信道状态信息,也就是 CSI,描述每个子载波在传播途中发生的幅度和相位变化。可以把它想成一排音高相近的琴弦:人穿过房间时,不是所有琴弦一起变响,而是不同琴弦以不同方式受到扰动。系统分析的是这组变化,不是在拍照。

网上吹的、实验室做到的、家里能做的,是三回事

网上的说法:Wi‑Fi 可以隔墙看见姿态,甚至识别人。这里并非全是虚构,例如论文 DensePose From WiFi 的确把无线电测量映射到人体姿态表示。但受控实验系统不等于给普通路由器装个软件,它往往依赖特定天线、训练数据、已知房间和算力。

实验室与大规模部署:工程系统能推断更多信息,可是可靠性来自硬件控制、数据、校准,以及对宠物、多人干扰、芯片差异和边缘算力的长期处理。一份 2025 年的大规模部署报告在其工程系统中得到 92.61% 的运动准确率,并把非人类造成的误报从 63.1% 降到 8.4%。这些数字属于那套系统,不能当作每个家庭的保证。

普通人家里:一块受支持的 ESP32 最适合回答一个小得多的问题:这个感知区域的无线环境,是否出现了类似运动的变化?宠物、风扇、窗帘、开门、扫地机器人、家具移动和 Wi‑Fi 环境变化都可能误触发;人一直坐着不动,也可能漏报。

实用组合:ESPectre、Home Assistant 与 Agent

开源项目 ESPectre 能把受支持的 ESP32 变成本地 Wi‑Fi 运动传感器。本期调研时,仓库仍在活跃维护,第一方开源代码采用 GPL‑3.0,并提供浏览器刷写、ESPHome、MQTT、Matter、本地 HTTP 和 SDK 等路径。家庭实作建议走更稳妥的 ESPHome 或 MQTT,把结果发布成 Home Assistant 实体。

安全的数据链路应当分层:人体移动改变多径;ESPectre 在板子上计算运动状态和分数;Home Assistant 做去抖、延迟清除,并结合时间、灯光或你手动设置的离家模式;Home Assistant 官方 MCP Server只暴露必要的实体和动作;终端 Agent 负责协助编写、检查和验证配置。

最低物料清单

感知节点:受 ESPectre 支持、并通过当地无线认证的 ESP32‑S3 成品板。本期在 2026 年 9 月 27 日核实时,Seeed XIAO ESP32S3 官方页面标价 7.49 美元且有货;计入地区差异但不含运费,可按 8–15 美元预算。供电:已有的 USB 数据线与安全 USB 电源,通常 0–8 美元。中枢:已有的 Home Assistant 主机、旧迷你电脑、树莓派或 NAS。实际规划时,一块板子对应一个感知区域。

一定要核对完整型号,而不是只看“ESP32”几个字。日本选带技適/MIC 的型号,美国核对 FCC 授权,欧盟核对 CE 符合性。Espressif 有公开的认证文件目录,Seeed 也公开了 XIAO ESP32S3 的 FCC 文件。随便一个市场商品页写着芯片家族,不代表那块成品板已经通过本地认证。

如果真正需求是发现长时间坐着或躺着不动的人,可以再加一个通过当地认证的 LD2410 系列毫米波存在传感器。成品通常约 10–20 美元,但价格和认证都要在购买时重查。ESPHome 能读取移动、静止和综合目标状态。它可以补足运动传感器,却仍然不是医疗或生命安全设备。

先校准,再谈自动化

先选一个由你控制、所有受影响的人都已知情同意的房间。把 USB 供电的板子放在架子上,避开持续转动的风扇或窗帘,并确认网络符合项目当前的 2.4 GHz 要求。按 ESPectre 最新的浏览器刷写或 ESPHome 文档操作;没有确认板子型号与串口设备之前,不让 Agent 执行刷写。

接下来用七天做现实测试:走过房间、坐着不动、开门、开风扇、让宠物经过、挪动椅子、重启无线接入点。只记录校准需要的事件和分数。可以先用十秒去抖、两分钟清除延迟作为起点,再根据房间调整。在看懂误报与漏报之前,不要连接任何重要动作。

可以直接交给 Claude Code 或 Codex 的提示词

把下面内容贴给终端 Agent;涉及真实设备的确认仍由你亲自完成:

你正在配置一套重视隐私的 Wi‑Fi 运动传感器。设备和网络归我所有,房间里的所有人都已知情同意。
1. 检查我的操作系统,确认 Git、Chromium 系浏览器以及 Home Assistant/ESPHome 的访问条件,但不要打印凭据。
2. 只使用 https://github.com/francescopace/espectre 的官方资料和 Home Assistant 官方 MCP Server 文档。
3. 请我用 USB 连接通过当地认证的 ESP32 板;在我确认准确的串口设备和板子型号以前,不要刷写。
4. 按 ESPectre 当前的浏览器刷写或 ESPHome 路径指导我,CSI 只在本地处理,不启用原始 CSI 收集或云端上传。
5. 创建名为 wifi_motion_lab 的 Home Assistant 运动实体,加入 10 秒去抖和 2 分钟清除延迟;校准日志不得记录姓名、音频、图像或精确生活规律。
6. 建立三个默认禁用的自动化:天黑后开书桌灯、运动活跃时抑制非紧急通知、运动与我另设的离家模式同时成立时才提醒。绝不解锁门、关闭警报或推断身份。
7. 通过 Home Assistant 官方 MCP Server 只暴露必需实体;优先 OAuth,不开放未认证端口。
8. 验证配置,展示准确 diff,并给我一份七天校准清单。任何外网暴露或破坏性改动之前必须停下询问。

Agent 可以检查依赖、准备 YAML、按官方路径指导刷写、收窄 MCP 权限、验证语法并建立校准页面。它不能替你判断某块板是否符合当地认证,不能替家庭成员同意,也不能隔着文字确认 USB 设备与实际放置效果。门锁解锁、关闭警报和不受限 shell 都不应进入它的工具箱。

五种生活场景,五条边界

独居:只有运动与明确的离家模式同时成立时才提醒;没有运动不等于家里没人。老人或小孩:只用于照明和舒适性,安全需求使用专业认证设备。宠物:延长去抖,至少记录一周,并在安防提醒前组合另一种传感器。租房不能打孔:板子放架上,用可移除线夹,不碰市电。出差:传感器和 Home Assistant 保持本地运行,通过受支持的安全远程路径访问,绝不把未认证的 HTTP、MQTT 或 MCP 端口暴露到公网。

没有摄像头,不等于没有隐私风险

带时间戳的运动记录仍可能暴露作息。除非在做边界清楚的本地实验,否则关闭原始 CSI 收集;日志能少记就少记,能短留就短留,访问权限要保护,并向所有受影响的人解释系统做什么。不能在未经同意时用它监视室友、租客、伴侣、酒店客人、邻居或公共空间。

真正实用的黑科技,不是一台“认识所有人”的隐形摄像机,而是一根便宜、本地、能力有限的无线绊线:它给 Agent 一个有用的上下文,同时把边界留给你理解和检验。文中仓库截图仅用于识别当前公开项目;仓库状态、价格、库存与文档都会变化,下单或刷写前请重新核对上面的一手来源。


Watch more first-principles field guides on Wiki4What, or read the essays at blog.wiki4what.com.