楊 剛 王 曼 屈勝年
(西安郵電大學通信與信息工程學院 陜西 710061)
據世界衛生組織統計顯示,意外跌倒是老年人慢性致殘的第三大原因。全球每年大約30.3%的65歲以上老人、50%的80歲以上老人都發生過跌倒,造成了骨折、軟組織挫傷和腦部損害等意外傷害[1~2]。此外,我國目前高血壓患者約有1.6億且逐年增多[3]。高血壓是老年人最常見的心血管疾病,又是導致腦卒中、冠心病、糖尿病、慢性腎病及心腎功能衰竭,致殘、致死的主要危險因素之一[4]。由此可見,跌倒及高血壓疾病嚴重影響老人的身心健康和生活質量,而且增加了家庭的痛苦和負擔。如何及時發現異常體征,定位救助跌倒老人在監護設備中顯得尤為重要。
傳統的監護設備采用B/S方式,利用固定的PC監護,不能便捷及時監護老人。近些年隨著物聯網的發展,市場上已有針對老人監護問題的解決方案。但并不適用于子女等監護人遠程便捷使用,且功能單一、易用性差,難以滿足老人的健康監護及其對晚年生活質量的更高要求。
本文擬設計與實現基于Android平臺的老人遠程定位監護系統。通過無線GPRS技術自動將前端設備所采集的信息上傳到云服務器,方便子女利用該系統通過手機實時查看老人跌倒狀況、血壓及位置,同時利用service組件進行異常信息的預警,實現老人遠程定位監護功能。
老人遠程定位監護系統主要分為下位模塊、云服務器、上位Android手機客戶端模塊。系統架構圖如圖1所示。為了提高下位機采集模塊中各項指標的準確性,加速度傳感器采用三軸陀螺儀加速度傳感器,血壓傳感器選用光電脈搏波反射傳感器,定位選用sim公司的sim908。云服務器選擇樂聯網公共云平臺,其可以快速搭建實現,且操作簡捷運行穩定,可有效地節約成本。

圖1 系統總體架構圖
下位機主要負責數據的采集與傳輸,通過從傳感器獲得血壓、經緯度以及加速度數據,完成對健康指標數據的采集和壓縮編碼的處理,最后通過GSM網絡,經過Internet傳送給云服務器,客戶端可以通過Internet訪問服務器并獲得指標數據。云服務器是下位機和客戶端之間的橋梁。
Android客戶端主要完成與服務器間的數據交互以及對自身數據的存儲和處理、網絡通信等功能,實現對所監護老人血壓、位置、跌倒等相應信息的監測及預警功能。
Android是Google開發的基于Linux平臺的開源手機操作系統。它包括操作系統、用戶界面和應用程序[5]。本系統采用C/S架構,其中服務器采用公共的云平臺,客戶端部分采用Android JAVA開發。客戶端利用sharedpreferences實現數據存儲,結合SOCKET完成網絡通信,最終編譯之后打包生成APK文件[6],可直接安裝在Android手機上。相比傳統模式的PC監控系統,本設計不受時間、地域、環境、距離等因素限制,利用Android平臺設計控制下位的應用軟件,操作方便靈活,具體架構圖如圖2。

圖2 Android客戶端架構圖
Android手機客戶端系統測試采用紅米手機,Android4.4.4版本,內核3.10.28。開發環境為Android+ADT+SDK+JAVA+JDK1.8+Eclipse。云服務器可以同時與多個手機客戶端進行通信,為每個客戶端分配1個端口號,用戶登錄進入首先從shared-preferences中獲取默認設備ID,然后隨著用戶切換頁面實時獲取當前頁面顯示的相應數據,并且啟動service,在service中的定時器每隔2min向云服務器發起請求實時獲取血壓、跌倒、位置信息的請求,然后根據用戶設置的閾值給出相應的提示。老人遠程定位監護系統具體實現流程如圖3所示。

