便携式低功耗可穿戴心率血氧监测系统的设计
2020-09-26吴全玉贾恩祥戴飞杰张文悉王烨刘晓杰
吴全玉 贾恩祥 戴飞杰 张文悉 王烨 刘晓杰
摘 要:心率、血氧和体温都是人体重要的生理信息,设计出体积小和便携式的系统测量装置,将会有较大的社会和临床经济效益。尝试以STM32F103C8T6为控制器,设计一种便携监测设备。通过MAX30102、GY-MCU90615模块采集心率血氧及体温数据,经蓝牙模块将数据发送到Android智能机解析显示,实现了基于Android系统的心率、血氧、体温监测系统。经测试验证,该采集系统工作稳定可靠。
关键词:心率血氧检测; 体温检测; STM32F103C8T6; Android;蓝牙通讯
中图分类号:R318.04;TN929.53 文献标识码:A 文章编号:2095-7394(2020)04-0053-09
心率和血氧饱和度是人体重要的生理指标[1],反映了人体的健康状况。随着信息技术的发展,智能健康佩戴设备普及度大幅提升[2-5]。薛俊伟等人设计了一种基于蓝牙低功耗技术的可穿戴血氧饱和度监测设备,能够连续检测人体血氧饱和度和脉率[6],具有低功耗和可穿戴等特点,但是当模拟仪输出血氧饱和度低于75%时,设备的检测精度受到影响。张政丰等人针对现有可穿戴设备的心率检测方法进行了研究,发现不同活动状态下人体的心率变化很大,但是没有给出相应的App程序进行实时的检测[7]。徐盼盼等人介绍了一种基于TI公司 AFE4400集成芯片的血氧模拟采集电路,他们的研究主要是简化了电路设计、降低了系统功耗和减小了电路尺寸,提高硬件的便携性,但在整个系统网络操作开发方面略显不足[8]。随着网络云平台技术的发展,一些具有检测人体生理参数功能的产品也在向可穿戴和网络实时监测等方向发展。如小米公司的可穿戴产品“小米手环”,可以提供高精準的心率、睡眠质量监测;国内一些厂家生产的低成本指夹仪,可以进行血氧饱和度和心率的检测,并通过OLED屏显示数据。
笔者设计的基于Android系统的心率、血氧、体温监测系统具有便携、低功耗、无线传输等特点。该系统由硬件端和软件端两部分组成。硬件端由传感器模块,蓝牙通信模块,STM32核心电路以及电源稳压电路组成。传感器模块由MAX30102心率血氧模块和GY-MCU90615红外测温模块组成,它将采集完成的数据,通过蓝牙模块发送至安卓端,解析数据并显示在界面上。具体系统设计如图1所示。
设备成品可以帮助用户随时随地较为准确地测量其身体的血氧饱和度、心率等生理指标,从而更好地掌握自己的身体状况。从医学上分析,血氧饱和度和心率两项生理指标作为医院诊治的重要数据,血氧饱和度在95及以上为正常指标,心率在每分钟60~100之间为正常指标。当用户在不同时间段多次测量结果均不符合上述两项指标时,表明身体有异样,建议就医详查。
1 检测原理
1.1 心率血氧检测原理
光电容积法作为监护测量中最常见的手段,具有方法简单、佩戴方便、可靠性高等特点,其基本原理是利用人体组织在血管搏动时产生的透光率差异来进行心率和血氧饱和度的测量,所使用的传感器由光源和光电变换器[9-11]两部分组成,通过绑带或夹子固定在病人的手指、手腕或耳垂上。光源一般采用对动脉血中氧合血红蛋白(HbO2)和血红蛋白(Hb)有选择性的特定波长的发光二极管(一般选用660 nm附近的红光和940 nm附近的红外光)[12]。当光束透过人体外周血管,由于动脉搏动造成血容积变化致使透光率发生改变,此时由光电变换器接收经人体组织反射的光线,转变为电信号并将其放大和输出。由于脉搏是随心脏的搏动而周期性变化的信号,动脉血管容积也周期性变化,因此,光电变换器的电信号变化周期就是脉搏率。同时,根据血氧饱和度(SaO2)的定义,其表达为:
1.2 体温检测原理
红外测温广泛应用于非接触式温度测量设备[13],其原理是将物体发射的红外线具有的辐射能转变成电信号,红外线辐射能的大小与物体自身的温度相对应,根据所转变的电信号值来确定被测体温度。
2 硬件系统设计
2.1 信号采集模块
如图3(a),Maxim公司生产的MAX30102是一种高灵敏度血氧和心率生物传感器[14]。其集成了LED及驱动,光感应及AD转换,环境光干扰消除及数字滤波部分,只留有数字接口,极大地减轻了开发者的设计负担。
如图3(b),GY-MCU90615是一种低成本红外温度模块,具有低功耗、体积小等优点。其工作原理是通过单片机读取红外温度数据,串口通信方式输出。采集模块的电路连接如图4所示。
2.2 蓝牙模块
HC-05是一款高性能主从一体的蓝牙模块,可直接作串口使用。实物与电路连接见图5。
2.3 电源电路
在后续电路设计中,考虑到供电电池的电压在3.7 V附近,选用TPS7333芯片稳压,该芯片压差在0.3~0.4 V内,较为稳定。电源电路见图6 。
2.4 主控芯片电路
STM32核心电路主要包括4个部分:(1) 复位电路;(2) 晶振电路;(3) 串口下载;(4) I/O口。
STM32外接了两个晶振为其内部系统提供时钟源。一个8 M的高速外部时钟(HSE),为系统提供较精确的主频;另一个是32.768 M的低速外部时钟(LSE),用于提供精准的时钟功能。系统核心板具体原理图如图7所示。
3 软件开发及算法
3.1 通信协议
通信协议是影响系统稳定性的主要因素[15]。笔者设计的下位机端需要使用两个串口,即 USART1和USART2,一个中断端口,两个I2C模拟端口。其中,USART1串口连接红外测温模块,USART2串口连接蓝牙模块。
MAX30102模块采用I2C通信协议,为保证稳定性,采用软件模拟I2C的方式;由图5,USART2功能引脚PA2(TXD)、PA3(RXD)作为下位机与上位机的通信接口,波特率9 600 bps。GY-MCU90615模块通过USRAT1串口与STM32通信,固定封包数9帧,协议如下。
(1)帧头:Byte0与Byte1固定帧头0x5A。
(2)数据位:Byte2表示本帧数据类型,Byte3表示数据量(4个字节数据 2 组为一个参数),Byte4 表示目标数据的高8位,Byte5表示目标数据的低8位,Byte6表示环境温度的数据高8位,Byte7表示环境温度的数据低 8位。
(3)帧尾:Byte8范围在0x00~0xFF是校验和(前面数据累加和,仅保留低8位)。
通过帧头、帧尾及帧长来判断数据的正确性,从正确的帧组数据位中提取所需的数据并解析,即可完成数据转化。
3.2 下位机固件开发
主函数将心率血氧采集和红外测温程序进行了整合。主要逻辑:首先读出串口数值,判断串口所发送的数据能正确解析时,再发送一条查询指令;之后,检查心率血氧检测的中断触发情况,若已触发中断,说明心率血氧模块可以正常工作,然后进行红光和红外光的读取,每次读取100组并将其存入数组,读取完毕后,进行AD转换。由于初始阶段读取得值之和不足500组,所以在5 s左右的时间内无法显示数据,之后正常工作并对采集的500组数据进行均值滤波。判断采集的心率和血氧值是否正常,确认采集值有效,再进行组帧发送。发送完成之后,进行數组的数据顺移,在此过程中,前面的数据会被丢弃,永远只保存数组内500个数据。
红外测温模块是通过串口通信的方式工作,其原理是模块向设备发送指令0xa5+0x15+0xBA,设备再返回一段数据,取其中有效数据即可。在此程序中,使用了命令查询的方法,即每次都需要发送指令,传感器才能返回值。
3.3 算法简述
心率血氧检测的算法移植自Maxim公司官方库。程序中需要用到的主要函数有:
将读取到的红光和红外光的参数放入数组内,并将红光和红外光的数组名填进对应的数组参数名中。参数*pn_heart_rate和*pn_spo2是输出结果的变量。*pn_heart_rate输出心率,*pn_spo2输出血氧浓度。*pch_spo2_valid和*pch_hr_valid为判断采集到的心率和血氧的有效性,如果为1,即表示采集到的对应的参数有效;如果为0,即表示采集到的数值误差过大,并判定为无效值。无效值用-999表示,只输出有效值。
3.4 上位机软件开发
上位机APP采用Android Studio编写,主要分为蓝牙连接、数据处理、UI刷新、曲线图绘制4个部分。具体软件主流程如图8所示。
蓝牙连接的前提是手机已经与蓝牙模块配对成功。数据处理主要是对帧数据进行解析。UI刷新采用handler机制,handler根据sendHandlerMessage发送的msg参数来确定刷新UI的哪个部分。在获取解析的数据后,调用github组件进行曲线图绘制。
如图9所示,APP具有主界面(a)以及全部监测(b)和单一监测(c)两类分页面,用于显示信号当前值及其变化曲线。
4 测试结果
如图10所示,测试条件为室内、气温26 ℃、测试者身体状态正常(未剧烈运动),选择在室内采集人体静态数据[16]的主要原因是噪音、光线等干扰因素较少,更利于提取有效数据。
接通设备电池电源,蓝牙模块LED常闪,开启安卓APP进行测试,当蓝牙模块LED闪频降低,表明上位机与下位机通讯成功。Android端将下位机采集到的心率、温度以及血氧浓度值实时显示,并以折线图的形式表现出来。由于蓝牙在接收开始数据的约前5 s内,系统所接收的数据不足500组,无法显示,等待接收500组数据后,UI界面将会刷新显示。
5 结语
简要介绍了基于Android系统的心率、血氧、体温监测系统设计,旨在提供一种面向家用等环境下的智能监测设备。经测试,该系统能够较为准确地检测各项信号并在Android端实时显示数据和变化曲线,具有低成本、易于携带[17]、操作简单、无线传输等特点。
参考文献:
[1] 陈孝英,杨济民.基于STM32血氧心率检测仪的研制[J].电脑知识与技术,2017,13(15):231-233.
[2] 尚猛,李辉,万只鹏,等.海外用户对智能健康穿戴设备持续使用意愿的模型构建及实证研究:以小米运动手环在韩用户群为例[J].数学的实践与认识,2019,49(7):9-19.
[3] LING T H Y , WONG L J , TAN J E H , et al. Non-intrusive Human Body Temperature Acquisition and Monitoring System[C].International Conference on Intelligent Systems. IEEE, 2015:16-21.
[4] 秦颖, 张晶, 蔡靖, 等. 基于交直流分离的反射式血氧饱和度测量系统的设计[J]. 传感技术学报, 2015(6):933-937.
[5] MAEDA Y , SEKINE M , TAMURA T . Relationship Between Measurement Site and Motion Artifacts in Wearable Reflected Photoplethysmography[J]. Journal of Medical Systems, 2011, 35(5):969-997.
[6] 薛俊伟,黄岳山,杜欣,等.蓝牙低功耗可穿戴血氧监测设备的设计[J].中国生物医学工程学报,2015,34(6):701-707.
[7] 张政丰,涂亚庆,李明,等.基于PPG的可穿戴设备心率检测方法[J].后勤工程学院学报,2017,33(4):93-96.
[8] 徐盼盼, 徐冰俏, 徐文龙. 基于AFE4400的脉搏血氧饱和度检测系统[J]. 激光与红外, 2015(3):320-324.
[9] LIANG Y, CHEN Z, LIU G , et al. A new, short-recorded photoplethysmogram dataset for blood pressure monitoring in China[J]. Scientific Data. 2018(5).DOI:10.1038/sdate.2018.20.
[10] HWANG S, SEO J O , JEBELLI H , et al. Feasibility analysis of heart rate monitoring of construction workers using a photoplethysmography (PPG) sensor embedded in a wristband-type activity tracker[J]. Automation in Construction, 2016:S0926580516301832.
[11] LEE S M , SHIN H S , HAHM C Y . Effective PPG sensor placement for reflected red and green light, and infrared wristband-type photoplethysmography[C].2016 18th International Conference on Advanced Communication Technology (ICACT). IEEE, 2016.
[12] 朱明善,曾碧新.基于Android智能手机的血氧饱和度、心率、呼吸频率监测系统设计[J].中国医疗器械杂志,2015, 39(3):183-186.
[13] 蘇建奎,桂星雨.医用红外体温测量仪的现状与发展[J].医疗卫生装备,2016,37(1):110-112.
[14] 陈翠.Maxim MAX30102可穿戴血氧和心率生物传感器解决方案[J].世界电子元器件,2018(4):45-48.
[15] 张伟, 王革辉. 可穿戴设备中的心率检测技术[J]. 上海纺织科技, 2017(1):12-15.
[16] DING X R, ZHANG Y T, LIU J, et al. Continuous Cuffless Blood Pressure Estimation Using Pulse Transit Time and Photoplethysmogram Intensity Ratio.[J]. IEEE Trans Biomed Eng, 2016, 63(5):964-972.
[17] 廖显辉.基于健康管理的可穿戴式智能设备发展桎梏及未来路径[J].体育科技文献通报,2019,27(5):139-140.
责任编辑 张志钊