一种心率监测系统的设计 [PDF全文]
(浙江科技学院 自动化与电气工程学院,杭州 310023)

老年人出现心率不稳定时,可能会有潜在的安全隐患。为更好地关注老年人的身体健康,设计了一种心率监测系统:由心率监测器、计算机、云数据库及移动终端等构成,心率监测器实现心率采集、自动报警等功能,将采集得到的相关数据传输给计算机,然后由计算机软件通过因特网存储至云数据库,供医疗人员查询、统计及分析,移动终端则可以主动查询心率监测器的工作数据。首先简要介绍系统的整体构成及硬件设计,给出并分析关键电路; 然后详细阐述计算机软件及云数据库的设计思路; 最后通过分析系统实际运行效果,验证系统的有效性。相较于现有同类产品,本系统功能上得到了进一步的提升。

Design of a heart rate monitoring system
ZHANG Jialong, WANG Yang, ZHANG Zhenyu
(School of Automation and Electrical Engineering, Zhejiang University of Science and Technology, Hangzhou 310023, Zhejiang, China)

In case the heart rate of the elderly is unstable, a potential safety hazard may occur. In order to pay more attention to the health of the elderly, a heart rate monitoring system is designed, which is composed of a heart rate monitor, a computer, a cloud database and a mobile terminal. The heart rate monitor can fulfill the functions of heart rate acquisition and automatic alarm, and transmit the collected data to the computer, which is subsequently stored in the cloud database by computer software, and accessible to medical staff for inquiry, statistics and analysis. Meanwhile, the working data of the heart rate monitor can be automatically inquired by the mobile terminal. Firstly, the overall structure and hardware design of the system are introduced, with the key circuits presented and analyzed. Secondly, the design concepts of the computer software and cloud database are expounded in detail. Finally, the effectiveness of the system is verified through the actual operating of the system. Compared with existing similar products, the function of the system has been further improved.

引言

近年来,随着人们生活水平的提高,中国正进入老龄化社会[1],老年人数量逐步增长。心脏疾病是在老年人群体中存在较多的一种典型病症,具有突发性、紧急性及高危性等特点[2-3]。当心脏工作不正常时,心率值也会随之发生改变,因此,为切实地关爱老年人的身体健康,有必要对老年人的心率变化进行有效监测。

通过查阅相关文献资料[4-8]了解到,目前绝大部分心率监测系统仅实现了简单的心率采集与显示等功能,实用价值有限。为此,笔者应用传感器、蓝牙、单片机,以及计算机软件与数据库等技术,设计了一种心率监测系统,不仅能实现心率采集及本地与远程主动报警等功能,还能将采集得到的相关数据传输给计算机,然后由计算机通过因特网存储至云端数据库,并生成数据动态变化曲线,在医疗人员分析患者病情时可作为重要的参考依据,相较于现有同类产品,功能上得到了进一步的完善和提升。

1 系统整体构成及硬件设计

系统整体上由心率监测器、计算机、云数据库及移动终端等构成,如图1所示。在实际使用时,老年人用户佩戴1个心率监测器,心率监测器按设定的工作周期定时采集用户的心率数据并保存,用户的监护人(比如老年人的子女)可用手机作为移动终端。心率监测器支持心率安全值范围设置,若当前测得的心率数据超出了设置值,则启动本地报警(灯光闪烁、马达振动)与远程通知(拨打监护人手机号码、发送报警短信到监护人手机号码)功能。若监护人想主动查询用户的当前心率数据,可通过移动终端发送特定格式的短信到心率监测器,心率监测器会将当前的心率值及其附加信息(是否超安全值范围)回复给移动终端。若要将心率监测器内业已保存的历史数据上传到云端,首先在心率监测器与计算机之间建立蓝牙连接,然后操作计算机软件,即可将相关数据通过因特网上传到云数据库进行存储。医疗人员可通过访问特定域名的网页,对上述数据进行远程查询、统计和分析,并可在线生成数据动态变化曲线图,查看方便、直观。

心率监测器硬件构成如图2所示,包括锂电池、电源电路、心率采集电路、时钟电路、EEPROM电路、GSM电路、报警电路、按键、蓝牙传输电路及单片机等。

图1 系统整体构成示意图<br/>Fig.1 Schematic diagram of the whole system

图1 系统整体构成示意图
Fig.1 Schematic diagram of the whole system

图2 心率监测器硬件构成示意图<br/>Fig.2 Schematic diagram of hardware composition for the heart rate monitor

图2 心率监测器硬件构成示意图
Fig.2 Schematic diagram of hardware composition for the heart rate monitor

心率监测器采用容量为3 000 mA·h的聚合物锂电池供电,电池额定电压为3.7~4.2 V,由于相关功能电路的额定工作电压均为3.3 V,因此设计了以ASM1117-3.3芯片为核心的电源电路,将3.7 V电压降到恒稳的3.3 V。

