【功能拓展】震感捕手 v1.1:给 K10 加一个 Web 遥测端

2026-11-154

主帖:震感捕手:用行空板 K10 给校园做一次“地震体检”

 

v1.0 解决“能不能在教室里做一次可重复的地震”,v1.1 解决“做实验时人得蹲在板子前面看屏幕”。

一、为什么要加这个

主帖那个版本,记录完得低头看 K10 的 2.8 寸屏,峰值、主频、时长一行行读。

学生分组实验时,四个人围着巴掌大一块板子,后面两个根本看不见。

于是想:把屏幕搬到手机上。

K10 自带 WiFi,那就让它当一个小服务器,手机连上同一个网络,浏览器直接开。

二、做成了什么样

手机端:

【功能拓展】震感捕手 v1.1:给 K10 加一个 Web 遥测端_image_1.webp
  • 顶部实时峰值(0.016 g 是静置噪声)
  • 中间三条波形(X 青 / Y 橙 / Z 紫)
  • 下面「记录一次」「重新校准」两个按钮
  • 底部显示当前实验编号、距离、第几次、采样率、基线

K10 端:

【功能拓展】震感捕手 v1.1:给 K10 加一个 Web 遥测端_image_2.webp

屏幕只留最必要的:状态、峰值、IP。

三、架构

        ┌──────────────┐    WiFi     ┌──────────────┐
        │  K10 (ESP32) │◄───────────►│  手机 / 电脑  │
        │  WebServer   │  HTTP/JSON  │  浏览器 / APK │
        └──────────────┘             └──────────────┘
              │
         200 Hz 采样、写 TF 卡

四个接口:

/api/now状态、峰值、基线
/api/wave最近 120 点三轴波形(g,已去基线)
/api/record远程触发一次记录
/api/last最近一次结果(峰值/主频/时长/轴向/文件)

四、关键取舍

1. HTTP 不能抢采样

主循环 200 Hz,每 20 ms 服务一次 HTTP。采样用绝对时间戳推进,HTTP 花掉的 1–2 ms 不会累积成漂移。

2. 记录时也不停服务

记录那 4 秒里每 50 ms 服务一次,/api/now 返回 RECORDING,手机端就知道要等。

五、怎么复刻

烧固件:Mind+ 代码模式,粘贴 02_代码/v0/main_web.cpp,板型行空板 K10

配网:首启开热点 K10-Seismo-Setup,手机连上,浏览器进 192.168.4.1 填 WiFi

装 App:02_代码/震感捕手_遥测版.apk

连:看 K10 屏幕第 5 行的 IP,App 里填进去

六、踩过的坑

配网后 App 灰屏

K10 从热点模式切到路由器模式,IP 从 192.168.4.1 变成路由器分配的地址,App 还记着旧地址。

解决:加 mDNS(seismo.local)+ 自动回退 + 失败提示页。

中文路径编译不了 APK

AGP 报 non-ASCII characters。解决:同步到 C:\tools\seismo_android 再编译。

七、下一步

  • WebSocket 替代轮询,延迟 200 ms → 20 ms
  • /api/export 直接下 CSV
  • 多台 K10 组网做“校园震感地图”

完整源码与 APK:遥测版_源码与APK.zip

创作许可协议

本项目采用 CC BY(署名) 进行许可。

评论(0)
- 没有更多了 -