基于ESP32与机器学习模型的健康管理系统方案
目录
一、研究目的
本研究旨在设计并实现一套基于ESP32边缘计算节点与机器学习模型的智能健康管理系统,以解决当前个人健康监测领域面临的三大核心问题:数据采集碎片化、分析决策智能化程度低、以及隐私安全保障不足。系统采用ESP32微控制器作为核心硬件平台,集成MAX30102、MAX30205等多模态生理传感器,实现对心率、血氧饱和度、体温、呼吸频率等关键生命体征数据的实时采集。在数据分析层面,系统引入轻量化机器学习算法直接在边缘端部署运行,构建用户健康状态评估模型,实现对异常体征的实时识别与风险预警,解决了传统方案将数据上传云端分析所带来的延迟高、隐私泄露风险大的问题。前端采用Vue框架与ECharts.js可视化库,为用户提供直观的健康数据仪表板与趋势分析界面;后端基于Flask轻量级框架构建RESTful API,实现数据存储、历史查询与设备管理功能。通过该系统的研发,旨在探索一条低成本、高精度、可部署于家庭环境的智能健康监测技术路径,为慢性病患者的日常健康管理、独居老人的远程监护以及亚健康人群的健康自评提供一套完整的技术解决方案,推动医疗健康服务从院内治疗向院外预防延伸。
二、研究意义
本研究的理论意义在于探索边缘计算与机器学习在个人健康监测领域的融合范式。当前物联网健康监测研究多采用“端-云”分离架构,传感器采集的原始数据需经网络传输至云端服务器进行分析处理,这一模式不仅对网络带宽有较高要求,更存在数据隐私泄露风险与响应延迟不可控等问题-8。本研究将轻量化机器学习模型直接部署于ESP32边缘节点,在数据源头完成特征提取与初步推理,仅将分析结果上传云端,形成“端侧感知-边缘推理-云端可视”的三层协同架构,为物联网健康监测系统提供一种新的设计范式。从实践层面看,本研究具有显著的社会价值。据国家统计局数据,截至2023年底我国60岁及以上人口已超2.9亿,其中空巢老人比例持续攀升,这些老年人普遍患有高血压、糖尿病等慢性疾病,需要长期的健康监护。然而传统医疗资源分布不均、专业监护设备价格昂贵,难以大规模普及。本研究采用ESP32作为核心控制器,该芯片成本低廉(零售价约5-10美元)且具备Wi-Fi/蓝牙双模通信能力,配合开源软件栈,可将整套系统的硬件成本控制在300元以内-6。此外,系统通过移动端应用向家属或社区医生推送健康报告与异常告警,构建“家庭-社区-医院”三级联动的健康管理网络,有助于缓解医疗资源紧张、提升慢病管理效率。在经济层面,系统的低成本和可复制性使其具备良好的产业化前景,可为智能健康硬件市场提供一款高性价比的产品方案。
三、国外研究现状分析
国际上,基于物联网与机器学习的健康监测系统研究正处于快速发展阶段,形成了从传感器硬件、边缘计算到人工智能算法的完整技术链条,且呈现出从单一参数监测向多模态融合分析、从云端智能向边缘智能演进的趋势。
在硬件平台与传感器融合方面,国外学者广泛采用ESP32系列微控制器作为核心处理单元,主要原因在于其内置Wi-Fi与蓝牙功能、足够的外设接口以及低功耗特性。例如,墨西哥国立理工学院的研究团队开发了一套基于ESP32与MQ-138气体传感器的无创呼吸丙酮监测系统,用于糖尿病的无创筛查-1。该系统利用ESP32采集传感器电压信号,通过预先标定的对数曲线将其转换为丙酮浓度(PPM),实现了对呼气丙酮的实时监测。更进一步,该团队将ESP32与Flask框架结合,构建了完整的REST API服务,使前端应用能够实时获取推理结果-1。这一方案充分展示了ESP32在医疗物联网边缘节点的适用性。此外,来自IEEE Healthcom 2025会议的研究报道了一种集成MAX30102传感器与ESP32的应力分类与生命体征预测系统,该系统采用集成学习(包括CatBoost、LightGBM、AdaBoost等)对应激状态进行分类,在WESAD公开数据集上达到了97%的分类准确率-3。该研究验证了ESP32作为可穿戴设备核心处理单元的可行性,以及集成学习方法在生理信号分类任务中的优越性。
在非接触式监测这一前沿方向,美国加州大学圣克鲁兹分校的研究团队取得了突破性进展。他们研发的Pulse-Fi系统利用普通Wi-Fi信号(ESP32作为信号收发器)结合神经网络模型,实现了对心率的无接触测量-6。研究团队对118名参与者进行了测试,结果显示该系统测量心率的误差可控制在每分钟0.5次以内,且监测距离可延伸至3米而不显著降低精度。这一技术路线为健康监测开辟了全新的可能性——无需佩戴任何设备,仅通过环境中已有的Wi-Fi信号即可完成生命体征监测。英国与阿联酋的联合研究团队则将这一思路推向了更高层次,他们在《Scientific Reports》上发表的研究提出了基于射频多传感与数字孪生技术的AI人体监测框架,采用ESP32 Wi-Fi传感器提取信道状态信息(CSI)用于呼吸追踪,结合超宽带射频传感器监测呼出水合作用-2-5。研究显示,经过增强信号处理后,呼吸频率估计的准确率达到100%(在±5 BPM的观察者间变异阈值内)。在机器学习模型方面,该研究对比了监督学习和半监督学习方法,发现随机森林在半监督呼吸分类中达到88%的准确率,K近邻在半监督水合作用分类中达到93%的二元分类准确率-2。
在边缘智能部署方面,Basu等人(2025)提出了基于PYNQ-Z2 FPGA的边缘智能健康监测架构,使用ESP32作为MQTT客户端采集心率、血氧和体温数据,数据经MQTT协议传输至Raspberry Pi代理节点,机器学习模型(SVM、KNN、决策树)在FPGA上加速推理-8。这一研究验证了在资源受限的边缘设备上部署机器学习模型的可行性,为ESP32端侧推理提供了参考。更进一步,2025年IEEE Xplore发表的一项研究成功将LSTM疾病诊断聊天机器人(可检测36种疾病,准确率>90%)移植到了ESP32微控制器上,实现了0.9的验证准确率和0.86的精确率-9。该研究解决了模型量化、分词器适配和内存管理等技术挑战,证明了即使是LSTM这类时序模型也可以在ESP32上高效运行。
综上所述,国外研究在硬件集成、非接触感知、边缘智能部署等方面已取得丰富成果,但仍存在系统集成度不足、缺乏完整的前后端闭环方案等问题,多数研究停留在实验室验证阶段,尚未形成可大规模部署的产品级系统。
四、国内研究现状分析
国内学者围绕基于物联网的健康监测系统同样开展了大量研究工作,形成了从硬件设计、通信协议到应用层开发的完整技术体系,并以云平台集成和移动端应用开发为特色。
在系统架构设计层面,凌信航等(2022)在《电子器件》期刊上发表的论文代表了国内典型的物联网健康监测系统设计范式-4。该研究以ESP32为控制核心,集成MAX30205(体温)、MAX30102(血氧心率)、CCS811(空气质量)和HDC1080(温湿度)四款传感器,构成可穿戴与家庭环境监测两个子系统,并通过阿里云完成数据共享,同时利用IoT Studio设计了移动端安卓APP实现数据可视化与云端指令下达-4。这一方案充分体现了国内研究“云-端-管”一体化的设计思想,利用成熟的企业级云平台降低开发门槛,具有良好的工程实用性。该研究也验证了ESP32在多传感器融合场景下的能力——其有限的GPIO资源和处理能力足以同时驱动多款传感器并完成数据上传。
在算法创新方面,孙巍巍等(2025)在《电子测量技术》上发表的研究代表了国内在多传感信息融合与跌倒检测领域的前沿水平-7。该团队以ESP32微处理器为核心,融合智能手机内置传感器、压力薄膜传感器和MPU6050惯性测量单元的数据,提出了“本地多阈值算法”与云端“改进SSA-LSTM-Transformer算法”相结合的云边协同跌倒检测方法。在公开数据集上的验证显示,该算法的准确率达到99.13%,实地实验中的跌倒检测准确率为97.67%-7。这一研究的重要意义在于明确划分了边缘端与云端的计算职责——边缘端执行低延迟的实时检测与告警,云端负责复杂时序模型的训练与重训练,形成了“边云协同”的智能计算架构。该方法对于老年人跌倒检测这一具有强实时性要求的应用场景具有重要价值。
在应用场景拓展层面,国内研究覆盖了慢病管理、居家养老、运动健康等多个领域。东南大学的研究团队在论文中引用了白鹏飞等(2017)基于MAX30102的穿戴式血氧饱和度检测系统,以及赵俊杰等(2022)基于STM32的智能运动手环系统设计,这些研究共同构成了国内可穿戴健康监测的技术基础-4。值得注意的是,国内研究普遍采用阿里云、腾讯云等企业级物联网平台作为数据汇聚层,这与国外研究多采用自建MQTT Broker或Flask服务的方式形成鲜明对比。采用成熟云平台的优势在于可快速获得设备管理、数据存储、消息推送等企业级功能,降低系统开发复杂度;但劣势在于对云平台的依赖增加了运行成本和供应商锁定风险。
从研究趋势看,国内学者正在从早期的“采集-上传-展示”简单架构,向“边缘智能-云边协同-多模态融合”的智能化架构演进。跌倒检测研究中SSA-LSTM-Transformer的组合使用-7、健康监测系统中多传感器(心率、血氧、体温、环境参数)的融合分析-4,都表明国内研究已进入“智能感知+精准分析”的新阶段。然而,与国外研究相比,国内在非接触式感知(如基于Wi-Fi CSI的生命体征监测)、轻量化模型边缘部署(如TinyML)等前沿方向的研究相对薄弱,相关成果较少。
总体而言,国内研究具有系统集成度高、云平台应用成熟、应用场景明确等优势,但在端侧机器学习模型部署、非接触感知等前沿技术上与国外存在差距。本研究拟结合国内外研究优势,采用ESP32边缘节点与轻量化机器学习模型,构建“端侧推理+云端可视”的健康管理系统,弥补当前研究的不足。
五、研究内容
5.1 需求分析
用户需求:本系统面向三类核心用户群体。第一类是慢性病患者(如高血压、糖尿病、冠心病患者),他们需要长期监测血压、心率、血氧等生理指标,及时发现异常波动并采取干预措施,同时希望建立个人健康档案供就医时参考。第二类是独居老人及其家属,老年人面临跌倒、突发疾病等风险,家属需要远程掌握老人的健康状况并在异常时接收告警,期望系统具备操作简便(无需复杂设置)、低功耗(减少充电频率)和跌倒检测能力。第三类是亚健康人群及健康关注者,他们希望通过日常监测了解自身的健康趋势,识别生活方式与健康指标之间的关联,从而优化作息与运动计划。
功能需求:基于上述用户需求,系统应满足以下功能需求。数据采集需求:支持心率(精度要求±2 bpm)、血氧饱和度(精度要求±2%)、体温(精度要求±0.1℃)、呼吸频率等多参数同步采集,采样频率不低于1Hz。数据分析需求:边缘端需具备实时异常检测能力(如心动过速、心动过缓、低血氧、发热等),云端需支持历史数据的趋势分析与健康报告生成。数据可视化需求:用户端需以仪表板形式展示实时数据与历史趋势,支持按日/周/月查看变化曲线,异常数据需高亮标注。告警通知需求:当检测到生理参数超出预设阈值或识别到跌倒事件时,系统需在10秒内向绑定家属端推送告警消息。用户管理需求:支持多用户账户体系,每个用户可以绑定多个监测设备,家属端可关联多位老人。数据存储需求:原始测量数据保留至少90天,异常事件记录保留至少1年,支持数据导出为通用格式(如CSV)。
5.2 可行性分析
经济可行性:本系统的硬件成本主要包括ESP32开发板(约30-50元)、MAX30102心率血氧传感器(约25元)、MAX30205体温传感器(约20元)、MPU6050姿态传感器(约15元)、锂电池及充电模块(约20元),单套硬件BOM成本控制在150元以内。相比市售智能手环(300-1000元)和医疗级监护设备(数千元),本系统具有显著的成本优势。软件层面,系统采用开源技术栈(Python、Vue、MySQL、Flask),无需支付商业软件授权费用。若以1000套系统的小规模量产计算,单套硬件成本可进一步降至100元左右,具备良好的产业化前景。
社会可行性:我国步入老龄化社会后,居家养老与慢病管理的需求缺口持续扩大。当前优质医疗资源集中于三甲医院,基层社区和家庭场景缺乏有效的健康监测工具。本系统定位于家庭场景,可为老年人提供轻量化、低成本的健康管理方案,符合“健康中国2030”战略中“从以治病为中心向以健康为中心转变”的政策导向。此外,系统通过家属端应用实现远程监护,有助于缓解独居老人照护的人力资源压力,具有良好的社会效益。
技术可行性:本系统所采用的技术栈均为成熟技术。ESP32芯片具备双核240MHz处理器、520KB SRAM、4MB Flash,可支持轻量级机器学习模型的运行(如决策树、KNN、量化后的神经网络)。TinyML框架(如TensorFlow Lite Micro、Edge Impulse)已支持将训练好的模型部署到ESP32平台。Python的Flask框架生态完善,可快速构建RESTful API。Vue与ECharts.js的组合在数据可视化领域应用广泛,有成熟的组件库支持。MySQL作为关系型数据库,可满足结构化健康数据的存储需求。各技术模块之间通过HTTP/WebSocket或MQTT协议通信,接口定义清晰,整体方案的工程可行性较高。
5.3 功能分析
基于需求分析,本系统划分为四个核心功能模块:
1. 用户管理模块:支持用户注册、登录、个人信息维护。区分管理员、普通用户(被监测者)、家属三种角色。家属账号可绑定多个被监测者账号,接收健康报告与异常告警。实现基于JWT的身份认证与权限控制。
2. 数据采集与传输模块:ESP32设备通过I2C总线周期性读取MAX30102(心率/血氧)、MAX30205(体温)、MPU6050(姿态角/加速度)传感器数据。数据经卡尔曼滤波预处理后,输入边缘机器学习模型进行异常检测与跌倒识别。异常事件与周期摘要数据通过Wi-Fi以MQTT协议上传至云端服务器,保障传输的实时性与低开销。
3. 边缘智能分析与预警模块:在ESP32端部署轻量化决策树或KNN模型,利用实时心率、血氧、体温及三轴加速度数据判断用户状态(正常/心动过速/心动过缓/低血氧/发热/跌倒)。检测到异常时,本地触发蜂鸣器告警,同时标记异常数据包上传云端。
4. 云端数据管理与可视化模块:Flask后端接收并存储数据至MySQL数据库,提供数据查询API与告警推送服务。Vue前端调用API获取数据,利用ECharts.js绘制心率、血氧、体温等指标的变化趋势图,生成健康周报。家属端可查看绑定用户的健康仪表板与历史告警记录。
六、数据库设计
6.1 数据库表结构
| 字段名 | 说明 | 大小 | 类型 | 主外键 | 备注 |
|---|---|---|---|---|---|
| user表 | |||||
| user_id | 用户ID | 11 | INT | PRIMARY KEY | 自增 |
| username | 用户名 | 50 | VARCHAR | NOT NULL | 唯一 |
| password_hash | 密码哈希 | 255 | VARCHAR | NOT NULL | |
| 电子邮箱 | 100 | VARCHAR | UNIQUE | ||
| phone | 手机号 | 20 | VARCHAR | ||
| role | 用户角色 | 20 | VARCHAR | NOT NULL | admin/user/family |
| real_name | 真实姓名 | 50 | VARCHAR | ||
| gender | 性别 | 10 | VARCHAR | male/female | |
| birth_date | 出生日期 | DATE | |||
| created_at | 创建时间 | DATETIME | NOT NULL | ||
| device表 | |||||
| device_id | 设备ID | 15 | VARCHAR | PRIMARY KEY | ESP32 MAC后8位 |
| device_name | 设备名称 | 50 | VARCHAR | ||
| user_id | 绑定用户ID | 11 | INT | FOREIGN KEY→user(user_id) | |
| firmware_version | 固件版本 | 20 | VARCHAR | ||
| last_active | 最后活跃时间 | DATETIME | |||
| status | 设备状态 | 20 | VARCHAR | online/offline | |
| created_at | 创建时间 | DATETIME | NOT NULL | ||
| relationship表 | |||||
| relation_id | 关系ID | 11 | INT | PRIMARY KEY | 自增 |
| family_id | 家属用户ID | 11 | INT | FOREIGN KEY→user(user_id) | |
| patient_id | 被监测者ID | 11 | INT | FOREIGN KEY→user(user_id) | |
| bind_time | 绑定时间 | DATETIME | NOT NULL | ||
| permission | 权限等级 | 20 | VARCHAR | read/all | |
| health_data表 | |||||
| data_id | 数据ID | 11 | INT | PRIMARY KEY | 自增 |
| device_id | 设备ID | 15 | VARCHAR | FOREIGN KEY→device(device_id) | |
| user_id | 用户ID | 11 | INT | FOREIGN KEY→user(user_id) | |
| heart_rate | 心率(bpm) | 5 | SMALLINT | 30-200 | |
| spo2 | 血氧饱和度(%) | 5 | TINYINT | 0-100 | |
| temperature | 体温(℃) | 5 | DECIMAL(3,1) | ||
| respiratory_rate | 呼吸频率 | 5 | TINYINT | ||
| fall_detected | 跌倒检测 | BOOLEAN | 0/1 | ||
| is_abnormal | 是否异常 | BOOLEAN | 0/1 | ||
| record_time | 记录时间 | DATETIME | NOT NULL | ||
| alert表 | |||||
| alert_id | 告警ID | 11 | INT | PRIMARY KEY | 自增 |
| user_id | 用户ID | 11 | INT | FOREIGN KEY→user(user_id) | |
| device_id | 设备ID | 15 | VARCHAR | FOREIGN KEY→device(device_id) | |
| alert_type | 告警类型 | 30 | VARCHAR | NOT NULL | 心动过速/低血氧等 |
| alert_level | 告警等级 | 10 | VARCHAR | info/warning/critical | |
| alert_value | 触发值 | 10 | VARCHAR | ||
| threshold_value | 阈值 | 10 | VARCHAR | ||
| is_handled | 是否已处理 | BOOLEAN | 0/1 | ||
| handled_time | 处理时间 | DATETIME | |||
| created_at | 创建时间 | DATETIME | NOT NULL | ||
| health_report表 | |||||
| report_id | 报告ID | 11 | INT | PRIMARY KEY | 自增 |
| user_id | 用户ID | 11 | INT | FOREIGN KEY→user(user_id) | |
| report_type | 报告类型 | 20 | VARCHAR | weekly/monthly | |
| report_period | 报告周期 | 50 | VARCHAR | 2026-01-13~2026-01-19 | |
| summary_json | 汇总数据 | 2000 | JSON | ||
| file_path | 文件路径 | 255 | VARCHAR | ||
| generated_at | 生成时间 | DATETIME | NOT NULL |
-- 创建数据库
CREATE DATABASE IF NOT EXISTS health_monitor
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;
USE health_monitor;
-- 用户表
CREATE TABLE `user` (
`user_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
`password_hash` VARCHAR(255) NOT NULL COMMENT '密码哈希',
`email` VARCHAR(100) DEFAULT NULL COMMENT '电子邮箱',
`phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
`role` VARCHAR(20) NOT NULL COMMENT '用户角色',
`real_name` VARCHAR(50) DEFAULT NULL COMMENT '真实姓名',
`gender` VARCHAR(10) DEFAULT NULL COMMENT '性别',
`birth_date` DATE DEFAULT NULL COMMENT '出生日期',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`user_id`),
UNIQUE KEY `uk_username` (`username`),
UNIQUE KEY `uk_email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-- 设备表
CREATE TABLE `device` (
`device_id` VARCHAR(15) NOT NULL COMMENT '设备ID',
`device_name` VARCHAR(50) DEFAULT NULL COMMENT '设备名称',
`user_id` INT(11) DEFAULT NULL COMMENT '绑定用户ID',
`firmware_version` VARCHAR(20) DEFAULT NULL COMMENT '固件版本',
`last_active` DATETIME DEFAULT NULL COMMENT '最后活跃时间',
`status` VARCHAR(20) DEFAULT 'offline' COMMENT '设备状态',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`device_id`),
KEY `idx_device_user` (`user_id`),
CONSTRAINT `fk_device_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备表';
-- 家属-被监测者关系表
CREATE TABLE `relationship` (
`relation_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '关系ID',
`family_id` INT(11) NOT NULL COMMENT '家属用户ID',
`patient_id` INT(11) NOT NULL COMMENT '被监测者ID',
`bind_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '绑定时间',
`permission` VARCHAR(20) DEFAULT 'read' COMMENT '权限等级',
PRIMARY KEY (`relation_id`),
KEY `idx_rel_family` (`family_id`),
KEY `idx_rel_patient` (`patient_id`),
CONSTRAINT `fk_rel_family` FOREIGN KEY (`family_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE,
CONSTRAINT `fk_rel_patient` FOREIGN KEY (`patient_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='家属关系表';
-- 健康数据表
CREATE TABLE `health_data` (
`data_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`device_id` VARCHAR(15) NOT NULL COMMENT '设备ID',
`user_id` INT(11) NOT NULL COMMENT '用户ID',
`heart_rate` SMALLINT(5) DEFAULT NULL COMMENT '心率(bpm)',
`spo2` TINYINT(5) DEFAULT NULL COMMENT '血氧饱和度(%)',
`temperature` DECIMAL(3,1) DEFAULT NULL COMMENT '体温(℃)',
`respiratory_rate` TINYINT(5) DEFAULT NULL COMMENT '呼吸频率',
`fall_detected` BOOLEAN DEFAULT FALSE COMMENT '跌倒检测',
`is_abnormal` BOOLEAN DEFAULT FALSE COMMENT '是否异常',
`record_time` DATETIME NOT NULL COMMENT '记录时间',
PRIMARY KEY (`data_id`),
KEY `idx_data_device` (`device_id`),
KEY `idx_data_user` (`user_id`),
KEY `idx_data_record_time` (`record_time`),
CONSTRAINT `fk_data_device` FOREIGN KEY (`device_id`) REFERENCES `device` (`device_id`) ON DELETE CASCADE,
CONSTRAINT `fk_data_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='健康数据表';
-- 告警记录表
CREATE TABLE `alert` (
`alert_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '告警ID',
`user_id` INT(11) NOT NULL COMMENT '用户ID',
`device_id` VARCHAR(15) NOT NULL COMMENT '设备ID',
`alert_type` VARCHAR(30) NOT NULL COMMENT '告警类型',
`alert_level` VARCHAR(10) DEFAULT 'info' COMMENT '告警等级',
`alert_value` VARCHAR(10) DEFAULT NULL COMMENT '触发值',
`threshold_value` VARCHAR(10) DEFAULT NULL COMMENT '阈值',
`is_handled` BOOLEAN DEFAULT FALSE COMMENT '是否已处理',
`handled_time` DATETIME DEFAULT NULL COMMENT '处理时间',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`alert_id`),
KEY `idx_alert_user` (`user_id`),
KEY `idx_alert_device` (`device_id`),
CONSTRAINT `fk_alert_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE,
CONSTRAINT `fk_alert_device` FOREIGN KEY (`device_id`) REFERENCES `device` (`device_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='告警记录表';
-- 健康报告表
CREATE TABLE `health_report` (
`report_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '报告ID',
`user_id` INT(11) NOT NULL COMMENT '用户ID',
`report_type` VARCHAR(20) NOT NULL COMMENT '报告类型',
`report_period` VARCHAR(50) DEFAULT NULL COMMENT '报告周期',
`summary_json` JSON DEFAULT NULL COMMENT '汇总数据(JSON格式)',
`file_path` VARCHAR(255) DEFAULT NULL COMMENT '文件路径',
`generated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '生成时间',
PRIMARY KEY (`report_id`),
KEY `idx_report_user` (`user_id`),
CONSTRAINT `fk_report_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='健康报告表';
-- 创建索引优化查询性能
CREATE INDEX idx_health_data_composite ON health_data(user_id, record_time DESC);
CREATE INDEX idx_alert_created ON alert(created_at DESC);
CREATE INDEX idx_device_user_status ON device(user_id, status);
参考文献
[1] Intelligent Non-Invasive Breath Acetone Monitoring System Using ESP32, MQ-138 Sensor, and Machine Learning Algorithms. Zenodo, 2025. -1
[2] Khan S, Alzaabi A, Saied I, et al. Next-generation digital twin model with unobtrusive RF multi-sensing for AI-based human monitoring. Scientific Reports, 2026. -2
[3] Danasabe A, Hossain M M, Jahiduzzaman F M, et al. Advanced Stress Classification and Vital Signs Forecasting for IoT-Health Monitoring. IEEE Healthcom, 2025. -3
[4] 凌信航, 王航蜀, 吴俊. 基于物联网的人体健康及家庭环境监测系统. 电子器件, 2022. -4
[5] 美国科学家为Wi-Fi带来健康监测新功能. 电子技术应用, 2025. -6
[6] 孙巍巍, 梁轶伟, 毛怡鹏, 等. 基于多传感信息融合的跌倒监测系统开发. 电子测量技术, 2025. -7
[7] Basu S, Ray R, Maitra A, et al. Edge-based intelligent and smart health monitoring on PYNQ-Z2 using lightweight protocol and integration of machine learning models. International Journal on Smart Sensing and Intelligent Systems, 2025. -8
[8] Medical Assistant Chatbot on Microcontroller. IEEE Xplore, 2025.

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)