基于Android平台的健康物联网网关系统的设计与实现

关凯1,吴水才1,黄智生2

1.北京工业大学生命科学与生物工程学院,北京 100124;2.荷兰阿姆斯特丹自由大学计算机学院,荷兰 阿姆斯特丹 1081HV

[摘 要]目的 设计一种基于Android平台的健康物联网网关系统,使之可通过无线蓝牙方式获取心电数据,并在其界面上显示心电波形和心率信息,进而通过TCP协议将心率信息传输给PC端服务器。方法 以ARM Cortex-A9开发板作为Android网关开发平台,结合蓝牙心电传感器和PC端服务器,完成心电信号的采集、分析和远程传输功能。网关系统硬件由主控芯片、蓝牙、Wi-Fi、存储等模块组成,软件相关功能通过在Eclipse IDE下开发Android项目实现,PC端服务器软件利用JAVA进行设计。结果 该网关系统可从蓝牙心电传感器获得单导联心电信号,并将相应的心电波形显示在其界面上,进而可通过差分阈值法计算得到实时心率后,将心率信息发送给PC端服务器。结论 基于Android平台的健康物联网网关系统操作简便,功能易于拓展。实际测试结果表明,该网关系统运行稳定,可实时显示心电波形,能够准确测量心率信息,具有一定的实用价值。

[关键词]Android平台;健康物联网;网关系统;心电信号;蓝牙技术

在人口老龄化问题突出的现代社会,生活节奏的加快使得人们照顾老人的时间和精力都大为减少。受医院的监护条件以及老人和慢性病患者经济、时间条件等因素所限,目前针对老人和慢性病患者群体的监护覆盖面不足,使得该群体无法及时预防心血管疾病,也无法使患者在突发情况下得到及时救治。因此,实施老人健康监护和远程医疗的必要性日趋突出[1-3]

当前,健康物联网产业发展迅速,但是针对远程医疗这一产业的相关标准和规范尚未出台,专门应用于医疗领域的网关产品也尚未出炉,市场上出现的绝大多数网关产品均是针对智能家居控制和环境监测设计的,而针对健康监护和远程医疗的家庭网关产品还没有出现。本研究在智能家居网关设计方案的基础上,设计并实现了一种基于Android平台的健康物联网网关系统,该网关系统能够结合生理信号采集前端,通过无线蓝牙技术获取人体生理信号,完成人体生理参数的实时监护和心率等生命信息的远程传输,具有良好的应用价值,报道如下。

1 系统设计

整个系统分为硬件和软件两部分,硬件部分由穿戴式信号采集节点、健康物联网网关以及远程监控服务器3部分组成;软件设计基于Android操作系统,在Eclipse集成开发环境下开发实现。

1.1 硬件设计

健康物联网网关系统采用基于嵌入式技术的方式实现,网关系统硬件结构框图,见图1。其中,穿戴式信号采集设备采用山东华科电子HKD_10L型蓝牙心电传感器,用于采集人体单导联心电信号;健康物联网网关以ARM Cortex-A9作为中央处理器,并拓展蓝牙、WiFi、存储以及宽带和HDMI数字电视接口模块,用于实现数据接收、分析和上传功能;远程服务器以PC机作为载体接收数据[4-9]

图1 健康物联网网关系统硬件结构框图

1.2 软件开发系统选择

Android操作系统主要由Linux内核、中间件、用户界面和应用软件组成,主要应用于手机和平板电脑等移动终端。最近几年,Android系统也逐渐应用于数字电视、机顶盒、智能路由器和终端医疗设备。本研究基于Android系统对健康物联网网关系统进行设计,既能充分利用现有的技术优势,又能够使网关系统与广泛应用于家庭中的其他Android设备进行连接和通信。

1.3 软件设计与实现

健康物联网网关系统的软件是在Eclipse集成开发环境下实现的,编程语言为JAVA,整个软件设计充分利用了Android系统所依赖的Linux内核提供的蓝牙、WiFi等硬件驱动。软件主要分为3个功能模块,即病历建立界面、蓝牙连接模块和心电监护模块。系统软件结构框图,见图2。

图2 健康物联网网关系统软件结构框图

1.3.1 病历建立界面

在该界面可以进行病历的建立,用户可在页面上填写个人信息,当点击“建立病历”按钮时,系统会在外部拓展的SD卡中建立HomeHealth文件夹,并以用户的名字命名,建立相应的病历文档。该界面中还设计了两个分别转向蓝牙连接界面和心电监护界面的按钮,方便用户进行转换。

1.3.2 蓝牙连接模块

蓝牙连接模块主要用于连接网关与蓝牙心电传感器设备。Android平台提供了蓝牙应用程序接口(Application Programming Interface,API),可实现蓝牙设备之间的通信。网关系统与蓝牙心电传感器的通信主要包括4个步骤:开启蓝牙设备、搜索周边设备、连接蓝牙心电传感器和数据传输。

