周天祥 姚富光 王運運
摘要:根據(jù)人們對日常生活中體質(zhì)健康測試和檢查的重視程度越來越高的實際需求,設(shè)計了一套基于樹莓派的便捷式健康數(shù)據(jù)采集系統(tǒng)。系統(tǒng)應(yīng)用了C/C++編程語言、藍牙串口通信技術(shù)、MySQL數(shù)據(jù)庫技術(shù)、I2C總線通信技術(shù)、傳感器等技術(shù)作為支持,完成了上位機的設(shè)計、硬件電路的搭建、數(shù)據(jù)庫的搭建,實現(xiàn)了健康數(shù)據(jù)的采集、查詢、展示與存儲功能。經(jīng)測試,該系統(tǒng)滿足日常采集體溫和心率等基本數(shù)據(jù)的要求。
關(guān)鍵詞:健康數(shù)據(jù)采集;Qt;樹莓派;藍牙;數(shù)據(jù)庫
中圖分類號:TP36 ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)25-0013-02
Abstract: According to the actual demand that people pay more and more attention to the physical health test and inspection in daily life, a convenient health data collection system based on Raspberry Pi is designed. The system uses C/C++ programming language, Bluetooth serial communication technology, MySQL database technology, I2C bus communication technology, sensors and other technologies as support, completed the design of the host computer, the construction of the hardware circuit, the construction of the database, and realized the health data Collection, query, display and storage functions. After testing, the system meets the requirements for the daily collection of basic data such as body temperature and heart rate.
Key words: health data collection; Qt; Raspberry Pi; Bluetooth; database
1 背景
隨著人們生活水平和生活質(zhì)量的不斷提高和改善,健康這個話題已成為現(xiàn)代生活中的一個重要話題,并且人們生活中的體質(zhì)健康測試和檢查已經(jīng)成為一種自覺行為,但目前市場上的體質(zhì)健康測試和檢查的設(shè)備或終端對于服務(wù)家庭而言都具有一定的局限性,主要是由于市場上的體質(zhì)健康測試、檢查設(shè)備和終端都趨于大型化、固定化,缺乏移動的便捷性。而且在數(shù)據(jù)信息的搜集上也具有局限性,目前大多數(shù)的體測和體檢仍然沿用傳統(tǒng)的人工手寫記錄,效率低且數(shù)據(jù)不易存儲,出錯率高。
2 健康數(shù)據(jù)采集系統(tǒng)總體設(shè)計
在整體系統(tǒng)的框架設(shè)計上采用了底層數(shù)據(jù)采集模塊、上位機界面顯示模塊、后臺數(shù)據(jù)庫模塊組成的三層結(jié)構(gòu)。整個健康數(shù)據(jù)采集系統(tǒng)從硬件端到上位機端、從上位機到把數(shù)據(jù)保存到數(shù)據(jù)庫中的數(shù)據(jù)傳輸機制,利用了 I2C 協(xié)議及藍牙透傳,在整個系統(tǒng)中可實現(xiàn)了體溫數(shù)據(jù)、心率等人體健康數(shù)據(jù)的采集、傳輸、展示和存儲等功能。系統(tǒng)功能流程圖如圖1所示。
2.1 底層數(shù)據(jù)采集模塊
如圖2所示,底層硬件模塊目前包含MAX30205MAT體溫模塊、MAX30102心率模塊、HC-05藍牙傳輸模塊。系統(tǒng)通過上述體溫和心率采集模塊將數(shù)據(jù)采集到,并通過MCU根據(jù)I2C總線協(xié)議[1]來將數(shù)據(jù)的傳輸?shù)剿{牙發(fā)送模塊,再通過藍牙發(fā)送模塊,將數(shù)據(jù)傳輸給樹莓派上位機載體,再由載體上的藍牙接收模塊接收數(shù)據(jù)后,將數(shù)據(jù)實時的顯示到上位機UI界面上[2]。目前主要采集人體體溫數(shù)據(jù)和心率數(shù)據(jù),后期也可根據(jù)需求在MCU上進行相應(yīng)的增加其他健康數(shù)據(jù)采集模塊[3]。
2.2 藍牙通信設(shè)計
下位機上傳數(shù)據(jù)到上位機需要利用藍牙進行傳輸,此藍牙傳輸數(shù)據(jù)方式為透傳,使用的是藍牙的標準協(xié)議進行數(shù)據(jù)傳輸,在樹莓派進行開機時通過LX終端輸入藍牙連接命令將兩個藍牙設(shè)備進行連接,所以無須再自己進行藍牙協(xié)議的編寫。數(shù)據(jù)傳輸?shù)綐漭珊?,保存在樹莓派藍牙文件中,上位機只需通過讀取文件中的數(shù)據(jù)來將其顯示到界面上即可。
2.3 上位機界面顯示模塊
本健康數(shù)據(jù)采集系統(tǒng)界面利用Qt Creator軟件跨平臺開發(fā),采用C++編程語言進行編寫[4],實現(xiàn)了讀取樹莓派藍牙數(shù)據(jù)的上傳展示,并通過MySQL數(shù)據(jù)庫對信息進行實時存儲。上位機中體溫和脈搏均采用了觸發(fā)式的采集方式,這樣避免了受外界環(huán)境的影響,采集人體體溫時類似水銀溫度計一樣有一個采集過程才能使體溫數(shù)據(jù)趨于平穩(wěn)。 采集體溫數(shù)據(jù)時,溫度在設(shè)定范圍內(nèi)方可觸發(fā)傳感器模塊進行數(shù)據(jù)采集,否則均不可觸發(fā)傳感器模塊進行溫度采集。心率模塊則是自主地進行觸發(fā),當模塊檢測到有心率信號就會觸發(fā)模塊采集心率數(shù)據(jù)。界面模塊設(shè)計如圖3所示。
界面模塊包括開始界面、體溫數(shù)據(jù)顯示按鈕、心率數(shù)據(jù)顯示按鈕、系統(tǒng)實時時間顯示和退出按鈕。均是通過Qt Creator中Qlabel進行顯示,可以利用繼承調(diào)用相同的類來進行編寫,這樣也為后期增減顯示模塊提供了方便。數(shù)據(jù)的采集均是通過觸發(fā)的方式進行,大大降低了操作的難度。
3 后臺數(shù)據(jù)庫的模塊
此系統(tǒng)中將采集到的信息進行處理后保存至服務(wù)器的MySQL數(shù)據(jù)庫中。通過C++代碼已經(jīng)在上位機程序中設(shè)置好數(shù)據(jù)庫的相關(guān)參數(shù),只需在樹莓派中安裝MySQL數(shù)據(jù)庫[5],然后根據(jù)代碼中的相關(guān)參數(shù)建立相應(yīng)的數(shù)據(jù)庫即可。數(shù)據(jù)庫中總共包含系統(tǒng)時間、體溫數(shù)據(jù)、心率數(shù)據(jù)三個字段,采集到的數(shù)據(jù)將實時插入到數(shù)據(jù)庫中進行保存[6-7]。數(shù)據(jù)庫管理軟件為我們和物理數(shù)據(jù)庫之間提供了一個橋梁,開發(fā)人員不必了解物理數(shù)據(jù)庫中的構(gòu)造,而直接使用數(shù)據(jù)庫管理軟件就可以實現(xiàn)數(shù)據(jù)的存儲和增刪改查[8]。
數(shù)據(jù)庫結(jié)構(gòu)和內(nèi)容如圖4所示。
4 測試與結(jié)果
該系統(tǒng)的測試主要通過底層采集數(shù)據(jù)部分和上位機軟件能否正常地進行工作,采集到的數(shù)據(jù)能夠正確完整地存儲到本地 MySQL 數(shù)據(jù)庫中,并且能夠在數(shù)據(jù)庫中。將文件導(dǎo)出。經(jīng)測試,體溫數(shù)據(jù)與傳統(tǒng)的溫度計相比較:都會有一個逐漸上升的過程才能達到穩(wěn)定。傳感器比傳統(tǒng)溫度計測量體溫達到穩(wěn)定的時間更短。由于傳感器時電子元件,受環(huán)境溫度的影響,在不同環(huán)境下對準確率也有所影響。心率數(shù)據(jù)由于模塊采用的是紅外光進行測試,在不封閉的環(huán)境下,環(huán)境中的自然光會對其準確率有所影響。所以,該系統(tǒng)所采集的健康數(shù)據(jù)信息,對于日常生活健康檢測而言,有一定的參考價值,但不能完全用于醫(yī)學(xué)使用。
5 結(jié)束語
本文設(shè)計了一套基于樹莓派的嵌入式健康數(shù)據(jù)采集系統(tǒng),包含數(shù)據(jù)采集的下位機和數(shù)據(jù)傳輸管理的上位機。系統(tǒng)設(shè)計的重點在下位機的數(shù)據(jù)采集上,下位機采用自動觸發(fā)式進行采集,利用藍牙協(xié)議可實時將健康數(shù)據(jù)傳輸?shù)缴衔粰C顯示和后臺數(shù)據(jù)庫中。上位機上使用C++語言采用了多線程編程,保證了數(shù)據(jù)的實時有效性。
參考文獻:
[1] 知乎. I2C協(xié)議[EB/OL].[2019-12-20].https://zhuanlan.zhihu.com/p/26579936.
[2] 葉華山. 基于Qt的家庭健康監(jiān)護系統(tǒng)的設(shè)計與實現(xiàn)[D]. 中國知網(wǎng), 2016(10): 12-36.
[3] 周嘉坤. 基于STM32的個人健康和環(huán)境數(shù)據(jù)采集器設(shè)計與實現(xiàn)[Z]. 2015(2): 11-4.
[4] 曾繁貳, 鐘清華, 張靜萌, 等. 移動健康監(jiān)護系統(tǒng)[J]. 微計算機信息, 2011, 27(7): 149-151.
[5] 陸偉, 郭陽明. 數(shù)據(jù)庫系統(tǒng):設(shè)計與應(yīng)用[M]. 西安: 西北工業(yè)大學(xué)出版社, 2010: 4.
[6] 陳巖. 基于樹莓派的溫度采集存儲顯示系統(tǒng)[D]. 中國知網(wǎng), 2015(6): 1.
[7] 雷星月. 移動個人健康系統(tǒng)的設(shè)計與實現(xiàn)[D]. 廈門: 廈門大學(xué), 2015.
[8] 宋志揚. 基于樹莓派的溫室大棚監(jiān)控系統(tǒng)設(shè)計[J]. 電腦知識與技術(shù), 2019, 15(6): 205-206.
【通聯(lián)編輯:謝媛媛】