跳转至

传感器数据采集

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
    支持定时和延时触发

    详情 →

  • WSN 时间同步 (FTSP)


    基于 ESP-NOW 的泛洪时间同步协议
    网关广播周期信标 + NTP 世界时间
    叶子节点通过线性回归校正时钟偏差
    RGB LED 同步可视化(跑马灯循环)
    微秒级精度 · 漂移补偿

    详情 →


场景索引

  • 长期结构健康监测

    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 命令 + 阈值自触发

依赖链

ADXL355 传感器 → tiny_measurement → MQTT / SD 卡 / 串口
                   tiny_ai (信号处理)

WSN 时间同步 (FTSP):
  网关: NTP (互联网) → tiny_toolbox/tiny_time → FTSP 信标 (ESP-NOW)
  叶子节点: FTSP 信标 → 线性回归 → 世界时间 @ µs 精度

代码结构

include/        tiny_measurement.h · tiny_measurement_config.h
online-sensing/     在线采集
offline-sensing/    离线采集
command/            MQTT 命令解析
real-time-process-arch/  实时处理架构(3 种)
wsn/                WSN 工具集
  time_sync/        FTSP 时间同步模块
    ftsp.h              统一入口头文件
    ftsp_config.h       编译期调参(信标间隔、表大小...)
    ftsp_types.h        信标数据包布局(16 B 基础 / 26 B 扩展)
    ftsp_gateway.h/.c   网关周期信标广播
    ftsp_leafnode.h/.c  叶子节点信标嗅探 + 线性回归
    ftsp_ntp.h/.c       NTP 同步记录 & 世界时间锚点
    ftsp_precision.h/.c 时钟漂移估计 & 补偿 (ppm)
    ftsp_sync_viz.h/.c  RGB LED 同步状态可视化
app/                应用示例