尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ESP32 CSI 快速上手指南:用两块开发板跑通 Wi-Fi 感知链路
ESP32 CSI 快速上手指南用两块开发板跑通 Wi-Fi 感知链路【免费下载链接】esp-csiApplications based on Wi-Fi CSI (Channel state information), such as indoor positioning, human detection项目地址: https://gitcode.com/GitHub_Trending/es/esp-csi把人体挡在 Wi-Fi 信号前面电脑屏幕上的子载波波形会立刻起伏——这就是 esp-csiESP32 CSI做的事情用两块普通 ESP32 开发板不装特殊网卡、不补内核补丁从 Wi-Fi 信号里提取出 CSI信道状态信息可以理解为无线信道的子载波级指纹用来做存在检测、动作监测和室内定位。仓库自带可直接烧录的示例工程跑通第一条采集链路大约只需要 15 分钟。和传统 RSSI 做法的差异你大概习惯了用 RSSI信号强度判断网络好坏但 RSSI 只是一个标量信号强或弱。而 Wi-Fi 信号实际由几十路子载波承载每路子载波的幅度和相位都会随环境变化这些变化的集合就是 CSI。它对人体的敏感度远高于 RSSI——有人走动、甚至呼吸波形都会动。维度常规做法esp-csi 的做法信号信息一个 RSSI 标量子载波级实部/虚部附噪声基底、RF、天线、时间戳硬件成本特定网卡加内核补丁或专用感知硬件两块现货 ESP32 开发板部署方式重刷定制固件现有 ESP32 设备可通过 OTA 开启设备端算力数据必须传到 PC 离线分析双核 240MHz可在板端跑机器学习CSI 支持全系列 ESP32ESP32 / S2 / C3 / S3 / C5 / C6 / C61。新选型推荐 C5双频和 C6仓库 README 称它们是射频性能最好的在产芯片。快速上手15 分钟跑通第一套采集链路材料清单两块 ESP32 开发板一块发送、一块接收、两条 USB 数据线、一台电脑再备一对 IPEX 外接天线。项目基于 ESP-IDF v5.0.2 环境建议 v5.0.0 以上装好后克隆仓库# 克隆 esp-csi 仓库ESP-IDF 未安装请先按官方文档安装 git clone https://gitcode.com/GitHub_Trending/es/esp-csi # 进入 IDF 环境变量 . $IDF_PATH/export.sh 板载 PCB 天线方向性差、易受主板干扰效果明显不如外接 IPEX 天线。这是材料阶段唯一值得升级的地方。两块板分别烧录发送端和接收端固件# 烧录发送端固件 cd esp-csi/examples/get-started/csi_send idf.py set-target esp32c3 idf.py flash -b 921600 -p /dev/ttyUSB0 monitor # 烧录接收端固件 cd esp-csi/examples/get-started/csi_recv idf.py set-target esp32c3 idf.py flash -b 921600 -p /dev/ttyUSB1然后在 PC 上启动可视化工具。它位于 examples/get-started/tools/读取接收端串口把子载波波形画成实时曲线# 安装 Python 依赖 cd esp-csi/examples/get-started/tools pip install -r requirements.txt # 打开波形界面指向接收端串口 python csi_data_read_parse.py -p /dev/ttyUSB1⚠️ 运行工具前先关掉idf.py monitor否则两个程序会争抢同一个串口。接收端串口输出的是 CSV 格式一行一个包末尾的data数组按虚部、实部交替存放每路子载波的值三种 CSI 获取模式的取舍仓库 README 里列了三种获取方式区别在于谁发这个包1. 路由器模式csi_recv_router。ESP32 向路由器发 Ping 包在 Ping 应答里截取 CSI。什么时候用环境里只有一块 ESP32旁边恰好有路由器最省事。局限依赖路由器的位置和支持的 Wi-Fi 协议。2. 设备间模式csi_send csi_recv即上面的示例。两块 ESP32 通过 ESP-NOW 直连发包不经过路由器。什么时候用有两块以上 ESP32 时的默认选择不受路由器下其他设备干扰。3. 广播模式。专用发送设备连续切换信道发广播环境里多块 ESP32 同时截获 CSI。什么时候用需要高精度、多设备集群定位的场景。精度最高但要多加一台发送设备成本更高。三种模式对应的工程都在 examples/get-started/ 里数据格式说明见 examples/get-started/README.md。从波形到存在检测esp-radar console_test 示例只想看见波形get-started 就够了。想判断房间里有没有人、人是否在动用 examples/esp-radar/console_test/。固件烧在接收端PC 端的esp_csi_tool.py负责绘图和阈值标定发送端沿用前面烧好的csi_send也可以改用路由器模式# 烧录 console_test 接收端固件 cd esp-csi/examples/esp-radar/console_test idf.py set-target esp32s3 idf.py flash -b 921600 -p /dev/ttyUSB1 # 安装依赖并启动工具用 UART 口不是 USB Serial/JTAG cd esp-csi/examples/esp-radar/console_test/tools pip install -r requirements.txt python esp_csi_tool.py -p /dev/ttyUSB1工具界面分四个核心区域CSI 子载波波形窗、RSSI 对比窗、房间状态窗、人员移动统计窗。左侧显示原始子载波数据右侧是雷达模型分析结果右上角可以切换显示。关键一步是阈值标定。原理是让设备先记录无人基线之后偏离基线的幅度就是判断依据。操作是设置delay留出你离开房间的时间和duration标定持续时长各 10 秒左右期间确保无人。标定完成后工具自动生成两个阈值wander判断在/不在和jitter判断动/静也可以手动改数值后点config生效。波形的物理含义想深入的话仓库文档有信号处理基础、OFDM 介绍和CSI 应用中文版在 docs/zh_CN/。板端路线wifi_sensing_demo 与浏览器面板console_test 是 PC 侧分析。想让 ESP32 自己下判断看 examples/esp-radar/wifi_sensing_demo/。它把 CSI 分析封装进esp_wifi_sensing组件在板端跑一个状态机FSM可以理解为动/静两态的自动切换逻辑用 ACTIVE / INACTIVE 事件驱动 LED检测到动作灯亮静止灯灭。示例同时监控三个通道连接的 AP 加两个固定对端/* 创建感知状态机监控 3 个通道AP 两个固定对端 */ esp_wifi_sensing_fsm_config_t cfg DEFAULT_ESP_WIFI_SENSING_FSM_CONFIG(); cfg.max_channel_num 3; esp_wifi_sensing_fsm_create(cfg, s_hms);这个示例还配了浏览器面板固件在串口输出换行分隔的 JSON用 Chromium 系浏览器打开 tools/web_serial_monitor.html走 Web Serial 连接就能在图表里看 jitter、状态和阈值还能用HMSCMD SET_CFG peer motion_sensitivityfloat这类命令实时调灵敏度。# 浏览器拦截 file:// 访问时用 Python 起个本地服务 cd esp-csi/examples/esp-radar/wifi_sensing_demo/tools python3 -m http.server # 然后打开 http://127.0.0.1:8000/web_serial_monitor.html串口报错速查三个高频坑坑 1ESP-NOW 报没有内存现象发送端串口出现W (...) csi_send: ESP_ERR_ESPNOW_NO_MEM ESP-NOW send error原因当前 Wi-Fi 信道拥堵ESP-NOW 发送缓冲区写满包发不出去解决换一个空闲信道或到网络环境更好的地方再试坑 2解析脚本报数据错误现象element number is not equal或data is not incomplete原因PyQT 绘图占用大量 CPUPC 来不及读串口缓冲数据串行错乱解决提高串口波特率坑 3波形几乎是一条直线现象人走过面前幅度变化都很小原因PCB 天线方向性强、易受主板干扰两台设备太近或测试时有其他人活动解决接 IPEX 外接天线设备间距拉到 1 米以上挑空房间测试 标定基线时房间必须是空的标定时间拉长一点误报率会明显下降。进阶方向跑通链路之后有四条路可以直接走数据采集console_test 可以按动作批量收集 CSI 并存盘打好标签就能自己训练分类模型流程示例里都写好了。云上报用 connect_rainmaker 把 CSI 数据传到 RainMaker 平台做远程监控。智能家居集成README 推荐了社区项目 ESPectre它基于 CSI 做动作检测并接入 Home Assistant可作参考实现。硬件升级需要更高精度时看 examples/esp-crab/那是双天线、主从架构的感知硬件平台。打开终端执行git clone https://gitcode.com/GitHub_Trending/es/esp-csi15 分钟后你的屏幕上就会出现第一组子载波波形。【免费下载链接】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),仅供参考
RELATED

