伍悅,熊俊俏
(武漢工程大學(xué)電氣信息學(xué)院,湖北 武漢 430205)
隨著經(jīng)濟(jì)發(fā)展和物質(zhì)生活水平的不斷提高,飲食結(jié)構(gòu)和飲食質(zhì)量的不斷改變,健康問題也成為了人們密切關(guān)注的問題[1]。近年來,以信息化、智能化為基礎(chǔ)的健康檢測智能終端應(yīng)運(yùn)而生。傳感器技術(shù)的發(fā)展也為智能醫(yī)療提供了更精準(zhǔn)的健康數(shù)據(jù),讓人們足不出戶就可以進(jìn)行個人重要生理指標(biāo)的檢測,成為醫(yī)療保健界的新寵。傳統(tǒng)的運(yùn)動檢測產(chǎn)品功能過于單一,如計(jì)步器單以加速度計(jì)算能耗的模式有所欠缺?,F(xiàn)今移動通信技術(shù)的迅猛發(fā)展以及Android等操作系統(tǒng)智能終端的廣泛普及, 為健康管理提供新的思路。筆者基于智能可穿戴設(shè)備和藍(lán)牙通信技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了一款基于Android健康監(jiān)測應(yīng)用程序,并通過對健康數(shù)據(jù)進(jìn)行分析來判斷用戶的健康狀態(tài),給出健康指導(dǎo)建議,為健康管理提供一種智能化的方案。
基于Android平臺,通過傳感器形成可穿戴設(shè)備,采集人體的體溫、血壓等體征數(shù)據(jù),將測得的數(shù)據(jù)經(jīng)藍(lán)牙通信模塊實(shí)時(shí)發(fā)送到Android智能終端向用戶展示。該系統(tǒng)由健康監(jiān)測儀、藍(lán)牙模塊、后臺數(shù)據(jù)庫服務(wù)器和Android前端4個部分組成。傳感器采集人體健康信號,后臺服務(wù)器接收和解析傳感器采集到的健康數(shù)據(jù),響應(yīng)用戶手機(jī)端的業(yè)務(wù)請求,客戶端與健康監(jiān)測儀的通信采用藍(lán)牙方式,監(jiān)測儀工作后處于等待與手機(jī)藍(lán)牙的連接命令狀態(tài),當(dāng)2個藍(lán)牙設(shè)備在同一個RFCOMM信道中連接到Bluetoothsocket時(shí),手機(jī)端和監(jiān)測儀連接成功,客戶端獲取監(jiān)測儀的健康數(shù)據(jù);服務(wù)器端負(fù)責(zé)監(jiān)聽連接請求,建立線程處理數(shù)據(jù)業(yè)務(wù)與客戶端交互[2]。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
微控制器MCU選用低功耗的MSP430f149單片機(jī)芯片為核心處理器完成人體運(yùn)動參數(shù)的采集、處理和顯示;三維加速度傳感器選用MMA7455L數(shù)字傳感器;溫度傳感器選用DS18B20數(shù)字式傳感器;脈搏傳感器選用 HKG-07B紅外脈搏傳感器;選用8Mbit的FLASH存儲模塊來存儲采集到的數(shù)據(jù),要求存儲模塊有足夠大的存儲速度和存儲空間;系統(tǒng)采用4.2V的鋰電池供電;采用CP2102專用USB接口芯片完成數(shù)據(jù)傳輸和充電功能[3,4]。人體運(yùn)動參數(shù)檢測系統(tǒng)采集到的信號都會通過藍(lán)牙模塊實(shí)時(shí)傳輸?shù)街悄芙K端,由智能終端設(shè)備進(jìn)行信號分析。該系統(tǒng)選用的藍(lán)牙模塊型號是BLE-CC41-A。硬件系統(tǒng)的結(jié)構(gòu)如圖2所示。
圖1 系統(tǒng)總體結(jié)構(gòu)
圖2 硬件系統(tǒng)結(jié)構(gòu)圖
MMA7455L數(shù)字加速度傳感器的工作原理是在固定的電容極板中間放置一個可移動的極板,中間的極板在加速度作用下在兩邊的極板間發(fā)生位置偏移,通過測量相對電容量的變化測量加速度的大小[5],MMA7455L的數(shù)據(jù)通信接口為四線SPI,其信號接口電路如圖3所示。
當(dāng)監(jiān)測儀與手機(jī)成功連接后,監(jiān)測儀發(fā)送對時(shí)信號,若對時(shí)成功則返回成功的提示。單片機(jī)依次采集各傳感器的數(shù)據(jù)并補(bǔ)償,隨后經(jīng)由藍(lán)牙硬件模塊依次發(fā)送給服務(wù)器端進(jìn)行處理[6],系統(tǒng)藍(lán)牙傳輸過程如圖4所示。
圖3 MMA7455L接口電路 圖4 系統(tǒng)藍(lán)牙傳輸過程
圖5 軟件系統(tǒng)結(jié)構(gòu)圖
為了實(shí)現(xiàn)用戶實(shí)時(shí)地查看其健康狀況,采用了C/S的開發(fā)模式,將系統(tǒng)分為客戶端和服務(wù)器端2個部分??蛻舳嘶贏ndroid技術(shù)開發(fā),服務(wù)器端執(zhí)行后臺服務(wù),響應(yīng)客戶端的業(yè)務(wù)請求。其中,客戶端包括注冊/登陸模塊、用戶個人信息模塊、當(dāng)前/歷史健康數(shù)據(jù)查詢模塊以及健康跟蹤指導(dǎo);服務(wù)器端包括健康數(shù)據(jù)存儲模塊、數(shù)據(jù)處理和報(bào)警模塊以及用戶信息管理模塊。軟件系統(tǒng)結(jié)構(gòu)如圖5所示。
當(dāng)APP啟動后,系統(tǒng)自動跳入登陸界面,登錄界面是用戶打開基于Android的健康監(jiān)測系統(tǒng)的首個界面。用戶點(diǎn)擊登錄按鈕,系統(tǒng)在按鈕內(nèi)監(jiān)聽相應(yīng)事件,請求連接服務(wù)器并通過數(shù)據(jù)庫查詢相應(yīng)的帳號和密碼是否正確[7,8]。如不正確系統(tǒng)會自動提示用戶輸入的賬號和密碼有誤,正確則提示登錄成功,頁面跳轉(zhuǎn)到主界面。
首次登陸的用戶需進(jìn)行注冊操作。注冊模塊的功能就是把用戶的注冊信息添加到數(shù)據(jù)庫中。首先在 Activity 內(nèi)定義Button用于響應(yīng)用戶的點(diǎn)擊事件,用setOnClickListener給它添加一個監(jiān)聽器,在監(jiān)聽器內(nèi)向服務(wù)器請求連接并在數(shù)據(jù)庫新增信息。用戶填寫好注冊信息后,客戶端將用戶的注冊信息發(fā)送至應(yīng)用服務(wù)器進(jìn)行處理并連接數(shù)據(jù)庫服務(wù)器,對新用戶信息進(jìn)行存儲和驗(yàn)證,若注冊成功進(jìn)入應(yīng)用程序的主界面,注冊不成功彈出不成功指令。
圖6 APP主界面 圖7 人體健康數(shù)據(jù)波形圖
為了營造良好的用戶體驗(yàn),該系統(tǒng)的界面編寫采用XML和Java混合控制UI界面,使得系統(tǒng)界面簡潔明了。UI界面是用戶與智能終端之間進(jìn)行信息交互的重要媒介,是Android系統(tǒng)不可缺少的一部分[9]。該系統(tǒng)的UI界面包括首頁和各個傳感器的參數(shù)實(shí)時(shí)顯示的子界面以及健康指導(dǎo)界面,每個界面之間的相互跳轉(zhuǎn)是通過按鈕和返回按鍵來實(shí)現(xiàn)的。系統(tǒng)主界面設(shè)計(jì)如圖6所示。
用戶登錄成功后,點(diǎn)擊當(dāng)前健康數(shù)據(jù)的圖標(biāo)即可進(jìn)入當(dāng)前健康數(shù)據(jù)查詢模塊。此時(shí),App會通過藍(lán)牙連接便攜式人體健康監(jiān)測儀,獲取人體體征的實(shí)時(shí)信息。具體的實(shí)現(xiàn)流程為:客戶端發(fā)送查詢當(dāng)前健康情況的請求至應(yīng)用服務(wù)器,隨后應(yīng)用服務(wù)器調(diào)用心率、體溫、加速度等傳感器獲取當(dāng)前健康數(shù)據(jù)并通過服務(wù)器添加到數(shù)據(jù)庫,然后將得到的數(shù)據(jù)返回至接口服務(wù)器,最后在客戶端呈現(xiàn)給用戶。
歷史健康數(shù)據(jù)查詢模塊提供用戶過去某段時(shí)間的體溫曲線。用戶在查看歷史健康情況時(shí),App會將賬號在服務(wù)器端的健康信息通過 queryUserWeight 接口接收并保存到本地的SQLite,再根據(jù)用戶選擇的時(shí)間段繪制對應(yīng)折線圖。在歷史健康數(shù)據(jù)查詢模塊中,用戶通過Android手機(jī)對相應(yīng)歷史時(shí)間區(qū)域進(jìn)行選擇,最終的結(jié)果以曲線的形式在客戶端上展示。圖7為功能測試試驗(yàn)中用戶一周的健康數(shù)據(jù)波形圖,從數(shù)據(jù)可知用戶處于健康水平。
服務(wù)器端接收到客戶端的業(yè)務(wù)請求后,立即調(diào)用數(shù)據(jù)庫獲取健康數(shù)據(jù)和用戶信息等,并將其轉(zhuǎn)化成JSON數(shù)據(jù)顯示在客戶端。由于該設(shè)計(jì)的數(shù)據(jù)量比較小,因此采用了內(nèi)置的輕量級SQLite數(shù)據(jù)庫。為了方便使用SQLite數(shù)據(jù)庫,Android系統(tǒng)提供了一系列對數(shù)據(jù)庫進(jìn)行操作的類,包括SQLiteOpenHelper和SQLiteDatebase。其中,SQLiteOpenHelper這個抽象類用于創(chuàng)建數(shù)據(jù)庫和實(shí)現(xiàn)數(shù)據(jù)庫版本的更新。SQLiteDatebase是一個數(shù)據(jù)庫訪問類,該類封裝了一系列的API,方便對數(shù)據(jù)進(jìn)行增、刪、查、改操作。表1為用戶注冊表,服務(wù)器需要對錄入的用戶基本信息進(jìn)行校驗(yàn)審核后,方可完成注冊。
表1 用戶注冊表
為了實(shí)現(xiàn)對實(shí)時(shí)監(jiān)測到的人體健康數(shù)據(jù)進(jìn)行分析,準(zhǔn)確判斷用戶的健康狀況,該系統(tǒng)還設(shè)計(jì)了報(bào)警參數(shù)設(shè)置模塊,系統(tǒng)默認(rèn)設(shè)置了健康參數(shù)域的上限值和下限值,用戶可根據(jù)自身情況進(jìn)行修改;當(dāng)監(jiān)測到的用戶健康數(shù)據(jù)超出健康域時(shí),系統(tǒng)給出報(bào)警提示。
筆者通過三維加速度傳感器和微處理器采集用戶行為的加速度,利用相關(guān)算法估算運(yùn)動的能量消耗[10]。選用的MMA7455L三維加速度傳感器具有檢測X、Y、Z三維6個方向加速度的功能,能夠更精準(zhǔn)地實(shí)現(xiàn)人體運(yùn)動能耗的分析估算。
筆者提出了一種基于智能終端的便攜式人體健康監(jiān)測儀的設(shè)計(jì)方案,研究了系統(tǒng)的硬件選型、軟件環(huán)境搭建、數(shù)據(jù)庫表設(shè)計(jì)、詳細(xì)開發(fā)步驟等,完成了基于Android的人體運(yùn)動健康參數(shù)檢測系統(tǒng)的設(shè)計(jì)。該系統(tǒng)可以實(shí)現(xiàn)人體運(yùn)動的加速度、心率、體溫等健康數(shù)據(jù)的測量功能,并通過對測得的健康數(shù)據(jù)進(jìn)行分析判斷,給出個性化的健康指導(dǎo)建議。系統(tǒng)測試效果良好,能較為完善地實(shí)現(xiàn)人體健康信息的采集、分析和顯示等功能,且界面簡潔明了,交互性強(qiáng)。但有些細(xì)節(jié)還有待完善,如可以考慮在iOS平臺上實(shí)現(xiàn),從而能夠覆蓋更廣泛的用戶群體。
[1]朱國忠,韋彩虹,潘敏. 基于三維加速度傳感器的人體運(yùn)動能耗檢測算法的研究[J]. 傳感技術(shù)學(xué)報(bào),2011,24(8):1217~1222.
[2]青松,程岱松,武建華,等.數(shù)字通信系統(tǒng)的SystemView仿真與分析[M].北京:電子工業(yè)出版社,2001:53~63.
[3]余賢捷. 運(yùn)動參數(shù)檢測系統(tǒng)[D].武漢:武漢工程大學(xué),2012.
[4]吳昱,黃建明.一種基于Android的健康監(jiān)控預(yù)警系統(tǒng)[J].軟件,2016,37(2):129~133.
[5]熊俊俏,余賢捷,周建軍,等. 便攜式運(yùn)動參數(shù)記錄儀的設(shè)計(jì)[J]. 測控技術(shù),2013,32(1):4~6+10.
[6]馮艷紅,何加銘,楊任爾,等. 基于Android藍(lán)牙技術(shù)的健康服務(wù)系統(tǒng)設(shè)計(jì)[J]. 無線電通信技術(shù),2014,40(1):61~64.
[7]楊曉婧. 基于無線傳感器網(wǎng)絡(luò)的人體運(yùn)動能耗檢測系統(tǒng)的設(shè)計(jì)[D].武漢:武漢工程大學(xué),2014.
[8]郭霖.第一行代碼——Android[M].北京:人民郵電出版社,2014.
[9]羅富財(cái). 基于Android平臺的藍(lán)牙通信系統(tǒng)的研究與實(shí)現(xiàn)[D].北京: 華北電力大學(xué), 2013.
[10]李易陸,陳洪波,蔣曉旭,等. 基于三軸加速度傳感器的人機(jī)交互智能手環(huán)[J]. 桂林電子科技大學(xué)學(xué)報(bào),2015,35(5):412~415.