6.9 KiB
6.9 KiB
智能传感器数据采集与分析系统
概述
这是一套完整的高性能、可扩展的运动传感设备数据采集与分析系统,采用 UTS uni-app-x 技术栈开发,严格遵循 Android 最严格模式规范。系统支持多种生命体征数据的实时采集、存储、分析和可视化。
技术架构
前端技术栈
- 框架: UTS uni-app-x
- 语言: TypeScript (UTS)
- UI框架: uni-app-x 原生组件
- 数据请求: AkSupa 链式请求库
- 实时通信: Supabase Realtime
- 图表组件: ak-charts
后端技术栈
- 数据库: PostgreSQL + TimescaleDB
- 实时服务: Supabase
- AI分析: RPC 函数
- 数据存储: 时序数据库优化
功能模块
1. 主要页面结构
pages/sense/
├── nav.uvue # 导航入口页面
├── index.uvue # 实时监控主页
├── detail.uvue # 数据详情页面
├── analysis.uvue # 数据分析页面
├── devices.uvue # 设备管理页面
├── settings.uvue # 传感器设置页面
├── simulator.uvue # 数据模拟器页面
└── types.uts # 类型定义文件
2. 支持的传感器类型
- 心率监测: 心率、RR间期、心率变异性
- 步数统计: 步数、距离、卡路里
- 血氧检测: 血氧饱和度、灌注指数
- 血压测量: 收缩压、舒张压、脉压、平均动脉压
- 体温监测: 体温、环境温度
- 步幅分析: 步幅长度、步频、着地时间
- 位置定位: GPS坐标、海拔、速度
- 心电图: 原始信号、心律类型、各项间期
3. 核心功能
实时数据监控 (index.uvue)
- 设备状态显示
- 实时指标卡片
- 多类型数据趋势图表
- 历史记录列表
- AI分析结果弹窗
- Supabase Realtime 订阅
数据分析 (analysis.uvue)
- 时间范围选择 (24h/7d/30d/90d)
- 健康评分计算
- 指标趋势分析
- 异常检测与警报
- AI智能分析报告
- 数据对比功能
设备管理 (devices.uvue)
- 蓝牙设备扫描
- 设备绑定/解绑
- 设备配置管理
- 采样频率设置
- 上传间隔配置
- 自动同步开关
传感器设置 (settings.uvue)
- 通用设置开关
- 采集频率配置
- 异常阈值设置
- 通知配置
- 数据管理选项
- 隐私设置
- 设备校准功能
- 数据导出选项
数据模拟器 (simulator.uvue)
- 实时数据模拟
- 传感器配置面板
- 批量数据生成
- 统计信息显示
- 数据预览功能
数据库设计
主要数据表
ss_sensor_measurements (通用测量表)
CREATE TABLE ss_sensor_measurements (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
device_id UUID REFERENCES ak_devices(id),
user_id UUID REFERENCES ak_users(id),
measurement_type VARCHAR(50) NOT NULL,
measured_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
unit VARCHAR(20),
raw_data JSONB NOT NULL,
quality_score INTEGER DEFAULT 100,
created_at TIMESTAMPTZ DEFAULT NOW()
);
专项数据表
ss_heart_rate_data- 心率专项数据ss_steps_data- 步数专项数据ss_spo2_data- 血氧专项数据ss_blood_pressure_data- 血压专项数据ss_temperature_data- 体温专项数据ss_stride_data- 步幅专项数据ss_location_data- 位置专项数据ss_ecg_data- 心电图专项数据
索引优化
- 时间序列索引 (measured_at)
- 设备+用户组合索引
- 测量类型索引
- JSONB 字段 GIN 索引
前端技术特点
1. 严格的 UTS 类型系统
export type SensorMeasurement = {
id: string;
device_id: string;
user_id: string;
measurement_type: string;
measured_at: string;
unit: string;
raw_data: UTSJSONObject;
created_at: string;
}
2. 链式数据请求
const result = await supa.from('ss_sensor_measurements')
.eq('device_id', deviceId)
.eq('user_id', userId)
.order('measured_at', { ascending: false })
.limit(50)
.execute()
3. 实时数据订阅
realtimeSubscription = supa.from('ss_sensor_measurements')
.on('INSERT', (payload: UTSJSONObject) => {
// 处理实时数据更新
})
.subscribe()
4. 响应式设计
- 大屏/小屏自适应
- 动态字体缩放
- 触摸友好的交互
- 无障碍支持
性能优化
1. 数据库层面
- 时序数据库优化
- 分区表设计
- 索引优化
- 连接池管理
2. 前端层面
- 懒加载机制
- 虚拟滚动
- 数据缓存
- 防抖节流
3. 实时通信
- WebSocket 连接复用
- 数据压缩
- 断线重连
- 消息队列
安全考虑
1. 数据安全
- 端到端加密
- 本地数据加密存储
- 传输层 TLS 加密
- 敏感数据脱敏
2. 访问控制
- 用户身份验证
- 设备绑定验证
- 数据权限控制
- API 频率限制
3. 隐私保护
- 数据最小化原则
- 用户同意机制
- 数据匿名化
- 右to被遗忘
部署说明
1. 数据库部署
# 安装 PostgreSQL 和 TimescaleDB
# 运行数据库脚本
psql -f doc_ble/ss_sensor_data_schema.sql
psql -f doc_ble/ss_generate_mock_data.sql
2. 后端服务
- 配置 Supabase 项目
- 部署 RPC 函数
- 设置实时订阅规则
- 配置数据库连接
3. 前端应用
# 安装依赖
npm install
# 编译运行
npm run dev:app-android
扩展性设计
1. 模块化架构
- 独立的传感器模块
- 可插拔的分析引擎
- 标准化的数据接口
- 微服务架构支持
2. 多租户支持
- 租户级别的数据隔离
- 个性化配置
- 资源配额管理
- 计费系统集成
3. 国际化支持
- 多语言界面
- 地区化数据格式
- 时区处理
- 文化适配
监控与维护
1. 系统监控
- 数据采集状态监控
- 性能指标监控
- 错误日志收集
- 用户行为分析
2. 数据质量
- 数据完整性检查
- 异常值检测
- 数据一致性验证
- 质量评分系统
3. 备份恢复
- 自动数据备份
- 增量备份策略
- 灾难恢复计划
- 数据迁移工具
使用指南
1. 开发者
- 参考 types.uts 了解数据结构
- 使用 AkSupa 进行数据操作
- 遵循 UTS 严格模式规范
- 实现响应式设计
2. 用户
- 从导航页面 (nav.uvue) 开始
- 绑定传感器设备
- 配置采集参数
- 查看实时数据和分析报告
3. 管理员
- 监控系统运行状态
- 管理用户和设备
- 配置系统参数
- 维护数据质量
后续规划
1. 功能增强
- 更多传感器类型支持
- 高级AI分析算法
- 社交功能集成
- 健康建议系统
2. 技术升级
- 边缘计算支持
- 机器学习模型部署
- 区块链数据验证
- 5G 网络优化
3. 生态建设
- 第三方设备接入
- 开放API平台
- 开发者社区
- 商业化模式
本系统为高性能、企业级的传感器数据管理平台,具备完整的功能模块和良好的扩展性,可以满足各种规模的部署需求。