葉華山,徐士博,張連勝,金亞峰,文 峰
(湖北科技學(xué)院 生物醫(yī)學(xué)工程學(xué)院,湖北 咸寧 437100)
基于Qt的家庭健康監(jiān)護系統(tǒng)的設(shè)計與實現(xiàn)
葉華山,徐士博,張連勝,金亞峰,文 峰*
(湖北科技學(xué)院 生物醫(yī)學(xué)工程學(xué)院,湖北 咸寧 437100)
全自主設(shè)計與開發(fā)了一套基于Qt的家庭健康監(jiān)護系統(tǒng)。以Qt作為主開發(fā)框架,輔以MySQL數(shù)據(jù)庫、QCustomPlot、藍牙串口通信等作為技術(shù)支持,提供數(shù)據(jù)協(xié)議接口和擴展接口。在樹莓派一體機上實現(xiàn)了生理信號的采集、傳輸與顯示的功能,能采集與顯示到體溫數(shù)據(jù)和脈搏心率數(shù)據(jù),另外能夠播放MIT心電數(shù)據(jù)庫文件。完成了系統(tǒng)的軟件平臺和處理系統(tǒng)的開發(fā),設(shè)計了部分硬件采集模塊,可實現(xiàn)家庭健康監(jiān)護的功能。
家庭健康監(jiān)護;Qt;QCustomPlot;樹莓派;藍牙;串口
人口老齡化和慢性病問題的日益嚴重,家庭健康開始成為人們關(guān)注的熱點。
基于Qt[1-5]的家庭健康監(jiān)護系統(tǒng)就是基于這樣一個現(xiàn)狀而產(chǎn)生的解決方案,家庭健康監(jiān)護系統(tǒng)通過下位機采集人體健康體征數(shù)據(jù)[6],然后通過藍牙模塊將數(shù)據(jù)傳輸給上位機[7]。實現(xiàn)了底層數(shù)據(jù)采集,數(shù)據(jù)傳輸校驗,上位機分析展示結(jié)果,主要提供對身體健康狀況相關(guān)的數(shù)據(jù)支持服務(wù)。
在監(jiān)護系統(tǒng)的主框架設(shè)計上,我們采用簡易的三層結(jié)構(gòu)。
(一)底層數(shù)據(jù)采集模塊
1. 硬件模塊設(shè)計
如圖1所示,底層硬件模塊目前包含有紅外溫度采集模塊,心率脈搏采集模塊,擴展模塊作為后期擴展接口。系統(tǒng)通過上述采集模塊將體征參數(shù)采集到,并經(jīng)由MCU根據(jù)定制的數(shù)據(jù)通信協(xié)議處理后,再通過藍牙發(fā)送模塊傳輸給樹莓派上位機載體,由載體上的對應(yīng)的藍牙接受模塊接收數(shù)據(jù),最后經(jīng)過數(shù)據(jù)協(xié)議的解析,將體征參數(shù)形象的顯示到GUI界面程序上。
硬件采集模塊這一部分,主要為整個平臺系統(tǒng)提供數(shù)據(jù)支持,目前做到了體表溫度采集和心率脈搏采集。同時系統(tǒng)預(yù)留了擴展模塊,如果有更多的數(shù)據(jù)接入,可以根據(jù)系統(tǒng)的相關(guān)數(shù)據(jù)協(xié)議標準,為系統(tǒng)提供更完善的數(shù)據(jù)支持。
圖1 硬件設(shè)計模塊
2. 通訊協(xié)議設(shè)計
上位機在和下位機通信過程中,需要一個通信協(xié)議,確保通信過程中數(shù)據(jù)的穩(wěn)定性和上位機數(shù)據(jù)解析過程中的正確性,設(shè)計如下:采集模塊將采集到的數(shù)據(jù)組織成一定格式然后以串口通信的方式傳輸給上位機,上位機解析時,以同樣的格式解析即可獲取相應(yīng)的體征數(shù)據(jù):包括體溫、心率、脈搏、心電圖等多種格式。
(二)服務(wù)器模塊
1. 服務(wù)器設(shè)計
服務(wù)器模塊主要負責(zé)采集到的體征數(shù)據(jù)的存儲,考慮到系統(tǒng)的高效性,選用了MySQL數(shù)據(jù)庫作為服務(wù)器核心數(shù)據(jù)服務(wù),而樹莓派作為一款搭載Linux系統(tǒng)的嵌入式卡片電腦,可以順利的運行MySQL服務(wù),為整個系統(tǒng)提供穩(wěn)定的數(shù)據(jù)服務(wù)支持[8]。
2. 樹莓派上位機界面模塊設(shè)計
界面模塊如下(如圖2),包括開始界面、信息錄入界面、設(shè)置界面等。
圖2 界面模塊
(三)上位機顯示模塊
1. 設(shè)備串口配置設(shè)計
因為不同設(shè)備串口信息不同,在啟動系統(tǒng)時,需要對串口進行一定的設(shè)置,Qt框架擁有便捷的工具類,能夠方便的設(shè)置串口配置信息,只有在配置好串口信息后,才能正確的拿到底層采集模塊為系統(tǒng)提供的家庭成員體征數(shù)據(jù),也能更好的保證數(shù)據(jù)的完整性。
2. 數(shù)據(jù)解析設(shè)計
數(shù)據(jù)解析過程,主要是通過上位機拿到串口數(shù)據(jù),然后根據(jù)系統(tǒng)設(shè)計的相關(guān)通信協(xié)議,分別將體溫數(shù)據(jù)、心率數(shù)據(jù)和脈搏數(shù)據(jù)解析出來,然后再進行數(shù)據(jù)存儲操作。在拿到串口數(shù)據(jù)后,將數(shù)據(jù)存入myData數(shù)據(jù)類對象中,然后進行數(shù)據(jù)庫存儲和界面顯示操作。
3. QCustomPlot數(shù)據(jù)圖表展示功能設(shè)計
需要將QcustomPlot集成到Qt項目環(huán)境中,具體配置方法如下:
把qcustomplot.cpp和qcustomplot.h拷貝到工程目錄下,然后把這兩個文件引入工程項目即可;
由于QcustomPlot需要使用到打印相關(guān)功能,為Qt項目添加打印支持,在***.pro文件中添加QT += widgets printsupport
為了能在項目中直接使用Qcustomplot,在UI文件中添加一個Widget組件,然后將其提升為Qcustomplot組件。
在Qt中配置好相關(guān)環(huán)境后,可以實現(xiàn)Qcustomplot顯示體征數(shù)據(jù)圖表的功能。
1. 系統(tǒng)實物如圖3所示,包括硬件采集裝置、電源線網(wǎng)線數(shù)據(jù)線、處理設(shè)備和顯示設(shè)備。
圖3 系統(tǒng)實物圖
2. 界面與生理參數(shù)顯示如圖4所示。
a
b
家庭健康監(jiān)護系統(tǒng)的設(shè)計重點在于家庭成員的體征數(shù)據(jù)解析和展示,在底層數(shù)據(jù)采集和接入過程中,系統(tǒng)遇到了數(shù)據(jù)采集誤差和數(shù)據(jù)處理不及時的問題,后來重新架構(gòu)了系統(tǒng)框架,采用三層架構(gòu)的模式,弱化了底層數(shù)據(jù)的采集,只要能提供體征數(shù)據(jù),并依據(jù)相應(yīng)數(shù)據(jù)協(xié)議傳輸給上位機平臺,系統(tǒng)便能對數(shù)據(jù)進行校驗解析。
在系統(tǒng)功能完成過程中,本文查閱了各類開源庫的使用方法,并在本文中做了相關(guān)使用介紹,具體的工作總結(jié)有:對系統(tǒng)框架做出了整體的設(shè)計;數(shù)據(jù)傳輸協(xié)議的定制;MySQL 數(shù)據(jù)庫服務(wù)器的搭建;QCustomplot在Qt框架中的集成;QtGUI程序采用C++多線程編程,保證了數(shù)據(jù)的有效解析。
由于本文能力和精力所限,本系統(tǒng)還有許多不足之處,需要在以后的工作中加以改進還完善:
系統(tǒng)重點放在了上層軟件的搭建,弱化了底層硬件的設(shè)計,底層硬件只是作為一個數(shù)據(jù)接入的媒介;系統(tǒng)整體架構(gòu)不夠完善,數(shù)據(jù)實時性有待提高,由于心電數(shù)據(jù)暫時無法從底層設(shè)備采集,目前只設(shè)計了對心電數(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)護系統(tǒng)的研究與設(shè)計[D]. 廣州:華南理工大學(xué),2012.
[7]金純,許光辰,孫睿.藍牙技術(shù)[M]. 北京:電子工業(yè)出版社,2001.
[8] 威廉斯,塔黑戈爾賈爾.學(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