圖3 客戶端運行流程圖
Android系統采用腳本語言完成界面設計[7]。本系統主要包含體征監測界面、位置監測界面與設置主界面,并利用三個radiobutton組成的底部導航欄實現主界面的切換。
體征監測界面主要包括兩部分,分別為血壓監測與跌倒監測。由于兩個監測頁面所含部分UI元素相同,且便于以后拓展軟件監測參數,因此采用Fragment結合viewpager實現血壓與跌倒兩個標簽頁的標簽點擊切換與滑動切換功能。系統采用血壓進度條的形式展示老人單詞血壓,利用血壓趨勢圖分析老人一周血壓數據,同時結合ListView以列表的形式展示老人一年的血壓測試數據。跌倒監測界面運用人形的跌倒及站立圖表示老人實時的運動狀態,采用曲線圖展示過去14min內加速度值的變化。
位置監測界面利用高德地圖繪制老人的位置。同時,通過計算老人位置和子女設置的圍欄圓心之間距離與半徑做對比,從而進行圍欄預警。此外,結合運用grideView實現的日歷查詢某天老人的運動軌跡。
設置主界面主要分為兩部分,一部分為用戶個人信息設置,旨在管理用戶。另一部分為系統設置,主要包括圍欄半徑設置、圍欄進入提醒、圍欄離開提醒以及使用助手。
客戶端涉及到大量的數據處理,但為節省手機內存資源,其中大部分數據都采取實時獲取顯示,只有小部分數據需存儲。由于數據量較小,采用SharedPreferences存儲方式,相比市場上采用SQLite數據庫存儲的其它應用,此方法避免了創建數據庫,創建表,寫SQL語句等諸多操作,相對而言更加方便簡潔,更適合客戶端。SharedPreferences數 據 存 儲 在/data/data/<packagename>/shared_prefs目錄下。
具體實現如下:
//獲取變量(默認設備ID)值
public static String getId(){
Return mPreferences.getString(mId,“”);
}
//存儲變量(默認設備ID)值
public static void setId(String id){
SharedPreferences.Editor editor=mPreferences.edit();
editor.putString(mId,id);
editor.commit();
}
采用SharedPreferences存儲的變量有默認監控設備ID,默認監控設備名,歷史軌跡查詢日期,開啟或關閉進入圍欄提醒,開啟或關閉離開圍欄提醒。
上位機可監護多個下位機監護設備,但在同一時刻只可顯示默認設備的健康信息,若需查看其它設備的信息,則需通過已知的設備ID綁定設備,并將其設置為默認設備。
客戶端的通信模塊選用HTTP協議,HTTP協議是應用層協議,屬于高層協議;傳輸層則使用TCP/IP協議。原理上利用Scoket編程實現HTTP協議,Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組API接口[8]。然而實現HTTP協議非常耗時,對Socket套接字以及HTTP協議細節都要非常熟悉,還需經過大量測試和驗證,才可正確實現HTTP協議。
Android平臺的開發環境中,已經集成apache的相關組件:HttpClient。因此不必寫Socket來實現HTTP協議,只需調用HttpClient來完成與服務器對接的REST API接口即可,大大減輕API接口實現。然而由于API接口眾多,接口實現中采用工廠模式以保證系統的高效率,如圖4。

圖4 通信模塊工廠設計模式UML圖
基于C/S模式,從建立鏈路的角度可將推送方式分為兩類:一類為服務器主動發送信息,客戶端顯示數據,與此同時保證與服務器的長鏈接,當服務器需要再次發送一批數據時,客戶端顯示數據并保持連接,以此類推[9]。另一類為客戶端周期性發起鏈接詢問,并建立短鏈接,接收完信息則釋放鏈路。相比較兩種方式,前者推送效率較高,因為不必建立新的鏈接,但由于當沒有消息推送時也必須保持此鏈接,因此會造成很多資源的浪費。在目前網絡流量消費普遍的時代,為避免搭建服務器,可以利用現有的云平臺。本系統就是采用后者實現推送。
推送主要采用service實現。service是Android四大組件之一,是一個沒有用戶界面的后臺執行耗時操作的應用組件[10]。其他應用組件都可以啟動service,并且當用戶切換到另外的用戶場景時,service將持續在后臺運行。當應用啟動時,在程序入口Activity中啟動service,為保證系統的高效率,在子線程中設置定時器,每2分鐘向服務器發起請求位置、血壓與是否跌倒信息,當請求成功時可將信息通過公有類共享給其它需要展示數據的界面組件,同時與用戶預設閾值比較。在老人離開或進入預設地理圍欄,老人跌倒,老人血壓非正常時推送相應的報警信息及時提醒監護人老人可能發生意外,監護人可結合系統提供的老人位置信息及時施救,從而避免救助不及時所引發的身體傷害。此外,每2min的網絡請求也可滿足推送消息的及時性要求。
樂聯網是一個可以迅速實現物聯網應用的公共云平臺。該云臺不需要繁瑣編程就可以將傳感器與樂聯網平臺連接,并實現在該平臺上存儲、查詢和測量數據的分析。該平臺還提供了網絡連接功能模塊,可以讓所有測量設備都具備聯網功能,利于集中監控和設備的管理[11]。該平臺同時提供了數據查詢、分析、對比等基本功能。
該系統的主要功能是實時獲取老人位置、血壓及是否跌倒信息,并將獲取的信息展示在客戶端顯示屏上;另外,可以在老人進入與離開用戶設置的地理圍欄、血壓超出用戶預設范圍以及老人跌倒時給予及時的數據信息推送。
測試時,首先確保下位機電量充足,并邀請2位同學模擬老人一周的生活狀態,并令其在某時刻模擬老人跌倒。在本系統的監控下,對這兩名同學進行一周不間斷的監護測試,部分數據如下列圖所示。
圖5為其中一位同學一周的血壓信息記錄以及最近一次的血壓狀況分析。圖6為某時候超出正常血壓范圍所收到的即時警告信息。