相关推荐

python把pdf中所有页面导出为图片

python把pdf中所有页面导出为图片

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/23 6:26:50
Rime 输入法怎么挑:5 分钟看懂 awesome-rime 输入方案与配置列表

Rime 输入法怎么挑:5 分钟看懂 awesome-rime 输入方案与配置列表

Rime 输入法怎么挑:5 分钟看懂 awesome-rime 输入方案与配置列表 【免费下载链接】awesome-rime A curated list of Rime IME schemata and configs | Rime 輸入方案和配置列表 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-rime 拼音打字总是…

📅 2026/10/23 6:26:50
freehire 按用户 LLM 花费归因:`internal/ai/llmkey` 的密钥铸造、解析与回收机制

freehire 按用户 LLM 花费归因:`internal/ai/llmkey` 的密钥铸造、解析与回收机制

【免费下载链接】freehire freehire — the open-source search engine for job seekers 项目地址: https://gitcode.com/GitHub_Trending/fr/freehire 点击查看 免费下载 导读 freehire 的每一次模型调用最终都会落到某个 LLM 网关的凭证上。要让"谁花了多少…

📅 2026/10/23 6:26:50
MORE NEWS

更多资讯

📰

嵌入式驱动开发实战:从寄存器操作到DMA调试的完整经验总结

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

时序路径分析核心框架:从STA原理到违例修复实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

智能制造生产优化的5大落地难点:数据断层、多目标冲突与人机协同

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

采样间隔1秒一天86KB?GOT2000数据记录容量配置全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Loop 开源窗口管理工具:鼠标手势与快捷键提升 macOS 多窗口效率

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

如何降低AI检测率?让AI写作更有“人味儿”的实用技巧

“怎么降低AI检测率”这个话题,最近几个月在内容创作者圈子里几乎成了默认的刚需。无论是写自媒体文章、做短视频文案,还是提交一份项目总结报告,很多人发现:自己明明花了心思写东西,怎么一放进AI检测软件里就显示“疑…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