穿戴式老年人心率远程监测系统*
2018-09-27张枫沛肖世德赵梓辛
张枫沛, 肖世德, 陶 涛, 赵梓辛
(西南交通大学 机械工程学院,四川 成都 610031)
0 引 言
当今社会人口老龄化日趋严重,而老年人属于心血管疾病高发人群。在心率监测领域,文献[1]提出了一种基于蓝牙和全球移动通信系统(global system for mobile commumication,GSM)的心率监测系统,可通过GSM查询信息和报警;文献[2,3]提出了以蓝牙为通信方式、平台为数据处理中心和显示器的心率检测系统;文献[4]设计了一种腕式心率监测装置,通过无线收发模块进行远程监测;文献[5]设计了一种人体健康监测系统,实时监测人体体温和心率。以上系统主要针对青壮年,但对老年人群体所需求的预警功能、远程传输等方面不能完全满足监测要求。
本文设计了一种穿戴式老年人心率监测系统,上位机为Android端,考虑到老年人自我预警能力有限,预警接收方为子女或医护人员,且考虑及时性和远程传输能力,通信方式选用通用分组天线业务(general packet radio service,GPRS)结合云平台的通信方式。系统体积小、数据传输精准、预警及时准确,满足老年人远程心率监测的要求。
1 系统总体方案
选用接触式光电容积法采集腕部脉搏波,光检测器选用波长515 nm绿色光发光管。考虑穿戴式检测装置测量位置的影响,使用反射式信号采集方式,即发光源和光电探测器在人体组织同侧。对采集的初始信号进行有限脉冲响应(finite impulse response,FIR)低通滤波后采用基于时域—峰值的RR期间(脉搏波两次波峰期间)算法提取心率。
系统分为监测终端、通信传输部分以及Android终端。其中信号采集、决策控制和有机发光二极管(organic light emitting diode,OLED)屏幕显示同属于监测终端。信号采集模块采集到脉搏波信号后,经信号调理后传输至决策控制部分决策处理后将心率信号通过GPRS上传至云平台,Android端实时访问云平台获取数据,同时穿戴装置上设计有OLED屏幕可同步显示数据。若决策判断时发现心率信号超出设定阈值范围,则通过GPRS上传报警信号至云平台,Android端收到数据后以弹窗形式显示,同时下位机OLED屏幕显示报警信息。Android端APP设计有心率阈值修改界面,方便用户根据实际情况酌情修改阈值。系统总体设计如图1所示。
图1 系统总体设计
2 心率算法分析
人体血液中的血红蛋白在有入射光照射时遵循朗伯—比尔定律,心脏跳动时血管中的血流量呈现出周期性波动变化,进而使其对入射光的透射和反射产生周期性变化,光电探测器接收经衰减后的光信号引起电信号变化,从而计算心率信息[6]。
测得初始信号后,采用FIR低通滤波,为使信号处理后不发生失真,使用速度较高的逐次逼近型A/D转换器处理原始模拟信号,经滤波处理后,形成一串数据序列[7]。
利用滤波后的心率信号进行时域—峰值的RR间期算法,首先检测波峰位置并进行标记,通过计算前后相邻两个波峰的时间差来得到相邻心跳时间,为了避免突发干扰影响,将连续获得的N次心跳间隔时间进行平均,利用平均值来获得心率值,为了增强心率检测的准确度,在选用有效极值点时对相邻3个极值点各自相较前一极值点的间隔时间进行计算,判断中间极值点的间隔时间大于两端极值点间隔时间的3/5,则保留;否则,舍去,直至出现连续N个极值点,RR期间算法流程如图2。
图2 RR期间算法流程
3 硬件电路设计
3.1 硬件组成
系统硬件分为信号采集模块、处理器模块、电源模块、OLED显示模块、GPRS通信模块。硬件架构如图3。心率信号采集电路将心率信号转换为毫伏(mV)程度的电压模拟量,经调理电路处理放大后,被单片机A/D采集并转换,得到可识别并能够反映心率变化的数字信号。考虑到穿戴设备的低功耗、高效率体积小等要求,处理器模块选用飞思卡尔FRDM-KL25Z128VLK5[8]。OLED模块采用控制器为SSD12864的OLED屏幕,耗电小,显示清晰。直接通过串行外设接口(serial peripheral interface,SPI)总线方式控制屏幕,耗电小、显示清晰、方便快捷。
图3 硬件架构
3.2 心率采集与调理电路
光电转换电路在进行光电转换过程中容易受到各种外界因素影响,考虑到采集电路的响应速度、抗干扰能力、灵敏度、转换能力以及腕带设备的体积、低功耗要求,设计如图4所示心率采集调理电路。利用反射式光电容积原理对人体心率信号进行监测,光源采用型号为AM2520ZGC09的绿色光发光二极管,其绿色光峰值波长为515 nm,工作电压3.3~4.1 V。光接收器采用型号为APDS—9008的光电转换器件,可检测到峰值波长为565 nm的光线[9],与光源波长相近,满足灵敏度要求。
图4 心率采集调理电路
由于人体心率信号强度在毫伏程度,易受外界因素影响,故在电路中加入400 Hz的巴特沃斯低通滤波电路及由MCP6001运算放大器组成的放大电路,经计算电压增益幅值约为331倍。
3.3 电源电路
设计如图5所示电源电路,充电芯片选用BQ24232,其输出电压为4.4 V。系统工作电压为3.3 V,需稳压降压保护,选用TPS63031正常工作电流为50 μA对电压进行稳压降压,满足低功耗要求,并在低于3.3 V时,输出电压仍为3.3 V,续航能力强[10]。图中LED1为充电指示灯,J1部分为MINIUSB接口,为充电接口。
图5 电源电路
3.4 GPRS及云平台远程通信
GPRS通信模块选用西门子的GSM/GPRS双模模块MC35i,该芯片只要激活GPRS数据后,将会永远在线不存在掉线问题。模块与微处理器模块通过串口连接,模块的RXDO和TXD0管脚用于接收和发送数据,同时IGT和PD管脚与微处理器I/O口相连方便控制MC35i的开关和复位操作。MC35i自带网络状态指示接口,以脉冲信号控制发光二极管(light-emitting diode,LED)灯,作为当前网络状态指示[11]。以GPRS通信存在的问题是同一GPRS模块每次上线获得的IP地址是动态变化的,数据采集服务器无法准确定位GPRS。由此引入智能云服务平台,下位机采集处理完数据后通过GPRS模块实时上传云平台,Android端通过访问云平台获取数据,同理,Android端发出指令也由云平台传输,为远程测量和监控提供了一个理想方案。
4 软件设计
下位机程序在CodeWarrior10.6软件下使用C语言实现,系统选用的MCU为MKL25Z123VLK4芯片有多种低功耗工作模式,为保持设备实时监测,设备报警及时准确,选用超低功耗(VLPRMode)模式。系统上电,成功初始化,进入VLPRMode模式,读取AD数据,QS用于判断是否发现心率信号,当QS为TRUE时为真,开始进行心率计算,将计算结果与设定阈值比较,超出阈值范围,发送警报信息。心率数值正常,将数值同时发送至OLED屏显示和云平台储存,若设备异常,则根据实际情况在发送报警信息至OLED屏显示和云平台储存。流程如图6。
图6 监测终端程序流程
上位机终端为Android设备(平板或手机等)。以JAVA程序语言开发系统APP,交互界面采用Android平台自带用户界面(user interface,UI)组件设计,服务器采用SQL+SOCKET实现,利用SQLite数据库实现数据储存,结合SOCKET完成网络通信[12,13]。利用Eclipse软件中Bin目录中编译生成的APK文件可直接安装在Android手机或平板上,相比Z-Wave、蓝牙、ZigBee等无线通信方式,系统应用GPRS+云平台通信技术,减少了时间、空间、环境的限制,且具备大量数据传输和储存能力等优点,用户直接通过APP交互界面监测,方便快捷。
应用Android平台自带UI组件设计交互界面,包括登陆界面和监测界面,监测界面显示当前心率数值,心率异常时会通过弹窗模式提醒用户查看数据,用户可通过查看历史按钮查询历史数据,历史数据以固定时钟周期记录现场心率数值并在云平台储存,同时异常数据单独显示,方便用户查询。当设备故障时仍会以弹窗形式提醒用户并显示故障原因,故障原因包括通信异常、账号异常、下位机电量异常等,方便用户及时处理。监测界面设有设置按钮,可根据实际情况更改报警阈值,Android端监测界面如图7所示。
图7 Android端监测界面
APP开启并登陆后,实时访问云平台获取心率数据,当有报警信号时以弹窗模式提醒用户查看数据,当数据正常时在APP监测界面显示当前心率数值,若有阈值改变操作,则发送指令到云平台,方便下位机获取。
5 系统测试
系统设计完成后,监测终端部分硬件实际尺寸为21 mm×17 mm×6 mm,采用M3500A型六位半数字万用表实测平均功耗约16 mA。并分别对监测终端和Android端进行测试。
6 结 论
1)信号获取和Android终端按键测试:由于心率传感器输出为模拟信号,可准确反映心率情况,实验时将该模拟信号引出接到示波器,示波器能准确反应心率信号。Android端APP登陆账号后,能正常显示心率值,阈值设置按钮和历史心率按钮均能正常工作。
2)耗电测试:监测终端充满电后保持正常工作,能保证正常运行36 h以上,同时在低电量时,监测终端OLED屏幕电量格会显示为红色,Android端会以弹窗模式提醒监测终端电量不足。
3)通信故障测试:以关闭监测终端电源和关闭手机数据流量2种方式分别模拟Android端获取数据为空和无法访问云平台2种通信故障,Android端APP会一弹窗模式提醒通信故障。
4)账号异常测试:用两部手机重复登陆同一账号,前一部手机APP会弹窗显示账号异地登陆,并主动退出监测界面。
5)心率异常测试:为实验方便,设定心率高阈值为110次/min,选取成年实验人员穿戴实验设备做剧烈运动,当心率超过阈值时,监测终端OLED屏幕上指示灯报警,Android终端弹窗报警。
6)数据传输测试:选取实验人员,分别对其静息状态、慢走状态和慢跑状态平均心率进行测试,均能正常显示数据;为进行不同器件对比试验,选取已上市产品SOLGO监护手表进行同步对比试验,每隔30 s采集1次,期间实验人员在静息、慢走和慢跑状态随意切换,实验结果表明,同一时间检测出的心率值基本一致,心率误差范围±2次/min,心率改变时间误差范围2 s,这是由于当心率发生变化时,要经过2~6个脉搏周期才能准确测到,是信号检测和滤波方式的延时导致,并不影响系统正常工作。