周銀,王新峰
(吉首大學軟件學院,張家界427000)
根據《中國老齡事業的發展》白皮書,中國人口年齡結構已經開始進入老齡化階段。人口老齡化問題已經逐漸變成中國乃至全球性的社會性問題。預計到2040 年,65 歲及以上老年人口占總人口的比例將超過20%。同時,老年人口高齡化趨勢日益明顯。民政部部長李立國說,城鄉老人家庭中,空巢家庭超過50%,部分大中城市達70%。而養老機構床位占全國老年人口1.59%,所以還約有90%的老人需要家庭看護。
老人單獨在家時會遇到各類麻煩如:出門外帶鑰匙,不記得定時吃藥,不記得家中爐灶的火是否關閉,智能電器不會用,身體突發不適找不到人幫助、行動不便等。而現在老人普遍子女少,同時女子也沒有太多精力在家照看老人,這就迫切要求我們通過技術手段輔助老人生活,幫助老人解決衣食住行的困難,并且方便和外界通信及子女照看老人,因此提出建立一個智能老人助理系統。智能老人助理系統的建立可以大大提升老人生活質量,讓老人享受科技進步帶來的實惠。
通過對老人生活遇到的主要問題進行分析,本系統要完成以下目標:讓行動不便的老人在少量移動的情況下,可以控制所有智能家電設備;可以讓老人及監護人實時了解居住環境,當有異常發生時,系統會報警讓老人及時撤離;當老人操作失誤或有突發情況時,遠程輔助功能可讓監護人遠程協助;當老人思念子女時也可通過簡單操作即可聯系到子女。以上目標可以進一步化分為三個模塊即:智能控制、環境監控、遠程輔助。
(1)智能控制:是指老人能通過語音或手機統一控制房間內的智能設置,如空調、電視、燈以及窗簾和門等,操作流程要簡單,界面要人性化。
(2)環境及健康監控:實時檢測房間內溫濕度,有毒氣體(煤氣),煙霧等環境信息,方便查看。當環境中出現異常時可報警,報警方式有聲音和燈光兩種。老人也可通過設備(心率檢測、脈搏檢測等)將健康情況上傳系統服務器方便監控護和醫療人員查看。
(3)遠程輔助:本系統全程聯網,當有突發情況時,老人的監護人可通過授權遠程控制房間內的智能設備,同時還可與老人實時聊天通信。
本系統的三個功能模塊(智能控制、環境監控、遠程輔助)整合在一起如圖1 所示。

圖1 系統功能結構圖
圖1 中無箭頭線代表數據和命令可以雙向發送,單箭頭的線代碼數據或命令從一個模塊到另一個模塊發送。數據指獲取的溫濕度、健康、圖像等數據信息,命令包含開、關、移動等控制指令。
從系統功能結構圖中可以看出,本系統分為:主控App、服務器、Web 端軟件功能部分,以及中央控制器和各子板的硬件平臺部分。下面就按軟件和硬件分開詳細講解各功能。
軟件由主控App、服務器和Web 端三塊組成。
手機是現在最好的控制器,可以集各種功能與一身,主控App 使用Android 開發,主要功能就是用來接受數據與發送命令,由于是給老人使用,所以操作界面要求特別簡單,一鍵式使用,界面如圖2 所示。