在Android系统中,蓝牙API中的BluetoothServerSocket和BluetoothSocket类可以实现Socket通信。本研究以蓝牙心电传感器作为服务端,网关作为客户端。服务端设备启动后,便开始监听外来的请求,当监听到网关的连接请求后便会提供一个连接上的BluetoothServerSocket给客户端。此时网关可以从BluetoothServerSocket得到BluetoothSocket,服务端便开始不断地向网关进行数据传输[10]

蓝牙设备之间建立服务套接字和监听连接的基本步骤为:① 通过调用createRfcommSocketToServiceRecord (MY_UUID)方法获取BluetoothServerSocket对象,其中MY_UUID为客户端连接的标识;② 调用connect()方法向蓝牙心电设备发出请求,心电设备此时在不断地监听连接请求,当监听到请求时,便会返回一个连接上的蓝牙套接字BluetoothSocket,此时,网关蓝牙客户端便可以通过getInputStream()和getOutputStream()方法实现数据传输。

1.3.3 心电监护模块

该模块作为系统的主线程,主要用于监控各个按钮的状态,并对实时心率进行测定和显示。该模块需要实现数据接收、显示、保存和上传功能,笔者设计其在4个新线程中分别进行。

(1)心电数据的接收。在该线程中,蓝牙心电传感器在完成一次采样后,每接收到一次来自网关的数据传输请求,便会以数据帧的形式将心电数据发送给网关。心电传输的数据帧格式为帧头标识、控制字、BYTE 1、BYTE 2、…、BYTEn、校验和。

其中,帧头标识固定为0XF0,控制字为0XC0,校验和为CKSUM,由网关发送给心电传感器;心电传感器接收到命令后,发送帧头为0XF0,控制字为OXC0,心电数据为XLH XLL,校验和为CKSUM,即0XF0 0XC0 XLH XLL CKNUM形式的数据给网关,网关通过解析该命令,可以得到心电的实时数据,并能够将数据动态存储入长度为2的FIFO数组,以实时获取心电信号的一阶差分值,为主线程计算和心率信息获取做准备。

(2)心电数据的显示。该线程可通过调用canvas. drawLine()方法,以不断更新的FIFO数组的值作为两点连线的纵坐标,以两个时间轴上的点作为横坐标,在建立好的SurfaceView界面上绘制心电波形[11]。当心电波形画满整个界面时,该线程会更新整个画布,同时将数据横坐标移动到起点继续开始画图。

(3)心电数据的保存。该线程启动后,系统将在SD卡“HomeHealth”文件夹下建立名为“ECGData”的TXT心电数据文件,使用targetFile.length()方法找到文档的末尾,并调用write()方法将得到的心电数据不断添加到文件中。

(4)生理信号的传输。该线程通过建立套接字,以传输控制协议(Transmission Control Protocol,TCP)将心率信息传输给PC监控终端。要实现该线程,首先需要在PC端开发服务器监控,这主要通过JAVA编程来实现[12]。随后,开启服务器后,点击网关界面的发送数据按钮,会发现服务器端的监控窗口接收到了实时的心率信息。PC端服务器的软件流程和Android平台网关软件传输数据流程图,见图3。

图3 PC服务器和网关客户端软件通讯流程图

最后,应当说明的是,要在Android系统中使用SD卡、蓝牙、TCP套接字通信等功能,首先须在工程对应的AndroidManifest.xml中声明权限,具体代码如下:

2 心率算法设计

Android平台下网关的一个重要功能是对采集到的心电信号进行实时分析,检测心电的QRS波,并通过计算两个R波之间的间隔,获得心率信息。通过分析心电信号获取心率信息的方法很多,比如差分阈值法、模板匹配法以及小波变换法等[13-16]。由于嵌入式网关设备对实时性要求很高,因此使用差分阈值法来获取心率信息较好。

基于此,本研究采用基于绝对值的差分阈值法来检测并获取心率信息,实验结果表明,该方法在网关系统上运行良好。

该算法的具体步骤如下:① 实时截取心电信号最近5s的数据ECGArray;② 计算心电信号ECGArray的一阶前向差分,取绝对值,得到ECGDiff;③ 实时获取差分信号ECGDiff数组的前5个最大值,取其平均值,并取平均值的0.7倍作为阈值threshold;④ 比较ECGDiff数组同threshold的大小,如果ECGDiff的值大于threshold,则记下其在ECGDiff数组中的位置,即标记第一个R波位置Rlocation1;当出现第二个R波时,将该位置记为Rlocation2;如此循环,在第三个R波的位置再放入Rlocation1;⑤ 计算RR间期,即Rlocation1与Rlocation2差的绝对值;⑥ 计算心率。

为了保证R波检测的准确性,当检测到一个R波后,系统会自动将待检测数组时延0.2 ms,即忽略检测到的R波之后0.2 ms的数据,防止因误检带来的误差。

3 系统测试

健康物联网网关系统的设计基于Android平台,因此,除了文中使用的嵌入式开发平台以外,该系统还可以运行在任何不低于Android 4.0.3版本的智能手机和终端设备上。图4显示的是实验采集到的心电信号和心率信息,其中心电电压AD转换值可保存在SD卡的HomeHeatth文件夹,PC服务器端窗口显示实时采集到的心率信息。

图4 网关系统显示出的心电信号波形和心率信息图

4 总结

