跳转至

说明

Online Sensing — 长期连续采集,实时传输

以较低的采样率(默认 1 Hz)不间断采集加速度数据,通过 MQTT 或串口持续上传。适合桥梁、建筑等的长期结构健康监测。

算法直觉

在线采集 vs 离线采集

在线模式的设计哲学是持续的、低数据率的"心跳"监测——像心电图一样一直开着,但不存原始数据。

Online Offline
采样率 1~20 Hz 100~4000 Hz
时长 无限(一直跑) 有限(设定秒数)
数据去向 MQTT / 串口 内存 / SD 卡
用途 发现"出问题了" 详细分析"出了什么问题"

为什么在线采样率低?

SHM 中大多数结构损伤(如螺栓松动、裂缝扩展)是缓慢发展的。对于桥梁的长期监测,1 Hz 就足够捕捉每天的温湿度变化趋势。低采样率意味着:

  • 省电:传感器和无线模块不需要一直工作
  • 省流量:MQTT 消息更少,云成本更低
  • 省内存:不需要大量缓冲区

数据流

ADXL355 → 定时器中断 → 读取 x,y,z,temp → JSON 格式打包 → 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);

MQTT 输出格式

每条数据发布为 JSON:

{"x":0.012,"y":-0.008,"z":1.002,"temp":25.3,"ts":1234567890}


注意事项

采样率上限

虽然配置最大可以到 1000 Hz,但实际受 MQTT 和串口带宽限制。高采样率连续流式传输应考虑用 RT Processing + 本地处理。