圖2 App操作界面圖
主控App 工作命令發送流程:App 發送指令->服務器->中央控制板(解析命令目的地)->子板。
主控App 數據接收流程:各子板收集數據->中央控制板->服務器->主控App 讀取顯示。
服務器是數據處理中心,用來將命令和數據發送到各模塊,保存數據、記錄日志等都由服務器完成。
由于各類設備采集的數據信息格式和命令格式各不相同,為了統一處理,定義相同的數據結構體和命令結構體。
數據的結構體如下:
typedef struct s_data
{
int data_type; //數據的類型
char data_src[100]; //數據的來源
char data_des[100]; //數據的接收方
void*buff; //數據指針
int size; //數據大小
time_t send_time; //數據發送時間
time_t recv_time; //數據接收時間
}DATA;
命令即指令結構體如下所示:
typedef struct s_order
{
int order_type; //命令的類型
char order_src[100]; //命令的發出方
char order_des[100]; //命令接收方
char value[100]; //命令值
time_t send_time; //命令發送時間
time_t recv_time; //命令接收時間
int is_run; //命令是否執行
}ORDER;
Web 端是提供給監護人使用的,通過Web 端授權后可遠程查看房間情況,并控制小車巡視。每個用戶都有獨立賬號,這樣可以讓類似養老中心的機構實用對多個地方監控。Web 端頁面布局如圖3 所示。
圖3 中功能有手機號綁定,數據圖表區、圖像區和指令操控區。Web 端頁面根據每套系統特有的機器碼進行登錄采用Highcharts 將所有環境數據可視化,各功能如下:

圖3 Web端頁面
(1)手機號綁定:當有異常發生時,會通過直接發送短信通知這個手機號。
(2)數據圖表區:把環境的數據(溫濕度、煤氣濃度、健康指標等)顯示在這里,還可以在這里設置閾值待數據超出閾值后即發送警報,警報即要在老人所在房間內發送,可通過聲音和燈光提醒,也要發送短信到監控人手機上。
(3)圖像區:小車拍攝的圖像顯示區,方便監控人查看房內情況。至于為什么不全房間放置攝像頭,這考慮到老人的隱私問題。同時這個小車能否上傳圖像,是需要經過老人授權的。
(4)指令操控區:發送各類命令,如屋內智能電器、小車移動等。
從圖1 中可以看到,嵌入式相關內容有中央控制器和各子板,這里都選用Arduino 芯片,Arduino 是開源的硬件平臺,入手快開發簡單,擴展性好,Arduino UNO R3 板子結構如圖4 所示。

圖4 Arduino芯片結構
主控制器與子板間和服務器的通信是重點要解決的問題。主控制器與子板之間使用NRF24L01 芯片通信傳輸距離幾十到幾百米,它是由NORDIC 生產的工作在2.4GHz~2.5GHz 的ISM 頻段的單片無線收發器芯片。無線收發器包括:頻率發生器、增強型“Schock-Burst”模式控制器、功率放大器、晶體振蕩器、調制器和解調器。輸出功率頻道選擇和協議的設置可以通過SPI 接口進行設置。幾乎可以連接到各種單片機芯片,并完成無線數據傳送工作。
主控制器與服務器的連接使用ESP8266 Wi-Fi 連網,該芯片是一種無線轉串口的芯片,無線傳輸距離可達300 米,遠遠滿足本項目的室內傳輸要求。
子板的功能實現都較簡單,會用到紅外控制、馬達電機、溫濕度、有毒氣體、煙霧和心率、脈搏、體溫等傳感器,巡航小車可遠程控制也可按軌跡巡航。
小車模塊由Android+Arduino+H 橋+電機+輪胎+模具+HC-05 藍牙模塊組成,Android 與Arduino 通過藍牙聯通進而將小車的行進控制轉交至Android。Android 通過自身的4G 網絡與服務器進行信息交互,即轉移控制權至服務器,相應的Android 調用自身的攝像頭將實時畫面拍攝上傳至服務器完成監控功能。
本項目的創新與特色有如下4 點:
(1)目前智能看護和智能家居相關的系統大多采用ZigBee 技術或ARM 體系,雖然這些系統功能強大,但開發過程較復雜,同時成本高。而本系統采用最近流行的Arduino 平臺,這是開源的平臺成本非常低,入手快。
(2)考慮到老人對智能設備的掌握程度不高,本系統采用雙輸入模式:語音和App。且App 應用只有一個圖形界面,每個功能都獨立設置操作。
(3)緊急呼救,老人單獨在家很容易突發意外如摔倒,老人可呼叫遠程報警,系統檢測到亦會自動報警。
(4)本系統提供云服務器接入接口,監護人通過授權后可遠程協助老人對智能設備進行控制,可時也可實時查看室內環境。