葉華山,徐士博,張連勝,金亞峰,文 峰
(湖北科技學(xué)院 生物醫(yī)學(xué)工程學(xué)院,湖北 咸寧 437100)
基于Qt的家庭健康監(jiān)護(hù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
葉華山,徐士博,張連勝,金亞峰,文 峰*
(湖北科技學(xué)院 生物醫(yī)學(xué)工程學(xué)院,湖北 咸寧 437100)
全自主設(shè)計(jì)與開發(fā)了一套基于Qt的家庭健康監(jiān)護(hù)系統(tǒng)。以Qt作為主開發(fā)框架,輔以MySQL數(shù)據(jù)庫(kù)、QCustomPlot、藍(lán)牙串口通信等作為技術(shù)支持,提供數(shù)據(jù)協(xié)議接口和擴(kuò)展接口。在樹莓派一體機(jī)上實(shí)現(xiàn)了生理信號(hào)的采集、傳輸與顯示的功能,能采集與顯示到體溫?cái)?shù)據(jù)和脈搏心率數(shù)據(jù),另外能夠播放MIT心電數(shù)據(jù)庫(kù)文件。完成了系統(tǒng)的軟件平臺(tái)和處理系統(tǒng)的開發(fā),設(shè)計(jì)了部分硬件采集模塊,可實(shí)現(xiàn)家庭健康監(jiān)護(hù)的功能。
家庭健康監(jiān)護(hù);Qt;QCustomPlot;樹莓派;藍(lán)牙;串口
人口老齡化和慢性病問(wèn)題的日益嚴(yán)重,家庭健康開始成為人們關(guān)注的熱點(diǎn)。
基于Qt[1-5]的家庭健康監(jiān)護(hù)系統(tǒng)就是基于這樣一個(gè)現(xiàn)狀而產(chǎn)生的解決方案,家庭健康監(jiān)護(hù)系統(tǒng)通過(guò)下位機(jī)采集人體健康體征數(shù)據(jù)[6],然后通過(guò)藍(lán)牙模塊將數(shù)據(jù)傳輸給上位機(jī)[7]。實(shí)現(xiàn)了底層數(shù)據(jù)采集,數(shù)據(jù)傳輸校驗(yàn),上位機(jī)分析展示結(jié)果,主要提供對(duì)身體健康狀況相關(guān)的數(shù)據(jù)支持服務(wù)。
在監(jiān)護(hù)系統(tǒng)的主框架設(shè)計(jì)上,我們采用簡(jiǎn)易的三層結(jié)構(gòu)。
(一)底層數(shù)據(jù)采集模塊
1. 硬件模塊設(shè)計(jì)
如圖1所示,底層硬件模塊目前包含有紅外溫度采集模塊,心率脈搏采集模塊,擴(kuò)展模塊作為后期擴(kuò)展接口。系統(tǒng)通過(guò)上述采集模塊將體征參數(shù)采集到,并經(jīng)由MCU根據(jù)定制的數(shù)據(jù)通信協(xié)議處理后,再通過(guò)藍(lán)牙發(fā)送模塊傳輸給樹莓派上位機(jī)載體,由載體上的對(duì)應(yīng)的藍(lán)牙接受模塊接收數(shù)據(jù),最后經(jīng)過(guò)數(shù)據(jù)協(xié)議的解析,將體征參數(shù)形象的顯示到GUI界面程序上。
硬件采集模塊這一部分,主要為整個(gè)平臺(tái)系統(tǒng)提供數(shù)據(jù)支持,目前做到了體表溫度采集和心率脈搏采集。同時(shí)系統(tǒng)預(yù)留了擴(kuò)展模塊,如果有更多的數(shù)據(jù)接入,可以根據(jù)系統(tǒng)的相關(guān)數(shù)據(jù)協(xié)議標(biāo)準(zhǔn),為系統(tǒng)提供更完善的數(shù)據(jù)支持。

圖1 硬件設(shè)計(jì)模塊
2. 通訊協(xié)議設(shè)計(jì)
上位機(jī)在和下位機(jī)通信過(guò)程中,需要一個(gè)通信協(xié)議,確保通信過(guò)程中數(shù)據(jù)的穩(wěn)定性和上位機(jī)數(shù)據(jù)解析過(guò)程中的正確性,設(shè)計(jì)如下:采集模塊將采集到的數(shù)據(jù)組織成一定格式然后以串口通信的方式傳輸給上位機(jī),上位機(jī)解析時(shí),以同樣的格式解析即可獲取相應(yīng)的體征數(shù)據(jù):包括體溫、心率、脈搏、心電圖等多種格式。
(二)服務(wù)器模塊
1. 服務(wù)器設(shè)計(jì)
服務(wù)器模塊主要負(fù)責(zé)采集到的體征數(shù)據(jù)的存儲(chǔ),考慮到系統(tǒng)的高效性,選用了MySQL數(shù)據(jù)庫(kù)作為服務(wù)器核心數(shù)據(jù)服務(wù),而樹莓派作為一款搭載Linux系統(tǒng)的嵌入式卡片電腦,可以順利的運(yùn)行MySQL服務(wù),為整個(gè)系統(tǒng)提供穩(wěn)定的數(shù)據(jù)服務(wù)支持[8]。
2. 樹莓派上位機(jī)界面模塊設(shè)計(jì)
界面模塊如下(如圖2),包括開始界面、信息錄入界面、設(shè)置界面等。

