叶华山,徐士博,张连胜,金亚峰,文 峰
(湖北科技学院 生物医学工程学院,湖北 咸宁 437100)
基于Qt的家庭健康监护系统的设计与实现
叶华山,徐士博,张连胜,金亚峰,文 峰*
(湖北科技学院 生物医学工程学院,湖北 咸宁 437100)
全自主设计与开发了一套基于Qt的家庭健康监护系统。以Qt作为主开发框架,辅以MySQL数据库、QCustomPlot、蓝牙串口通信等作为技术支持,提供数据协议接口和扩展接口。在树莓派一体机上实现了生理信号的采集、传输与显示的功能,能采集与显示到体温数据和脉搏心率数据,另外能够播放MIT心电数据库文件。完成了系统的软件平台和处理系统的开发,设计了部分硬件采集模块,可实现家庭健康监护的功能。
家庭健康监护;Qt;QCustomPlot;树莓派;蓝牙;串口
人口老龄化和慢性病问题的日益严重,家庭健康开始成为人们关注的热点。
基于Qt[1-5]的家庭健康监护系统就是基于这样一个现状而产生的解决方案,家庭健康监护系统通过下位机采集人体健康体征数据[6],然后通过蓝牙模块将数据传输给上位机[7]。实现了底层数据采集,数据传输校验,上位机分析展示结果,主要提供对身体健康状况相关的数据支持服务。
在监护系统的主框架设计上,我们采用简易的三层结构。
(一)底层数据采集模块
1. 硬件模块设计
如图1所示,底层硬件模块目前包含有红外温度采集模块,心率脉搏采集模块,扩展模块作为后期扩展接口。系统通过上述采集模块将体征参数采集到,并经由MCU根据定制的数据通信协议处理后,再通过蓝牙发送模块传输给树莓派上位机载体,由载体上的对应的蓝牙接受模块接收数据,最后经过数据协议的解析,将体征参数形象的显示到GUI界面程序上。
硬件采集模块这一部分,主要为整个平台系统提供数据支持,目前做到了体表温度采集和心率脉搏采集。同时系统预留了扩展模块,如果有更多的数据接入,可以根据系统的相关数据协议标准,为系统提供更完善的数据支持。
图1 硬件设计模块
2. 通讯协议设计
上位机在和下位机通信过程中,需要一个通信协议,确保通信过程中数据的稳定性和上位机数据解析过程中的正确性,设计如下:采集模块将采集到的数据组织成一定格式然后以串口通信的方式传输给上位机,上位机解析时,以同样的格式解析即可获取相应的体征数据:包括体温、心率、脉搏、心电图等多种格式。
(二)服务器模块
1. 服务器设计
服务器模块主要负责采集到的体征数据的存储,考虑到系统的高效性,选用了MySQL数据库作为服务器核心数据服务,而树莓派作为一款搭载Linux系统的嵌入式卡片电脑,可以顺利的运行MySQL服务,为整个系统提供稳定的数据服务支持[8]。
2. 树莓派上位机界面模块设计
界面模块如下(如图2),包括开始界面、信息录入界面、设置界面等。
图2 界面模块
(三)上位机显示模块
1. 设备串口配置设计
因为不同设备串口信息不同,在启动系统时,需要对串口进行一定的设置,Qt框架拥有便捷的工具类,能够方便的设置串口配置信息,只有在配置好串口信息后,才能正确的拿到底层采集模块为系统提供的家庭成员体征数据,也能更好的保证数据的完整性。
2. 数据解析设计
数据解析过程,主要是通过上位机拿到串口数据,然后根据系统设计的相关通信协议,分别将体温数据、心率数据和脉搏数据解析出来,然后再进行数据存储操作。在拿到串口数据后,将数据存入myData数据类对象中,然后进行数据库存储和界面显示操作。
3. QCustomPlot数据图表展示功能设计
需要将QcustomPlot集成到Qt项目环境中,具体配置方法如下:
把qcustomplot.cpp和qcustomplot.h拷贝到工程目录下,然后把这两个文件引入工程项目即可;
由于QcustomPlot需要使用到打印相关功能,为Qt项目添加打印支持,在***.pro文件中添加QT += widgets printsupport
为了能在项目中直接使用Qcustomplot,在UI文件中添加一个Widget组件,然后将其提升为Qcustomplot组件。
在Qt中配置好相关环境后,可以实现Qcustomplot显示体征数据图表的功能。
1. 系统实物如图3所示,包括硬件采集装置、电源线网线数据线、处理设备和显示设备。
图3 系统实物图
2. 界面与生理参数显示如图4所示。
a
b
家庭健康监护系统的设计重点在于家庭成员的体征数据解析和展示,在底层数据采集和接入过程中,系统遇到了数据采集误差和数据处理不及时的问题,后来重新架构了系统框架,采用三层架构的模式,弱化了底层数据的采集,只要能提供体征数据,并依据相应数据协议传输给上位机平台,系统便能对数据进行校验解析。
在系统功能完成过程中,本文查阅了各类开源库的使用方法,并在本文中做了相关使用介绍,具体的工作总结有:对系统框架做出了整体的设计;数据传输协议的定制;MySQL 数据库服务器的搭建;QCustomplot在Qt框架中的集成;QtGUI程序采用C++多线程编程,保证了数据的有效解析。
由于本文能力和精力所限,本系统还有许多不足之处,需要在以后的工作中加以改进还完善:
系统重点放在了上层软件的搭建,弱化了底层硬件的设计,底层硬件只是作为一个数据接入的媒介;系统整体架构不够完善,数据实时性有待提高,由于心电数据暂时无法从底层设备采集,目前只设计了对心电数据的解析和展示。
[1] 霍亚飞,程梁.Qt 5编程入门[M]. 北京:北京航空航天大学出版社,2015.
[2]霍亚飞.Qt Creator快速入门[M]. 北京:北京航空航天大学出版社,2012.
[3]Jasmin Blanchette,Mark Summerfield.C++ GUI Qt 4编程.[M]. 第2版.北京:电子工业出版社,2011.
[4]蔡志明,卢传富,李立夏.精通QT4编程.[M].第2版.北京:电子工业出版社,2011.
[5]吴迪.零基础学Qt4编程[M]. 北京:北京航空航天大学出版社,2010.
[6]孙晶晶.面向家庭的健康监护系统的研究与设计[D]. 广州:华南理工大学,2012.
[7]金纯,许光辰,孙睿.蓝牙技术[M]. 北京:电子工业出版社,2001.
[8] 威廉斯,塔黑戈尔贾尔.学习MySQL[M]. 南京:东南大学出版社,2007.
2095-4654(2016)12-0061-03
2016-10-28
*通讯作者:文峰(1983-),男,江西省高安市人,博士,湖北科技学院生物医学工程学院讲师,E-mail:466787449@qq.com。
R319.6
A