基于北斗的远程老人健康监护系统设计
2018-06-21杜雅宁李国洪王喜斌
杜雅宁, 李国洪, 王喜斌
(1. 河北工业大学 电子信息工程学院, 天津 300400; 2. 北华航天工业学院 电子与控制工程学院, 河北 廊坊 065000)
0 引 言
随着我国航天技术的发展, 北斗系统已经进入全球组网阶段, 在道路交通管理、 铁路智能交通、 海运、 航空运输等领域广泛应用. 根据世界卫生组织统计, 心血管疾病已经成为全球第一大死因[1], 老年人更是心血管疾病易发人群. 但是随着社会压力与日俱增, 子女既要工作又要照顾父母, 经常倍感分身乏术, 再者, 我国医疗服务资源有限, 许多病人因为不能及时就医而病情恶化. 如何令子女兼顾拼搏事业与监护父母, 成为新时代的一大挑战. 市面上常用于检测生理指标的设备体积庞大, 佩戴不方便, 不能应用于日常实时监护, 且造价昂贵. 基于开源软件的开发应用已经覆盖了各行各业以及一些模拟应用中, 如玻璃熔窑模拟[2]中. 监控系统不止应用于安防领域, 在车载安全监控系统[3]、 远程动态实时心电信号监测系统[4]中也有所应用. 基于STM32系列微处理器的应用不限于电子开发, 在检测领域也有所应用, 如基于STM32的磁检测系统和扫描检测算法[5].
本文设计了一套基于北斗的远程老人健康监护系统. 区别于市面上使用的GPS定位技术, 使用北斗模块对老年人实时定位. 通过光电传感器获取老人心率及体温, 安卓智能终端将获取的健康数据及位置信息显示在子女端app健康监测界面, 当老人心率、 体温超出正常范围, 可及时告知监护人, 实现远程监护. 通过此系统, 使得子女即使不在老人身边, 也能及时了解他们的位置及健康情况.
1 系统组成
远程监护系统由3部分组成: 分别为检测定位终端、 系统服务器和监护端软件. 检测定位终端由老人及有监护需求的人员配备, 智能软件终端由子女或其他监护人使用. 系统整体框架如图 1 所示.
图 1 系统整体框架Fig.1 Overall frame of the system
检测定位终端由北斗定位模块、 生理参数检测模块、 移动通信模块组成, 通过生理参数检测模块获取生理参数, 北斗定位模块获取定位信息, 二者通过移动通信网络传送到服务器, 具有生理参数检测及定位功能.
系统服务器接收检测定位终端发送来的生理参数及定位信息并处理、 存储, 为监护端提供生理数据及位置信息, 系统服务器里有根据需求做好的数据库, 当生理参数数据和定位信息根据地址发送到服务器后由数据库来存储数据.
监护端对检测定位终端实施远程监护, 具有远程实时性. 通过有效的互联网资源和合理的软件构架得以实现. 本文对应的自主研发的Android控制端APP[7]采用的是 C/S 构架, 即客户端 /服务器构架, 当客户端发出请求后, 服务器要做出响应并给出参数采集或定位功能回复.
2 检测定位终端
图 2 检测定位终端结构图Fig.2 Chart of detection and location terminal
检测定位终端由5个功能模块组成: 北斗定位模块、 心率检测模块、 体温检测模块、 通信模块以及主控单元模块. 检测定位终端结构如图 2 所示.
心率检测模块获取心率信号波形, 通过主控单元的ADC转换成数字信号并计算心率值, 然后将心率值保存到数据寄存器, 体温采集模块输出为数字量, 通过主控芯片的IIC进行接收并存储, 北斗定位模块主要实现定位信息的采集, 北斗模块获取当前地理位置、 时间等信息并将其传送给主控单元(STM32处理器), 经过分析处理后, 借助于GPRS网络以数据形式将以上信息发送到服务器. 主控单元主程序流程如图 3 所示.
图 3 主控单元主流程图Fig.3 The flow chart of main control unit
2.1 心率采集模块
市面上应用最广的心率检测方式为心动电流测量和光电透射测量, 经过分析比较几种心率采集模块, 心动电流测量法需要多点监测, 佩戴复杂, 难以适用于正常生活中的实时检测, 本设计采用绿光光电透射测量, 使用AM2520贴片LED发光二极管作为绿光光源, 环境光传感器GA1A1S202WP作为接收绿光的光电传感器. 传感器获得光电信号, 经过滤波、 功率放大得到需要的心率波形,通过波形处理并结合心率算法得到心率值. 心率检测模块硬件电路如图 4 所示.
图 4 心率检测模块电路图Fig.4 The circuit design of heart rate detection
GA1A1S202WP环境光传感器在正常工作状态下, 输出电流约为30 μA, 使用电阻R35将小电流转化为便于处理的电压信号. 为减少光电测量法的误差, 如易受到其他临近电路引起的电压影响和噪声, 需要通过低通滤波器进行滤波, 低通滤波器由C41,C42,C43,R34组成, 其临界频率约为1.37 kHz, 即1.4 kHz 以上频率的波形不能通过, 可滤除电路中绝大部分的纹波, 同时减少输出波形毛刺. 滤波后需要通过MCP6001低功率运算放大器进行电压放大. 通过分压电阻R36,R37, 输出电压为电源电压的 1/2, 便于传感器的调试使用. GAOUT接入到STM32的PA1, 利用其内部ADC功能进行AD转换, 通过动态电压比较算法获得采样值, 计算出当前心率值.
2.2 体温采集模块
图 5 体温检测模块电路图Fig.5 The circuit design of body temperature detection
温度传感器包括数字温度传感器、 红外温度传感器等. 系统主控芯片STM32f103内部自带的数字温度传感器为DS18B20, 测量范围为-55 ℃~+125 ℃, 但是DS18B20在体温测量的一般温度环境下有±0.5 ℃的测量精度, 正常体温在37.5 ℃左右浮动不大, 而体温要求精准, 对于0.5 ℃的误差可能导致体温正常与异常判断出错, 因此 0.5 ℃ 的误差相对来说太大. 红外温度传感器原理是在不直接接触待测物体的情况下, 依据红外线的辐射所产生电压获得温度值. MLX90615是用于非接触式人体红外温度测量传感器. 检测系统检测人体体温采用非接触式人体红外温度测量传感器 MLX90615, 用于非接触式人体红外温度测量传感器. 对红外线灵敏的热电堆探测器芯片和信号处理ASSP(专用信号处理电路)被集成在同一个TO-46密封罐封装里[2]. 由于集成了低噪声放大器, 16 b ADC和强大的DSP单元, 使得高度集成和高精度的温度计得以实现[7], 读数精度为0.02 ℃. 体温检测模块硬件电路如图 5 所示.
2.3 北斗定位模块
比起其他的导航系统, 北斗的短报文通信服务具有较大的优势, 从而可以使中心控制系统与用户终端之间能直接进行数据通信[8]. 北斗定位模块由北斗天线和北斗信息接收模块组成. 北斗信息接收模块使用有源天线接收. 北斗定位模块采用和芯星通UM220-III模块, 具有北斗/GPS双系统高性能定位功能, 功耗低, 适用于本设计. 主控芯片通过串口中断的方式接收北斗定位模块串口输出的数据, 为&GNRMC语句, 是在 NMEA0183 协议的基础上扩展的语句. 主控芯片判断定位数据格式是否符合要求, 当符合格式规范再给数据添加用户标识, 继续下一步处理.
2.4 通信模块
通信模块应用GPRS数据传输网络进行数据传输. GPRS具有传输速率高、 资源利用率高、 接入时间短、 永远在线、 支持IP协议和X.25协议、 收费合理等技术优势. 本系统数据量较小, GPRS的传输速率已经足够满足系统需求. 常用的通信模块一般分为内带 TCP/IP 协议栈和不带有 TCP/IP 协议栈两类. 本文通信模块采用的是带有 TCP/IP 协议栈的M35 4频通信模块, 其体积小, 功耗低, 可以提供本设计要求的数据传输和短消息、 语音通话等功能. 由主控模块的输入输出串口与M35的TXD, RXD引脚进行数据传输. 主控单元通过AT指令对M35进行初始化, 并通过TCP/IP协议与系统服务器建立连接并传输数据.
3 系统服务器
生理信息监护系统[9]服务器主要完成数据处理和存储, 其中使用到ms sql server数据库. 数据处理包括对定位数据的取舍处理, 只保存本设计用到的数据. 下位机系统将数据通过网络传输到数据库中保存, 其中定位信息和心率、 体温数据以表的形式存储在数据库中. SIM卡号相当于每一个记录对应的ID, 用于区分不同监测对象. 系统数据库测试用表如表 1 所示.
表 1 系统数据库测试用表
4 监护端软件
图 6 监护端APP功能框图Fig.6 The APP function framework for monitor terminal
安卓智能终端可以是安卓智能手机也可以是手持平板等智能设备, 用户首先登录定位软件, 输入正确的 SIM卡号和密码才能登录系统, 之后会进入功能菜单选择, 用户可以根据需求选择, 然后进入界面去使用相应功能. 手机定位软件 UI设计框图, 即监护端APP功能框图如图 6 所示. 安卓手机终端上的检测定位监护软件是基于Java语言编写的, Java语言用于实现系统功能程序化、 界面化显示, 从而为用户提供可以操作的各种各样的应用功能. 常用的APP设计软件包括eclipse, Android Studio及AppCan等, 选用eclipse作为IDE(开发工具)对APP进行设计开发. 编译环境eclipse需要在最低版本要求的JDK安装成功的环境下进行安装运行. 电子地图调用百度地图SDK, 百度地图提供的Android定位SDK是为Android移动端应用提供的一套简单易用的LBS定位服务接口[10]. 定位界面如图 7 所示.
通过访问Webservice指定的URL访问数据库, 与服务器进行数据交互需要定义 json 对象, 将用户名和密码放入定义的 jsonParams中, jsonParams作为参数用于后续执行网络请求去判断用户名和密码是否与数据库中的一致, 如果一致则登录成功, 跳转到主界面, 否则通过Toast提示错误信息.
图 7 定位界面Fig.7 The positioning interface
图 8 实时监测界面Fig.8 The real time monitoring interface
主页面即功能菜单选择页面, 通过findViewById()与相应功能控件相对应, setOnClickListener用于监听事件, 当有点击按钮事件发生时, 通过Intent跳转到对应的子界面. 在实时定位功能界面, 使用OverlayOptions类对从数据库获取的数据信息在地图上的坐标点进行标注. 实时检测UI设计采用列表的形式进行直观的数据显示, 通过手动布局, 并由String字符串将数据显示在相应位置. 如点击检测按钮, 显示实时远程监测数据, 实时监测界面如图 8 所示.
历史查询界面主要是对过去某段时间的心率、 体温或位置数据进行还原, 涉及到时间的设置, 当程序中监听到时间设置事件时, 会抛出时间选择框来让用户进行时间范围的选择. 时间设置完成后, 当监听到查询按钮时, 会启动子线程, 子线程完成对数据的解析和分拣以后交给Hander对象, Hander对象作为队列型的处理对象, 通过Runnable接口更新UI.
图 9 心率波形Fig.9 The HR waveform
5 结果及结论
硬件测试平台为STM32F103ZET开发板, 通过串口PA1接收心率波形, 在接收端通过示波器观察心率波形如图 9 所示. 通过I2C接口读取体温检测结果, 根据体温补偿得到体温检测值.
为验证设计的合理性, 挑选出年龄在65岁以上的50位老年人作为测试样本, 每次每人采集1 min, 进行多次采集, 结果与符合国家标准的医疗设备监测仪数据对比, 挑选其中代表样本10组, 对心率、 体温的多组监测值与医疗设备测量结果对比如表 2, 表 3 所示.
表 2 心率监测值与医疗设备测量结果对比
表 3 体温监测值与医疗设备测量结果对比
测量得到的心率、 体温数据与医疗设备测量结果进行对比, 两者心率测量结果误差在±2 time/min范围内, 体温测量结果误差为在±0.1 ℃范围内, 由于人体单位时间内的体征差异, 误差在合理的波动范围. 测量对象为老年人, 体温较低属于正常现象.
实验测得, 当心率超出50~120 tim/min的范围或体温波动超出0.5 ℃时, APP健康中心显示界面的数据呈红色. 实验证明: 本设计的结果保证了对老年人健康参数心率和体温监测的精准度, 同时可实现远程监护.
在“互联网+”的时代背景下, 科技更新换代的速度越来越快, 电子技术与人们生活的联系愈加紧密, 人人入网, 人人连接的时代已经到来, 智慧城市的实现指日可待. 老年人远程监护系统涉及到传感器技术、 无线传输技术以及物联网技术, 将监护人最关心的老年人身体状态实时检测并实时显示, 同时将具有我国自主知识产权的北斗卫星系统应用于智慧城市建设[11], 提供精准安全的定位服务, 使得监护人端可以得到可靠的位置信息. 通过测试, 可以得到被监护人的心率、 体温等数据, 并可以在生理参数出现异常时远程报警. 系统实现了远程监护, 远程报警的功能, 为智慧养老系统提供了可行性参考, 具有一定的实用性.
参考文献:
[1] Mendis S, Armstrong T, Bettcher D, et al. Global status report on noncommunicable diseases 2014[M]. Geneva: World Health Organization, 2014.
[2] 陈淑勇, 陶天训, 马立云, 等. 开源软件在玻璃熔窑模拟中的应用[J]. 燕山大学学报, 2017, (4): 343-348.
Chen Shuyong, Tao Tianxun, Ma Liyun, et al. Application of open-source software in glass furnace simulation[J]. Journal of Yanshan University, 2017, (4): 343-348. (in Chinese)
[3] 秦斌伟, 曹雄, 闻利群, 等. 一种新型车载安全监控系统设计[J]. 测试技术学报, 2017, 31(2): 137-142.
Qin Binwei, Cao Xiong, Wen Liqun, et al. A new design of vehicle safety monitor system[J]. Journal of Test and Measurement Technology, 2017, 31(2): 137-142. (in Chinese)
[4] 徐磊, 贾孟孟, 李美兰, 等. 远程动态实时心电信号监测系统设计[J]. 测试技术学报, 2017, 31(5): 428-433.
Xu Lei, Jia Mengmeng, Li Meilan, et al. Design of remote dynamic real-time ECG signal monitoring system[J]. Journal of Test and Measurement Technology, 2017, 31(5): 428-433. (in Chinese)
[5] 侯化安, 易忠, 王三胜. 基于STM32的磁检测系统和扫描检测算法研究[J]. 测试技术学报, 2016, 30(4): 313-320.
Hou Hua’an, Yi Zhong, Wang Sansheng. Magnetic detection system based on MCU STM32 and the scanning detection algorithm research[J]. Journal of Test and Measurement Technology, 2016, 30(4): 313-320. (in Chinese)
[6] 梁美彦, 薛太林, 王昱, 等. 基于Android控制的智能六足机器人动力学建模及实现[J]. 测试技术学报, 2017, 31(6): 498-504.
Liang Meiyan, Xue Tailin, Wang Yu, et al. Dynamic modelling and implementation of intelligent hexapod bionic robot based on android system[J]. Journal of Test and Measurement Technology, 2017, 31(6): 498-504. (in Chinese)
[7] 明轩, 徐玉炎, 张瑞, 等. 基于 ZigBee 的穿戴式医疗监护系统节点的设计与实现[J]. 电子设计工程, 2014, 22(21): 81-83, 87.
Ming Xuan, Xu Yuyan, Zhang Rui, et al. Design and implementation of wearable medial monitoring system node based on ZigBee[J]. Electronic Design Engineering, 2014, 22(21): 81-83, 87. (in Chinese)
[8] 王莎, 伍萍辉, 王秀, 等. 基于北斗导航的联合收割机作业面积测量系统[J]. 农机化研究, 2015, (1): 39-42.
Wang Sha, Wu Pinghui, Wang Xiu, et al. A system of combine area measurement based on Beidou Navigation[J]. Journal of Agricultural Mechanization Research, 2015, (1): 39-42. (in Chinese)
[9] 刘云霞. 基于Android 平台的生理信息监护系统的设计[D]. 济南: 山东师范大学, 2016.
[10] 孙咸磊, 许捍卫. 基于移动设备的定位跟踪系统及其实现[J]. 地理空间信息, 2014, 12(2): 112-114.
Sun Xianlei, Xu Hanwei. Location tracking system based on mobile devices[J]. Geospatial Information, 2014, 12(2): 112-114. (in Chinese)
[11] 周田, 张辉, 张翔. 北斗卫星导航系统在智慧城市建设中的应用[J]. 全球定位系统, 2015, 40(1): 82-85.
Zhou Tian, Zhang Hui, Zhang Xiang. Application of beidou satellite navigation system in intelligent cities[J]. GNSS World of China, 2015, 40(1): 82-85. (in Chinese)