圖5 血壓一周記錄

圖6 老人血壓超出閾值
圖7 為其中一名同學模擬老人跌倒,記錄跌倒前后十四分鐘內加速度值。其中橫坐標表示時間,縱坐標表示加速度值。圖8表示加速度值超過預警值時的警告信息,說明老人已跌倒。

圖7 老人加速度值記錄

圖8 老人跌倒的警告消息
圖9陰影區域為開啟圍欄功能,同時用戶設置地圖上某一位置為圍欄中心,500m為半徑的圍欄區域。圖10為老人離開圍欄區域的警告信息。

圖9 開啟地理圍欄

圖10 老人離開圍欄區域
本文設計了一種基于Android的老人遠程定位監護系統,在1臺Android手機上可以同時對多個老人實現遠程定位監護。系統不僅能時刻監測老人血壓、心率、跌倒狀況和位置,并可在特殊情況下及時給予推送提示。測試結果表明,系統可以實現上述功能,監護人可通過該系統更好地了解老人身體狀況,并進行及時救助。
[1]林茵.老年人跌倒的危險因素及預防對策[J].中國老年學雜志,2003,23(1):36-37.LIN Yin.The risk factors and prevention countermeasures of the elderly fall[J].Chinese Journal of Gerontology,2003,23(1):36-37.
[2]朱秀芳,陳建英,趙榕.老年人跌倒的預防及護理[J].實用醫技雜志,2008(28):3932-3933.ZHU Xiufang,CHEN Jianyin,ZHAO Rong.The prevention and nursing of the elderly fall[J].Journal of Practical Medical Techniques,2008(28):3932-3933.
[3]涂良珍,蘆顏美.老年高血壓診治進展[J].心血管康復醫學雜志,2010,19(5):555-559.TU Liangzhen,LU Yanmei.The progress of diagnosis and treatment of senile hypertension[J].Chinese Journal of Cardiovascular Rehabilitation Medicine,2010,19(5):555-559.
[4]徐成斌.高血壓治療新策略——‘SELECT’優化治療[J].中國心血管雜志,2007,12(6):401-406.XU Chenbin.Hypertension treatment optimization-‘SELECT’new strategies[J].Chinese Journal of Cardiovascular Medicine,2007,12(6):401-406.
[5]詹成國,朱偉,徐敏.基于Android的測控裝置人機界面的設計與開發[J].電力自動化設備,2012,32(1):119-122.ZHAN Chengguo,ZHU Wei,XU Min.Man-machine interface design and implementation based on Android for measuring and control unit[J].Electric Power Automation Equipment,2012,32(1):119-122.
[6]尚明華,秦磊磊,王風云,等.基于Android智能手機的小麥生產風險信息采集系統[J].農業工程學報,2011,27(5):178-181.SHANG Minghua,QIN Leilei,WANG Fengyun,et al.Information collection system of wheat production risk based on Android smartphone[J].Transactions of the Chinese Society of Agricultural Engineering,2011,27(5):178-182.
[7]李慧,劉星橋,李景,等.基于物聯網Android平臺的水產養殖遠程監控系統[J].農業工程學報,2013,29(13):175-180.LI Hui,LIU Xingqiao,LI Jing,et al.Aquiculture remote monitoring system based on IOT Android platform[J].Transactions of the Chinese Society of Agricultural Engineering,2013,29(13):175-181.
[8]袁蒙,王明圓,王婉君,等.獨居老人智能監護及報警系統[J].中國新通信,2012,14(21):7-12.YUAN Men,WANG Yuanyuan,WANG Wanjun,et al.The elderly who live alone smart monitoring and alarm system[J].China New Telecommunications,2012,14(21):7-12.
[9]武江濤,賈衛,黃小寅,等.無線音樂點播系統的研究與開發[J].控制工程,2009(16):126-129.WU Jiangtao,JIA Wei,HUANG Xiaoyin,et al.Research and Development of Wireless Audio Order System[J].Control Engineering of China,2009(16):126-129.
[10]楊猛,呂衛,宋垣.基于Android的心電監護系統設計[J].電視技術,2015,39(14):34-36.YANG Men,LV Wei,SONG Yuan.Design of ECG Monitoring System Based on Android OS[J].ideo Engineering,2015,39(14):34-36.
[11]肖凡,馬婭婕,余湧,等.Arduino和樂聯網在PM2.5實時監測系統中的應用[J].自動化儀表,2015,36(12):63-66.XIAO Fan,MA Yajie,YU Yong,et al.Application of Arduino and Lewei 50 in Real-time Monitoring System of PM2.5[J].Process Automation Instrumentation,2015,36(12):63-66.