圖2 界面模塊
(三)上位機(jī)顯示模塊
1. 設(shè)備串口配置設(shè)計(jì)
因?yàn)椴煌O(shè)備串口信息不同,在啟動(dòng)系統(tǒng)時(shí),需要對(duì)串口進(jìn)行一定的設(shè)置,Qt框架擁有便捷的工具類,能夠方便的設(shè)置串口配置信息,只有在配置好串口信息后,才能正確的拿到底層采集模塊為系統(tǒng)提供的家庭成員體征數(shù)據(jù),也能更好的保證數(shù)據(jù)的完整性。
2. 數(shù)據(jù)解析設(shè)計(jì)
數(shù)據(jù)解析過(guò)程,主要是通過(guò)上位機(jī)拿到串口數(shù)據(jù),然后根據(jù)系統(tǒng)設(shè)計(jì)的相關(guān)通信協(xié)議,分別將體溫?cái)?shù)據(jù)、心率數(shù)據(jù)和脈搏數(shù)據(jù)解析出來(lái),然后再進(jìn)行數(shù)據(jù)存儲(chǔ)操作。在拿到串口數(shù)據(jù)后,將數(shù)據(jù)存入myData數(shù)據(jù)類對(duì)象中,然后進(jìn)行數(shù)據(jù)庫(kù)存儲(chǔ)和界面顯示操作。
3. QCustomPlot數(shù)據(jù)圖表展示功能設(shè)計(jì)
需要將QcustomPlot集成到Qt項(xiàng)目環(huán)境中,具體配置方法如下:
把qcustomplot.cpp和qcustomplot.h拷貝到工程目錄下,然后把這兩個(gè)文件引入工程項(xiàng)目即可;
由于QcustomPlot需要使用到打印相關(guān)功能,為Qt項(xiàng)目添加打印支持,在***.pro文件中添加QT += widgets printsupport
為了能在項(xiàng)目中直接使用Qcustomplot,在UI文件中添加一個(gè)Widget組件,然后將其提升為Qcustomplot組件。
在Qt中配置好相關(guān)環(huán)境后,可以實(shí)現(xiàn)Qcustomplot顯示體征數(shù)據(jù)圖表的功能。
1. 系統(tǒng)實(shí)物如圖3所示,包括硬件采集裝置、電源線網(wǎng)線數(shù)據(jù)線、處理設(shè)備和顯示設(shè)備。

圖3 系統(tǒng)實(shí)物圖
2. 界面與生理參數(shù)顯示如圖4所示。

a

b
家庭健康監(jiān)護(hù)系統(tǒng)的設(shè)計(jì)重點(diǎn)在于家庭成員的體征數(shù)據(jù)解析和展示,在底層數(shù)據(jù)采集和接入過(guò)程中,系統(tǒng)遇到了數(shù)據(jù)采集誤差和數(shù)據(jù)處理不及時(shí)的問(wèn)題,后來(lái)重新架構(gòu)了系統(tǒng)框架,采用三層架構(gòu)的模式,弱化了底層數(shù)據(jù)的采集,只要能提供體征數(shù)據(jù),并依據(jù)相應(yīng)數(shù)據(jù)協(xié)議傳輸給上位機(jī)平臺(tái),系統(tǒng)便能對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)解析。
在系統(tǒng)功能完成過(guò)程中,本文查閱了各類開源庫(kù)的使用方法,并在本文中做了相關(guān)使用介紹,具體的工作總結(jié)有:對(duì)系統(tǒng)框架做出了整體的設(shè)計(jì);數(shù)據(jù)傳輸協(xié)議的定制;MySQL 數(shù)據(jù)庫(kù)服務(wù)器的搭建;QCustomplot在Qt框架中的集成;QtGUI程序采用C++多線程編程,保證了數(shù)據(jù)的有效解析。
由于本文能力和精力所限,本系統(tǒng)還有許多不足之處,需要在以后的工作中加以改進(jìn)還完善:
系統(tǒng)重點(diǎn)放在了上層軟件的搭建,弱化了底層硬件的設(shè)計(jì),底層硬件只是作為一個(gè)數(shù)據(jù)接入的媒介;系統(tǒng)整體架構(gòu)不夠完善,數(shù)據(jù)實(shí)時(shí)性有待提高,由于心電數(shù)據(jù)暫時(shí)無(wú)法從底層設(shè)備采集,目前只設(shè)計(jì)了對(duì)心電數(shù)據(jù)的解析和展示。
[1] 霍亞飛,程梁.Qt 5編程入門[M]. 北京:北京航空航天大學(xué)出版社,2015.
[2]霍亞飛.Qt Creator快速入門[M]. 北京:北京航空航天大學(xué)出版社,2012.
[3]Jasmin Blanchette,Mark Summerfield.C++ GUI Qt 4編程.[M]. 第2版.北京:電子工業(yè)出版社,2011.
[4]蔡志明,盧傳富,李立夏.精通QT4編程.[M].第2版.北京:電子工業(yè)出版社,2011.
[5]吳迪.零基礎(chǔ)學(xué)Qt4編程[M]. 北京:北京航空航天大學(xué)出版社,2010.
[6]孫晶晶.面向家庭的健康監(jiān)護(hù)系統(tǒng)的研究與設(shè)計(jì)[D]. 廣州:華南理工大學(xué),2012.
[7]金純,許光辰,孫睿.藍(lán)牙技術(shù)[M]. 北京:電子工業(yè)出版社,2001.
[8] 威廉斯,塔黑戈?duì)栙Z爾.學(xué)習(xí)MySQL[M]. 南京:東南大學(xué)出版社,2007.
2095-4654(2016)12-0061-03
2016-10-28
*通訊作者:文峰(1983-),男,江西省高安市人,博士,湖北科技學(xué)院生物醫(yī)學(xué)工程學(xué)院講師,E-mail:466787449@qq.com。
R319.6
A
湖北科技學(xué)院學(xué)報(bào)2016年12期