徐為則 葛艷紅 李文鋒 張?zhí)炱?/p>
(武漢理工大學(xué)物流工程學(xué)院 湖北 武漢 430063)
隨著可穿戴設(shè)備、云計算與物聯(lián)網(wǎng)技術(shù)的發(fā)展,遠(yuǎn)程醫(yī)療逐漸出現(xiàn)在人們的視野中,無論用戶處于何時何地,無線體域網(wǎng)BAN(Body Area Network)都能實時監(jiān)測用戶的生理狀況[1]。由于人有相當(dāng)長的時間是在活動狀態(tài)下生活和工作,人們對移動健康的關(guān)注和研究逐漸增多[2-3]。然而,單一類型生理參數(shù)無法滿足人體健康評估的需求。針對此問題,文獻(xiàn)[4]設(shè)計了多參數(shù)健康系統(tǒng),對多種生理參數(shù)的有效性進(jìn)行驗證,并通過數(shù)據(jù)融合技術(shù)對健康評估;文獻(xiàn)[5]采用智能手機(jī)作為移動網(wǎng)關(guān),能夠自動收集人體的生理信息與人體姿態(tài)。當(dāng)人體異常時,數(shù)據(jù)上傳至云端報警;文獻(xiàn)[6]通過安裝Android系統(tǒng)驅(qū)動、生理參數(shù)驅(qū)動與監(jiān)護(hù)應(yīng)用軟件,設(shè)計了一款遠(yuǎn)程多生理參數(shù)監(jiān)護(hù)系統(tǒng)。
由于采集人體健康數(shù)據(jù)的每個節(jié)點的能量、計算能力與存儲能力是有限的[7-8],對多類型數(shù)據(jù)持續(xù)與雜亂的傳輸,容易導(dǎo)致系統(tǒng)數(shù)據(jù)冗余,設(shè)備能耗損失增大。隨著移動通信的發(fā)展,借助智能手機(jī)擁有多樣式的無線通信技術(shù)和較強(qiáng)大的計算能力[9-12],搭建了一種能夠智能管理移動健康設(shè)備,減少數(shù)據(jù)上傳至云端的智能島。該智能島通過自動調(diào)整設(shè)備優(yōu)先級獲取設(shè)備權(quán)重,并結(jié)合加權(quán)輪詢算法對移動健康設(shè)備進(jìn)行管理與采集數(shù)據(jù)。當(dāng)遇到異常情況時,可在第一時間感知并將結(jié)果上傳至云端報警。
針對移動健康設(shè)備的統(tǒng)一管理與數(shù)據(jù)采集的需求,在智能手機(jī)上采用MVP模式搭建了一種智能島。采用MVP模式將數(shù)據(jù)與界面完全分離,降低層次之間的耦合,同時業(yè)務(wù)邏輯完全交給Presenter(數(shù)據(jù)處理層)層處理,具有可移植性的優(yōu)點。如圖1所示,智能島架構(gòu)共分為三層。
圖1 智能島總體架構(gòu)
第一層是數(shù)據(jù)層,包括藍(lán)牙技術(shù)與數(shù)據(jù)庫技術(shù)。該層的主要作用是從數(shù)據(jù)源(通過藍(lán)牙技術(shù)與移動健康設(shè)備組網(wǎng)交互,HTTP技術(shù)與云端交互)中獲取數(shù)據(jù)。其中:藍(lán)牙技術(shù)與移動健康設(shè)備動態(tài)組網(wǎng)采集數(shù)據(jù);數(shù)據(jù)庫技術(shù)實現(xiàn)對歷史數(shù)據(jù)的增、刪、改、查的功能。第二層是數(shù)據(jù)處理層(業(yè)務(wù)邏輯層),負(fù)責(zé)對數(shù)據(jù)層數(shù)據(jù)進(jìn)行業(yè)務(wù)邏輯處理,如查詢數(shù)據(jù)庫數(shù)據(jù),實現(xiàn)異常報警、智能管理設(shè)備。第三層是應(yīng)用層,為用戶提供可視化界面,實現(xiàn)對移動健康設(shè)備的手動控制,包括調(diào)整設(shè)備采集數(shù)據(jù)的頻率、數(shù)據(jù)庫的升級與設(shè)備狀態(tài)的控制。同時該層還可以查看用戶當(dāng)前設(shè)備狀況和健康狀況等。智能島主要完成以下兩項功能:
(1) 健康異常監(jiān)測 對用戶而言,身體健康異常狀況報警十分重要。智能島通過分析移動健康設(shè)備采集的多生理數(shù)據(jù),實現(xiàn)對人體健康狀態(tài)判斷。身體健康狀態(tài)分為三種:健康、質(zhì)疑(如用戶久坐超過一定時間等)與危險(多種類型生理參數(shù)均異?;蛉梭w久坐并血壓異常等)。當(dāng)質(zhì)疑或危險發(fā)生時,自動向監(jiān)護(hù)人報警,提高報警響應(yīng)速度;若健康,則采取定期發(fā)送數(shù)據(jù)至云端的方式,達(dá)到減少數(shù)據(jù)上傳的目的。
(2) 智能組網(wǎng) 在體域網(wǎng)中,設(shè)備節(jié)點數(shù)據(jù)發(fā)送、接收與空閑時間對信道的監(jiān)聽消耗大部分能量[13-14]。因此,在保障健康監(jiān)測的情況下,應(yīng)當(dāng)盡量減少節(jié)點數(shù)據(jù)傳輸。通過智能組網(wǎng)的方式,可解決此問題。
在體域網(wǎng)中,由于異構(gòu)可穿戴設(shè)備的空間位置、傳輸速度與頻率的不同,采集的數(shù)據(jù)往往是雜亂無序的,容易導(dǎo)致數(shù)據(jù)碰撞與丟失等問題出現(xiàn)。然而傳統(tǒng)的藍(lán)牙微微網(wǎng)中,調(diào)度算法RR采用輪詢不同的從節(jié)點,將全部帶寬平均分布給每個從設(shè)備,存在不考慮設(shè)備對帶寬資源的需求以及用戶狀況需求的問題。因此,本文采取提取用戶生理特征方式,進(jìn)行設(shè)備優(yōu)先級分配,并設(shè)計加權(quán)輪詢算法對設(shè)備動態(tài)組網(wǎng)。
(1)
(2)
(3)
該智能島權(quán)重是變化的,采用滑動時間窗形式,根據(jù)權(quán)重判斷規(guī)則,定期更新設(shè)備優(yōu)先級。通過優(yōu)先級,分配設(shè)備的權(quán)重,默認(rèn)按數(shù)值等級來分配權(quán)重,如1,2,…,N。
假設(shè)在智能島區(qū)域D內(nèi),健康設(shè)備能夠被連接,且用戶所有設(shè)備MAC地址已保存在智能島。輪詢算法流程如圖2所示。
圖2 獲取輪詢設(shè)備算法
具體算法步驟如下:
(1) 智能島首先找到區(qū)域內(nèi)屬于用戶的設(shè)備,確保設(shè)備在活動狀態(tài)。未搜索到設(shè)備默認(rèn)關(guān)閉且權(quán)重設(shè)為0,時間閾值Tmax獲得的藍(lán)牙網(wǎng)集如下:
Φ(t+Tmax)={X|X1,X2,…,Xn}
(4)
式中:Xi表示一個空間集合的位置。
(2) 進(jìn)行數(shù)據(jù)初始化。其中,cWij表示該設(shè)備當(dāng)前權(quán)重值,下標(biāo)i、j分別表示設(shè)備與輪詢的次數(shù);eWi表示設(shè)備影響權(quán)重(即通過優(yōu)先級獲取的權(quán)重);sum0表示影響權(quán)重之和,初始值為0;cWtmax表示已遍歷的健康設(shè)備中當(dāng)前權(quán)重最大的值(以下簡稱最大權(quán)重值),下標(biāo)t的范圍為0≤t≤n-1;i表示設(shè)備號,初始值為0;n表示設(shè)備數(shù)量。
(3) 更新該設(shè)備當(dāng)前權(quán)重與影響權(quán)重之和。將設(shè)備當(dāng)前權(quán)重值更新為設(shè)備影響權(quán)重與上一次該設(shè)備當(dāng)前權(quán)重之和,并更新影響權(quán)重之和sumi,公式如下:
cWij=cWij-1+eWisumi+=eWi
(5)
式中:cWij表示該設(shè)備在上一次輪詢中當(dāng)前權(quán)重值。
(4) 選取當(dāng)前權(quán)重最大的設(shè)備,作為輪詢設(shè)備。首先判斷是否是第一個設(shè)備,如果是第一個設(shè)備,此時更新最大權(quán)重值cWtmax及下標(biāo)t,公式如下:
cWtmax=cWit=i
(6)
如果不是,則將該設(shè)備的當(dāng)前權(quán)重與最大權(quán)重值進(jìn)行對比。如果小于,且判斷此時是最后一個設(shè)備,則選取cWtmax中下標(biāo)為t的設(shè)備,作為輪詢設(shè)備;如果小于,且判斷此時不是最后一個設(shè)備,則繼續(xù)比較下一個設(shè)備。如果大于,此時更新最大權(quán)重值cWtmax及下標(biāo)t,且判斷此時不是最后一個設(shè)備,繼續(xù)比較下一個設(shè)備當(dāng)前權(quán)重;如果大于且判斷此時是最后一個設(shè)備,則選取與cWtmax中下標(biāo)為t的設(shè)備,作為此時輪詢的設(shè)備。為了能夠輪詢到其他設(shè)備,將該被輪詢設(shè)備的當(dāng)前權(quán)重值cWt更新以及更新cWtmax=0,公式如下:
cWi=cWi=t-sumn-1
(7)
(5) 獲取到該cWtmax中t的值,表示第t種健康設(shè)備為輪詢設(shè)備。當(dāng)判斷該設(shè)備與上一次輪詢設(shè)備相同時,并且上一次數(shù)據(jù)正常,則不進(jìn)行數(shù)據(jù)采集,若上一次異常,則進(jìn)行數(shù)據(jù)采集。
若在輪詢時發(fā)現(xiàn)數(shù)據(jù)超過閾值,則將輪詢停止,進(jìn)行多設(shè)備數(shù)據(jù)采集,按照分類進(jìn)行身體健康狀態(tài)診斷并報警。當(dāng)用戶久坐時,彈出對話框的形式提醒用戶是否取消報警,如果超過時間閾值Tmax仍未取消,則進(jìn)行報警,表示質(zhì)疑等級報警;當(dāng)血壓超過時,結(jié)合心率狀況,若此時心率也異常,則進(jìn)行危險等級報警;若正常,但并未取消報警,則發(fā)送質(zhì)疑報警,否則,不進(jìn)行報警。
圖3為動態(tài)組網(wǎng)連接健康設(shè)備采集數(shù)據(jù)的場景,將智能島安裝在智能手機(jī)上,采用Java語言編寫的智能島進(jìn)行數(shù)據(jù)采集,使用多個時段進(jìn)行重復(fù)穩(wěn)態(tài)仿真[11]的方法測試效果。實驗測試采用10組實驗,三種組網(wǎng)方式進(jìn)行對比,顯示動態(tài)組網(wǎng)的效果,以及用異常感知時間來證明感知的效果。第一種是設(shè)備傳輸,未有優(yōu)先級,采集全部數(shù)據(jù);第二種是設(shè)備輪詢傳輸,按順序采集數(shù)據(jù);第三種是設(shè)備權(quán)重輪詢,依次將1到4種用戶健康設(shè)備進(jìn)行連接與關(guān)閉。通過與其他場景能耗對比,說明此方法的優(yōu)越性。圖4為智能島部分功能效果。其中:(a)表示心率值動態(tài)變化;(b)表示解除報警功能,用于避免誤報的行為;(c)表示設(shè)備狀況(包括設(shè)備名稱、開關(guān)、頻率、運(yùn)行狀況),并可手動進(jìn)行設(shè)備管理。參與智能島效果測試人數(shù)10人,實驗表明,該智能島能夠滿足健康監(jiān)測與管理設(shè)備的需求。
圖3 實驗仿真場景
(a) 心率動態(tài)顯示 (b) 解除報警 (c) 節(jié)點手動管理圖4 智能島部分界面
為了驗證動態(tài)輪詢的有效性,進(jìn)行實驗仿真,在實驗中設(shè)置每次設(shè)備輪詢時長為60 s,并在輪詢總數(shù)為30次時,將壓力坐墊關(guān)閉,心率與血壓被輪詢的次數(shù)將增大。圖5中,縱坐標(biāo)表示每個設(shè)備某段輪詢的次數(shù),橫坐標(biāo)表示在某段時間輪詢的總數(shù)。圖5中的數(shù)據(jù)與結(jié)果吻合,證明該算法的有效性。
圖5 動態(tài)輪詢算法仿真圖
(8)
圖6中,橫坐標(biāo)表示測試的設(shè)備數(shù),縱坐標(biāo)表示消耗電量百分比,并與表1對應(yīng)。在連接設(shè)備相同情況下,全部連接并采集數(shù)據(jù)將增大電量消耗;在輪詢時,均勻分配資源給每個設(shè)備,電量消耗趨于穩(wěn)定趨勢;第三種權(quán)重分配消耗電量最少,由于權(quán)重的原因,設(shè)置不同的頻率進(jìn)行數(shù)據(jù)采集,并且當(dāng)前一次和此次采集設(shè)備相同時,在數(shù)據(jù)正常情況下,此次不進(jìn)行采集,在一定程度上能夠節(jié)約能耗。
圖6 三種場景的電量消耗對比圖
表1 三種場景電量消耗對比 %
為了能夠測試異常第一時間感知,在測試時將心率與血壓閾值調(diào)小,以便測試異常感知狀況,參與實驗人數(shù)為10人,年齡25周歲左右。由表2可知,延時時間非常短,報警準(zhǔn)確度達(dá)到100%。
表2 異常感知結(jié)果
針對移動健康設(shè)備的管理與健康監(jiān)護(hù)的需求,研究了能夠管理移動健康設(shè)備,節(jié)約設(shè)備能耗的智能島。該智能島具有以下優(yōu)點:
(1) 既可以與移動健康設(shè)備進(jìn)行智能組網(wǎng),又可以與云端交互,在人體異常時,能夠第一時間進(jìn)行感知。
(2) 能夠根據(jù)用戶個人狀況自動調(diào)整設(shè)備優(yōu)先級,進(jìn)行藍(lán)牙4.0智能組網(wǎng)采集數(shù)據(jù),完成設(shè)備管理與控制,節(jié)約能耗。
(3) 采用MVP架構(gòu),減少數(shù)據(jù)的耦合,提高代碼清晰度,提高智能島的穩(wěn)定性、可移植性與可擴(kuò)展性。智能島還可記錄用戶的日常生活習(xí)慣,為日后的深度學(xué)習(xí)研究提供基礎(chǔ)。