Cristi200134/vital-signs-monitor

GitHub: Cristi200134/vital-signs-monitor

基于 ESP32 和 FreeRTOS 的便携式四参数生命体征监护仪,使用易获取零件复现临床患者监护仪核心功能,QRS 检测经 MIT-BIH 数据库验证。

Stars: 15 | Forks: 1

# VitalMonitor 便携式四参数生命体征监护仪(ECG、SpO2、体温、呼吸),基于 ESP32 从零开始构建,为 UMFST "G.E. Palade" Targu Mures 生物医学工程学士学位项目而开发。它使用易获取的零件重现了临床患者监护仪的核心功能。这是一个可行的概念验证,而非经过认证的医疗设备。 ![Platform](https://img.shields.io/badge/platform-ESP32-1f6feb) ![Firmware](https://img.shields.io/badge/firmware-C%2B%2B%20%2F%20FreeRTOS-orange) ![Validation](https://img.shields.io/badge/MIT--BIH%20F1-98.9%25-2ea44f) ![Status](https://img.shields.io/badge/status-proof%20of%20concept-lightgrey) ![License](https://img.shields.io/badge/license-MIT-blue) ## 核心亮点 - 单平台支持四项生命体征:通过 ECG 获取心率、SpO2、体温,以及由脉搏信号推算出的呼吸率。 - QRS 检测在 MIT-BIH 心律失常数据库上经过验证(ANSI/AAMI EC57):F1 分数 98.9%。 - 完整的工程资料包:原理图、含成本的物料清单(BOM)、3D 打印外壳、毕业论文。 - 荣获 Marisiensis 国际医学大会三等奖(UMFST,2026 年)。 ## 功能说明 - ECG 检测心跳、SpO2 与体温测量,以及由光学脉搏信号推算出的呼吸率。 - 本地 OLED 显示屏,以及通过设备自带 WiFi 热点提供的实时 Web 界面。 - 具备 LED 和蜂鸣器的三级报警系统,结合带实时时钟(RTC)的 microSD 卡会话记录功能。 ## 硬件 - ESP32(双核,FreeRTOS)。 - ECG:AD8232 仪表放大器和外部 16 位 ADC(ADS1115,250 SPS),采用 Butterworth 滤波器级联(高通 0.5 Hz,低通 40 Hz,陷波 50 Hz,在 50 Hz 处抑制约 66 dB)。 - SpO2 与呼吸:MAX30102 光学传感器(采用比值法;呼吸率通过红外直流调制提取)。 - 温度:DS18B20。时钟:DS3231。显示屏:128x64 OLED。存储:microSD。 - 电源:1800 mAh 锂聚合物电池,升压至 5 V,为模拟电路部分提供独立的 AMS1117 3.3 V 供电轨。 - 外壳:胶合板主体搭配 3D 打印 PLA 面板(图纸位于 `hardware/` 中)。 ## 固件 - 基于 FreeRTOS 的 C++/Arduino,根据临床优先级将八个任务固定分配在两个核心上,使用两个 mutex(用于数据和 I2C),I2C 频率为 400 kHz。 - ADS1115 以连续模式运行,确保 250 SPS 的 ECG 数据流不会阻塞共享的 I2C 总线。 - QRS 检测:简化的 Pan-Tompkins 算法(5 点求导、平方、148 ms 滑动窗口积分、自适应 SPKI/NPKI 阈值、200 ms 不应期、基于 16 个 RR 间期的平均值计算)。 ## 验证 心跳检测(简化的 Pan-Tompkins 算法)在 MIT-BIH 数据库上进行了测试,涵盖 30 条记录中的约 70,000 个标注心搏,匹配容差为 150 ms,遵循 ANSI/AAMI EC57 标准。 | 指标 | 数值 | 方法 | |---|---|---| | 敏感度 | 98.66% | MIT-BIH,30 条记录,约 70,000 次心搏 | | 阳性预测率 (+P) | 99.11% | 同上 | | F1 score | 98.9% | 同上 | | ECG 滤波器 | SNR > 60 dB,稳定(极点位于单位圆内) | 仿真 | ## 已知局限性(如实陈述) - SpO2 是在模拟数据上进行验证的,未在配备参考血氧计的受试者身上进行测试。 - 误报率高于我设定的目标。 - 延迟、CPU 负载和电池续航时间均为预算估计值,而非台架实测结果。 - QRS 检测是作为 MATLAB 重实现进行验证的(使用了与固件相同的系数和阈值),并非作为在芯片上运行的编译二进制文件进行验证。 - 它是一个研究原型,不是经过认证的医疗设备。 ## 仓库结构 - `firmware/` ESP32 源码(配置、传感器、FreeRTOS 任务、Web 服务器)。 - `hardware/` 原理图(PDF)、物料清单、外壳文件(STL)。 - `validation/` MATLAB 脚本和 MIT-BIH 验证。 - `docs/` 论文摘录、设备照片、验证截图。 ## 技术 ESP32、FreeRTOS、C++、AD8232、ADS1115、MAX30102、DS18B20、MATLAB、PlatformIO。 ## 作者 Cristi Dica,生物医学工程师,Targu Mures。LinkedIn:[在此填写你的链接]。 ## 许可证 MIT。详见 `LICENSE`。
标签:ESP32, 医疗设备, 嵌入式开发, 物联网应用, 生命体征监护, 生物医学工程