为获得准确的心率信号,基于光电反射原理设计出的心率采集电路如图3所示。选用的光电式心率传感器型号为SON1303[9],该芯片内部的LED光源发射出波长为570 nm的绿光,透过皮肤照射到用户的血管上,根据光电反射原理,不同的心率将使传感器内部的接收单元接收到不同的光强,进而输出不同的电压Vout,将Vout经滤波后送入四精密运放SON3130进行迟滞、比较等处理,得到数字信号HEART_OUT。为实现低功耗,还设计了电源控制电路,待机时,单片机的HEART引脚输出1,Q1截止,电路不工作; 要测量心率时,HEART引脚输出0,Q1导通,电路正常工作。将HEART_OUT送入到单片机的计数器引脚,由单片机程序进行运算处理,完成心率采集。

图3 心率采集电路原理图<br/>Fig.3 Schematic diagram of heart rate acquisition circuit

图3 心率采集电路原理图
Fig.3 Schematic diagram of heart rate acquisition circuit

为实现定时采集,并将采集到的心率值与对应的实时时间值相关联,特采用DS1302作为时钟电路,单片机开启定时器,周期性地读取DS1302输出的时间值,每到1个整点小时,采集1次心率。心率值与对应的时间值在单片机程序的控制下写入外部EEPROM(型号为AT24C08),一定时间段内的相关数据就能做到掉电保存不丢失。存储时,每1帧数据的格式为:心率值-对应时间值。其中,心率值为1 byte,对应时间值为4 byte(顺序为年、月、日、时,各为1 byte)。GSM电路采用SIM800L,插SIM卡使用,其作用主要是接收、发送短信息,以及拨打指定的电话号码。

图4 报警电路原理图<br/>Fig.4 Schematic diagram of alarm circuit

图4 报警电路原理图
Fig.4 Schematic diagram of alarm circuit

当测得的心率值超出设置值时,红色LED1亮起,同时马达B1振动,设计的报警电路如图4所示。

此外,系统还设计有3个按键,用于设置心率安全值范围。考虑到低功耗要求,蓝牙传输电路采用CC2540[10],单片机采用MSP430F169[11]。这2款芯片是TI(Texas Instruments)公司的产品,功耗非常低,可以满足系统使用的要求。

2 计算机软件设计

计算机软件设计在Microsoft Visual Studio 2010开发环境下用C#进行编程,同时结合SQL语句实现与网络数据库的信息交互[12-14]。按照功能模块划分,软件设计包括界面设计和功能设计2个方面。

2.1 界面设计

界面设计分为登录界面设计和主体界面设计。

图5 登录界面<br/>Fig.5 Login interface

图5 登录界面
Fig.5 Login interface

用户点击“注册新会员”或“忘记密码”时,软件会通过默认浏览器自动打开指定域名的网页,然后引导用户在线完成相应操作。用户注册成功后,可通过如图5所示的登陆界面,以用户名和密码方式进行登录[12],登录成功后进入主体界面。

主体界面如图6所示,该界面可分为控制栏(由Button控件构成)、心率数据表(由ListView控件构成)和记录查询区(由ListView控件构成)3部分。软件设计有事件驱动的数据采集、数据上传、记录查询和链接网页4个按钮。

图6 主体界面<br/>Fig.6 Main interface

图6 主体界面
Fig.6 Main interface

2.2 功能设计

软件的功能设计包括数据采集、数据上传、记录查询和链接网页4个部分。

图7 数据采集工作流程图<br/>Fig.7 Flowchart of data acquisition

图7 数据采集工作流程图
Fig.7 Flowchart of data acquisition

2.2.1 数据采集

计算机与心率监测器分别连接1个蓝牙传输电路模块,两者之间的数据传输采用蓝牙通信方式。数据采集功能的主要工作流程如图7所示,当用户点击“数据采集”按钮后,软件首先遍历串口,并通过BluetoothClient、BluetoothListener等类对2个蓝牙模块进行匹配[16]。然后,计算机发送握手信号给心率监测器,心率监测器回复应答信号,计算机收到此应答信号后,表明通信成功建立,软件弹出提示框,用户点击确定后,计算机即一次性地将心率监测器数据缓存区内的所有相关数据读取完毕。数据采集功能的主要工作流程如图7所示。

有必要说明的是,由于心率监测器的心率值及其对应的时间值是以十六进制格式存储的,为符合用户的查看习惯,计算机软件读取完毕后,需将这些数据转换为十进制格式,并进行分割和排序。最后,计算机将读取到的数据按时间整点顺序,以升序列于心率数据表内,同时“数据采集”按钮变为“停止”按钮,用户点击“停止”按钮,即可断开与心率监测器的连接。图8所示为某次数据采集的实测展示。

图8 数据采集实测展示<br/>Fig.8 Display of measured heart rate data

图8 数据采集实测展示
Fig.8 Display of measured heart rate data

图9 数据上传流程图<br/>Fig.9 Flowchart of data upload

图9 数据上传流程图
Fig.9 Flowchart of data upload

2.2.2 数据上传

