不装摄像头,Wi-Fi 也能“看见“人影?ESP-CSI 实战指南:用 ESP32 把房间变成无感雷达

不装摄像头,Wi-Fi 也能“看见“人影?ESP-CSI 实战指南:用 ESP32 把房间变成无感雷达 不装摄像头Wi-Fi 也能看见人影ESP-CSI 实战指南用 ESP32 把房间变成无感雷达【免费下载链接】esp-csiApplications based on Wi-Fi CSI (Channel state information), such as indoor positioning, human detection项目地址: https://gitcode.com/GitHub_Trending/es/esp-csi本文带零基础读者玩转乐鑫开源项目 ESP-CSI不依赖摄像头只用 ESP32 开发板和普通路由器就能读取 Wi-Fi 信道状态信息CSI实现人体检测、室内定位等无感感知。全文涵盖硬件清单、十分钟跑通步骤、避坑要点与三条进阶路线新手也能照着做。一个真实痛点不装摄像头怎么知道房间里有没有人深夜父母独自在家你想知道他们是否安全客厅长时间没人你想让空调自动关闭——但出于隐私你不想在卧室、浴室装摄像头。有没有一种看不见的感知方式答案是用你家里现成的 Wi-Fi 信号。Wi-Fi 不只是用来上网的它还能像雷达一样感知环境。而这一切的入口就是乐鑫开源的 ESP-CSI 项目——一块几十元的 ESP32 开发板就能读取普通 Wi-Fi 信号中的信道状态信息CSI完成人体检测与室内定位。先看效果Wi-Fi 真的能读懂一个房间先别急着搭环境直接看成果。下图是 ESP-CSI 项目中 esp-radar 示例的房间状态界面绿色曲线代表有人的特征信号紫色虚线是判定阈值一旦信号冲过阈值系统立刻给出无人、有人静止、有人运动三种状态的实时判断。为什么 Wi-Fi 信号能灵敏到这种程度关键要分清两个概念RSSI 与 CSI。RSSI 只告诉你信号声音有多大像音量表而 CSI信道状态信息记录信号在传播过程中每个频率点的幅度、相位和延迟像一张精细的心电图。人走动会改变信号反射路径CSI 能精准捕捉这些涟漪。一句话概括RSSI 是结论CSI 是过程过程里藏着更多细节。看懂一行数据就懂了 CSI 的本质在接收端串口里你会看到类似这样的一行输出CSI_DATA,0,94:d9:b3:80:8c:81,-30,11,1,6,1,0,1,0,1,0,0,-93,0,13,2,2751923,0,67,0,128,1,[67,48,4,0,...]它由两部分组成逗号分隔的是元数据MAC 地址、RSSI、速率、信道、时间戳等最后引号里的数组才是 CSI 本体——每个子载波的复数信道值先存虚部、再存实部。你可以把子载波想象成像素点像素越多信道这张照片越清晰。这些子载波来自 OFDM 技术中的长训练序列LTF接收端用已知的训练符号反推出信道状态这正是下图中信道估计环节在做的事。十分钟跑通第一套系统两块板子看实时波形最小可用的系统只需要两块 ESP32 开发板推荐 ESP32-C5 或 ESP32-C6射频性能最佳、两台电脑端口、几根 USB 线。硬件上有三条硬性建议优先外置 IPEX 天线PCB 天线有方向性、易受主板干扰两块板距离大于 1 米电脑装好ESP-IDF v5.0.0 及以上版本。第一步把代码拉到本地git clone https://gitcode.com/GitHub_Trending/es/esp-csi第二步把发送端固件csi_send烧进板 A。这里idf.py是 ESP-IDF 的构建工具set-target指定芯片型号flash负责编译烧录-b是波特率cd examples/get-started/csi_send idf.py set-target esp32c3 idf.py flash -b 921600 -p /dev/ttyUSB0 monitor第三步把接收端csi_recv烧进板 B串口号换成/dev/ttyUSB1。第四步运行配套的 Python 解析脚本实时子载波波形立刻出现在屏幕上——运行前记得关闭 idf.py monitor避免串口被占用cd examples/get-started/tools pip install -r requirements.txt python csi_data_read_parse.py -p /dev/ttyUSB1避坑提醒如果日志反复出现 ESP-NOW 发送错误通常是当前 Wi-Fi 信道太拥挤换个信道或换到网络更安静的地方如果 Python 工具报 element number is not equal 或数据错乱多半是绘图占用 CPU 导致串口读取不及时把波特率调高即可解决。从入门到进阶三种发送端怎么选上面用的是板间互发其实获取 CSI 有三大流派从省事到高精度依次排开路由器当发送端ESP32 向路由器发 Ping从回复包里提取 CSI。只需一块板加一个路由器最省事但受路由器位置和协议限制。设备间直发两块 ESP32 直接通信不依赖路由器位置、不受邻居设备干扰适合多设备协同实验。专用广播设备一台设备不停切换信道广播多台 ESP32 同时接收精度与可靠性最高适合集群定位代价是多一个发送设备。选型建议家用测试选路由器方案多设备实验选板间直发追求精度直接上广播方案。好消息是三种方案的代码在examples/get-started下都已备好csi_recv_router、csi_recv、csi_send。进阶玩法一ESP-RADAR 人体检测与数据采集拿到原始波形只是第一步把波形变成结论才是价值所在。examples/esp-radar/console_test是一个完整的 CSI 测试平台配套图形工具esp_csi_tool.py分为左右两块左侧看原始子载波数据Raw data右侧跑雷达模型Radar model有人/无人、运动/静止的判断都在右侧完成。上手要先做阈值校准设置延迟时间留出人离开房间的空档和校准时长点 start让设备在无人状态下采样自动算出判定阈值。校准越久误触概率越低。校准之后这个示例还支持动作采集给 move、sit 等动作分别录一段 CSI数据自动存入tools/data目录正好作为机器学习、神经网络的训练集。想做自己检测算法的朋友从这里起步最合适。进阶玩法二从云端上报到毫米级相位感知想让感知结果真正用起来项目还准备了更远的路connect_rainmaker把 CSI 数据上传到乐鑫 RainMaker 云平台手机上就能远程查看房间状态适合快速搭建产品原型。wifi_sensing_demo基于 esp_wifi_sensing 组件带 LED 状态反馈和浏览器端 Web Serial 调参页面调试体验顺滑。esp-crab两片 ESP32-C5 共用一个晶振实现射频相位同步自发自收模式可感知毫米级信号扰动单发双收模式覆盖大范围空间——这是面向科研与前沿应用的高精度方案。避坑清单五个让效果翻倍的细节把最容易翻车的点浓缩成一张清单照着做就能少走弯路天线优先外置 IPEX 天线别用 PCB 天线方向性差异很大。环境测试时尽量清场他人走动会让数据串味。距离双板间距保持 1 米以上感知效果更稳定。信道避开拥挤频段选择相对空闲的 Wi-Fi 信道。校准在稳定环境中做基线校准校准时长越长误报越少。从哪里开始给你一条清晰的学习路线想弄懂原理项目docs/zh_CN目录下备好了六篇中文文档信号处理基础、OFDM 介绍、无线信道基础、无线定位介绍、CSI 与 RSSI 对比、CSI 应用案例。按顺序读一遍半小时就能把子载波、信道估计、相位这些词串成体系。动手路径同样清晰先跑通 get-started 拿到实时波形再玩 esp-radar 做人体检测最后按需挑战云上报或 esp-crab。无论你是物联网开发者还是刚入门的爱好者这套从数据采集到应用落地的完整链路都能让你少走很多弯路。下一步克隆仓库、插上两块开发板开始你的第一次无线感知吧。【免费下载链接】esp-csiApplications based on Wi-Fi CSI (Channel state information), such as indoor positioning, human detection项目地址: https://gitcode.com/GitHub_Trending/es/esp-csi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考