本研究设计了一个基于Android平台的健康物联网网关系统,并对该系统的各部分功能及设计方法进行了详细介绍。该网关系统可通过蓝牙协议接收来自蓝牙心电传感器的数据,并以TCP套接字的方式将心率等信息传输给远程监护的PC服务器。该网关系统在完成数据传输的同时,还可以实时检测心率,完成对人体心电信号的监护。实验结果表明,该系统运行稳定,下一步将通过进一步拓展和完善其功能,将其用于家庭和社区对老人和慢性病患者的远程监护系统中。

[参考文献]

[1] Bacchillone T,Donati M,Saponara S,et al.A flexible home gateway system for telecare of patients affected by chronic heart failure[A].5thInternational Symposium on Medical Information & Communication Technology (ISMICT)[C].2011:139-142.

[2] Tung HY,Tsang KF,Tung HC,et al.Thedesign of dual radio ZigBee homecare gateway for remote patient monitoring[J].IEEE T Consum Electr,2013,59(4):756-764.

[3] Spinsante S,Gambi E.Remotehealth monitoring by OSGi technology and digital TV integration[J].IEEE T Consum Electr,2012,58(4):1434-1441.

[4] Mittek M,Carlson JD,Perez LC.Design and implementation of a low-cost embedded Linux gateway for smart home health monitoring[A].IEEE International Conference on Electro/ Information Technology (EIT),2014:485-490.

[5] 叶彬浩,梁俍,洪邦良,等.基于Android平台的心电监护仪设计[J].中国医学物理学杂志,2014,31(4):5058-5063.

[6] Chi H,Chow WH,Chui KT,et al.A remote moniotring patient Homecare Gateway supporting streaming vital sign monitoring[A].39thAnnual Conference of the IEEE,Industrial Electronics Society[C].2013:8415-8419.

[7] 蓝坤,张跃.基于Android的心电监护软件系统设计与实现[J].计算机工程与设计,2013,34(8):2951-2956.

[8] 刘锦锋,崔晓佳,王伟.面向Android机顶盒的家庭网关系统设计[J].电视技术,2014,38(14):45-53.

[9] 孙卓,高毅,李新国,等.基于智能电视机顶盒的下一代数字家庭网关设计[J].有线电视技术,2013,20(6):102-104.

[10] 熊狮,吴效明.基于Android系统的生理数据蓝牙传输技术[J].中国医学物理学杂志,2012,29(6):3801-3803.

[11] 李刚.疯狂Android讲义[M].2版.北京:电子工业出版社,2013: 394-398.

[12] 赵启朋.Android典型技术模块开发详解[M].北京:中国铁道出版社,2012:297-300.

[13] 姚欢,王剑刚.ECG信号QRS波群检测算法的进展[J].现代生物医学进展,2012,12(20):3988-3991.

[14] 石涛.基于Android系统智能手机的心电远程监护系统软件设计[D].北京:北京工业大学,2013.

[15] 高峰.基于Android系统的心电图分析软件设计[D].西安:西安电子科技大学,2014.

[16] 李丽,胡方明.基于小波变换的病灶心音信号识别[J].中国医疗设备,2013,28(2):9-12.

Design and Realization of the Health Networking Gateway Based on the Android System

GUAN Kai1, WU Shui-cai1, HUANG Zhi-sheng2
1.College of Life-science and Bio-engineering, Beijing University of Technology, Beijing 100124, China; 2. Department of Computer Science, VU University Amsterdam, 1081 HV Amsterdam, the Netherland

Abstract:Objective To design a health networking gateway based on the Android platform, which can obtain electrocardiogram (ECG) dataviaBluetooth technology, display the curves of ECG and the heart rate on its surface, and transmit the heart rate information to the server on PC through TCP protocol. Methods Using ARM Cortex-A9 development board as the development platform of the Android gateway, combined with the Bluetooth sensor of ECG and server on a PC, to complete the function of ECG collection, analysis, and remote transmission. The hardware of the gateway is made up by a controller unit, Bluetooth, Wi-Fi, storage devices and other modules. The software was developed in the Eclipse IDE as an Android project. The server on PC was developed as a JAVA project. Results The gateway obtained the ECG signals from the Bluetooth sensor of ECG and displayed the signals on its screen. After calculating the real-time heart rate by using differential threshold methods, the gateway sent the information about heart rate to the server of a PC. Conclusion The paper designed and realized both the hardware and the software of the health networking gateway based on an Android application program, which obtains ECG signals by Bluetooth and transmits the heart rate information to the remote server by TCP. The system of the IOT gateway is simple to operate and easy to be expanded. The test shows the gateway system operates stably. The curve of real-time ECG can display on the screen and the heart rate is accurate.

Key words:Android platform; health networking; gateway system; electrocardiogram; bluetooth technology

[中图分类号]R197.39;TP393.05

[文献标志码]A

doi:10.3969/j.issn.1674-1633.2016.01.008

[文章编号]1674-1633(2016)01-0035-04

收稿日期:2015-08-28

基金项目:北京工业大学第13届研究生科技基金项目(No. ykj-2014-10983)。

通讯作者:吴水才,教授。