传感器数据采集¶
TinyMeasurement — SHM 节点的数据采集管道
从 ADXL355 加速度计读数到 MQTT 远程传输,覆盖三种采集模式和三种实时处理架构。整个系统通过 MQTT 命令远程驱动。
架构速览¶
-
Online Sensing 在线采集
定时连续流式采样 (1~20 Hz)
MQTT / 串口实时传输
适合长期结构健康监测 -
Offline Sensing 离线采集
高频批量采样 (100~4000 Hz)
内存 / SD 卡存储
采集结束后 MQTT 报告
适合模态分析、锤击实验 -
RT Processing 实时处理
编译期选择三种架构:
环形缓冲区 / DMA 双缓冲 / 双核分工
实时阈值检测触发
适合在线损伤检测 -
Command Handler 命令控制
MQTT 远程命令 → 控制采集
SENSE,ONLINE/OFFLINE/RT
支持定时和延时触发
场景索引¶
-
长期结构健康监测
→ Online Sensing,低采样率 (1~20 Hz),MQTT 持续上传
-
锤击实验 / 模态测试
→ Offline Sensing,高采样率 (100~4000 Hz),SD 卡存储
-
实时冲击 / 损伤检测
→ RT Processing + 阈值触发,微秒级响应
-
远程控制采集任务
→ Command Handler,MQTT 发送命令从远端起停采集
快速开始¶
#include "tiny_measurement.h"
// === 在线采集(长期监测)===
online_sensing_config_t online_cfg = {
.sampling_frequency_hz = 20.0f,
.enable_mqtt = true,
.enable_serial = true,
};
online_sensing_start(&online_cfg); // 开始 20Hz 连续上传
// === 离线采集(模态测试)===
offline_sensing_config_t offline_cfg = {
.sampling_frequency_hz = 100.0f, // 100 Hz
.sampling_duration_sec = 30.0f, // 采集 30 秒
.enable_memory = true, // 存到内存
.enable_sd = true, // 也存到 SD 卡
.enable_mqtt_report = true, // 采集完发报告
};
offline_sensing_start(&offline_cfg);
// === 实时处理(冲击检测)===
rt_process_config_t rt_cfg = {
.sampling_frequency_hz = 100.0f,
.enable_accel_detection = true, // 启用阈值检测
};
rt_process_init(&rt_cfg);
rt_process_start();
三种采集模式对比¶
| Online | Offline | RT Processing | |
|---|---|---|---|
| 采样率 | 1~20 Hz | 100~4000 Hz | 20~1000 Hz |
| 持续时间 | 无限(不间断) | 有限(秒级) | 无限(循环采集) |
| 输出 | MQTT 流式 / 串口 | 内存 / SD / MQTT 报告 | 实时处理结果 |
| 典型场景 | 长期健康监测 | 模态分析试验 | 冲击/损伤在线检测 |
| 触发方式 | MQTT 命令 | MQTT 命令(支持延时) | MQTT 命令 + 阈值自触发 |