说明¶
Online Sensing — 长期连续采集,实时传输
以较低的采样率(默认 1 Hz)不间断采集加速度数据,通过 MQTT 或串口持续上传。适合桥梁、建筑等的长期结构健康监测。
算法直觉¶
在线采集 vs 离线采集¶
在线模式的设计哲学是持续的、低数据率的"心跳"监测——像心电图一样一直开着,但不存原始数据。
| Online | Offline | |
|---|---|---|
| 采样率 | 1~20 Hz | 100~4000 Hz |
| 时长 | 无限(一直跑) | 有限(设定秒数) |
| 数据去向 | MQTT / 串口 | 内存 / SD 卡 |
| 用途 | 发现"出问题了" | 详细分析"出了什么问题" |
为什么在线采样率低?¶
SHM 中大多数结构损伤(如螺栓松动、裂缝扩展)是缓慢发展的。对于桥梁的长期监测,1 Hz 就足够捕捉每天的温湿度变化趋势。低采样率意味着:
- 省电:传感器和无线模块不需要一直工作
- 省流量:MQTT 消息更少,云成本更低
- 省内存:不需要大量缓冲区
数据流¶
API 参考¶
// 配置结构体
typedef struct {
float sampling_frequency_hz; // 采样率 (Hz),默认 1.0
bool enable_mqtt; // 启用 MQTT 上传
bool enable_serial; // 启用串口输出
const char *mqtt_topic; // MQTT 主题(NULL 使用默认)
} online_sensing_config_t;
// 启动在线采集
esp_err_t online_sensing_start(const online_sensing_config_t *config);
// 停止在线采集
esp_err_t online_sensing_stop(void);
// 获取采集状态
bool online_sensing_is_running(void);
注意事项¶
采样率上限
虽然配置最大可以到 1000 Hz,但实际受 MQTT 和串口带宽限制。高采样率连续流式传输应考虑用 RT Processing + 本地处理。