数据上传工作流程如图9所示,当用户点击“数据上传”按钮后,软件首先按用户名和密码方式访问云端SQL数据库并建立连接[17],然后判断是否存在存储数据的heartrate表,若不存在,则创建表格并插入相应心率数据; 若已存在,则直接将分帧处理后的数据通过因特网上传到数据库中,上传完毕后给出相应的消息框提示。图 10所示为实测数据在数据库内的存储格式,例如在2016年7月12日,0点时采集到该用户的心率是70,1点时采集到的是68,等等。

图 10 数据存储示意图<br/>Fig.10 Schematic diagram of data storage

图 10 数据存储示意图
Fig.10 Schematic diagram of data storage

2.2.3 记录查询、链接网页

用户要查看历史心率数据时,软件支持2种方式:

2.2.3.1 点击“记录查询” 在弹出的月历(MonthCalenda控件)中选择特定日期后,软件会以列表形式在记录查询区显示历史心率值及其对应时间信息。图 11所示为某次实际查询结果展示。

2.2.3.2 点击“链接网页” 软件通过默认浏览器自动打开指定域名的网页,用户通过用户名和密码方式成功登录后,即可在线查询心率动态变化曲线图,相较于“记录查询”,“链接网页”查看更为直接。为生成此曲线图,软件首先利用直译式脚本语言JavaScript在HTML网页中增加动态功能[18],然后通过JS调用类库,根据要产生曲线图的数据源,合理设定横、纵坐标轴的数据标签,接着将相关数据标定到曲线图面积区域内的相应位置,最后实现各点间的连线,完成曲线图的绘制。用户可根据需要查看选定时间内的心率动态变化曲线图。图 12所示为2016年7月12日某用户的实测曲线图。

图 11 记录查询结果展示<br/>Fig.11 Result of historic record inquiry

图 11 记录查询结果展示
Fig.11 Result of historic record inquiry

图 12 实测心率变化曲线<br/>Fig.12 Measured change curve of heart rates

图 12 实测心率变化曲线
Fig.12 Measured change curve of heart rates

3 云数据库设计

为实现所有数据本地与网络共享,以便于数据的存储与异地查询,系统采用云端SQL数据库作为系统关键数据的存储后台,通过已注册的用户名和密码(即SQL Server身份验证方式)对云服务器进行访问。考虑到数据库的安全性、可拓展性及可自行维护等要求,按照典型的三层结构的系统架构,结合网页的后台设定,采用新奥尔良(New Orleans)方法进行设计。首先进行需求分析,分析计算机软件与相关网页的业务和数据处理需求; 其次进行概要设计,设计数据库的部分E-R模型图,确认需求信息的正确、完整; 最后进行详细的逻辑设计、数据库物理设计,从而完成数据库的设计。

在数据库设计中,首先确定数据库要管理的关键实体,标识每个实体的属性,建立实体与实体之间的关系,然后将各实体转换为对应的表,将各属性转换为各表对应的列,即创建实体联系图,最终建立起存储各类不同数据的数据表。例如,pa_member对应实体为存储的用户名、密码与邮箱地址等基本信息,heartrate对应实体为存储的不同用户、不同时间的心率数据。通过T-SQL语句将从心率监测器获得的相关数据写入heartrate表中,在进行heartrate表内设计时,使每个用户、每天24 h对应1条记录,将24个心率数据依次存储于1个单元格内。这种设计方式一方面符合网页生成曲线图的要求,另一方面是占用更少的存储空间和降低冗余度。

4 测试结果

为验证系统的有效性,对心率传感器进行了测试,方法是对比脉搏计数和传感器测量结果。

图 13 心率传感器实测波形图<br/>Fig.13 Measured waveform of heart rate sensor

图 13 心率传感器实测波形图
Fig.13 Measured waveform of heart rate sensor

某次人工计数心率为72,在对脉搏人工计数的同时用示波器观察传感器的输出波形,图 13所示是此过程中传感器输出信号的原始波形,图中测量时间为500 ms×12=6 s,脉冲个数为7,则可知心率为7/6×60=70,误差为(72-70)/(72)×100%=2.78%。经多次重复测量和比较,发现误差未超过3%,表明传感器测量较为准确。

将心率安全值范围人为地设为70~75(为便于验证功能),经多次测试,当心率低于70或高于75时,本地报警与远程通知功能均正常:红色LED1亮起,马达B1振动,同时绑定号码的移动终端能收到电话和短信提示。此外,数据采集、数据上传及心率曲线生成等软件功能也全部工作正常,这表明系统工作准确、有效。

文中给出的相关展示图均为实测所得。

5 结 论

笔者结合当前社会老龄化发展趋势,从关注老年人身体健康的实际需求出发,设计的心率监测系统成功地实现了心率采集、报警及远程数据处理等功能,相较于现有同类产品,功能上得到了进一步的提升,因而具有一定应用价值。本系统涉及的核心技术可推广应用到其他相关领域,可作为相关方案设计的参考。

参考文献