張運玉
(廣州市輕工職業學校計算機教研室 廣州 510650)
基于Android的智能家居安全監控系統的設計?
張運玉
(廣州市輕工職業學校計算機教研室 廣州 510650)
針對傳統智能家居的健康狀態和安全監控主要依賴人工定檢的問題,論文將基于Android的物聯網技術引入了智能家居狀態監測和安全評估中,構建了智能家居遠程監控系統。該系統的Android遠程操作基于MVP模式開發應用程序,利用神經網絡處理用戶日常使用操作數據建立起的網絡數據模型,結合S3C2440A微控制器將網關中移植了嵌入式Linux以便于不同智能家居驅動程序的開發。最后運用電力線通信網絡將各智能電器的網關進行連接,通過計算路由節點的組網成功率結果可得:15組各20個智能電器的網絡節點接入成功監控率達到98.33%,該系統能夠對智能家居眾多電器進行同時監控,解決了系統的數據并發造成網絡堵塞而無法安全監控的問題。
Android;智能家居;MVP模式;電力線通信;遠程監控
近年來隨著物聯網技術在當今社會的快速發展,以物聯網為中心的相關衍生技術也在不斷發展[1]。智能家居以住宅為平臺,利用綜合布線技術、網絡通信技術、智能家居系統設計方案安全防范技術、自動控制技術、音視頻技術將家居生活有關的設施集成,形成了一整套智能家居體系,極大地提高了便捷性、安全性、娛樂性[2~4]。目前,智能家居行業還處于剛剛起步的階段,將來的應用前景會非常可觀[5],然而現在市面上的智能家居系統大多還是處于“自動控制”狀態[6],簡單地通過用戶終端去控制底層設備,整個相關行業離真正的“智能”還有很長的路要走。
本研究將在MVP模式下開發Android應用程序,由于智能家居的用戶數量眾多,特定用戶會做出不同的行為,為了簡化數學模型的建立,先將用戶在日常生活中產生的一系列數據進行預處理,模型在初始階段可以簡單地設立觀看電視節目,觀看電影,觀看直播,室內溫濕度調節,根據用戶習慣設置室內燈光模式,空調熱水器設置等方面。采集的數據是通過智能家居中的傳感器收集得到的,反映了用戶的行為習慣,根據這些數據可以在一定程度上推測出用戶的行為。在網關設計中,S3C2440A移植了嵌入式Linux以便于不同智能家居驅動程序的開發,最后利用電力線通信網絡將各個控制部分的網絡節點進行連接。
2.1 MVP的應用
若開發Android的遠程操作智能家居的應用,該應用的界面是一個簡單的顯示按鈕和展示用戶數據的列表,用戶點擊按鈕后列表當中會顯示用戶數據。用戶數據儲存在本地數據庫。采用MVP來開發這個簡單應用[7],Model,View和Presenter的類圖如圖1所示。

圖1 MVP類圖
從用戶點擊到顯示用戶數據的流程如下:
Step1:用戶點擊后,View調用 presenter.load-UserData()。
Step2:Presenter在 loadUserData()里調用model.queryUser()并等待。
Step3:Model的queryUser里查詢數據庫,返回結果給 Presenter[8]。
Step4:Presenter調用view.showUserData()顯示數據。
在MVP中View和Presenter通常是以接口的形式出現的[9]。這對進行跨平臺的開發十分重要,因為View是接口,所以并沒有依賴于任何特定的平臺,也沒有規定顯示的樣式,我們完全可以在不同的平臺中使用不同的方式實現[10],但是Presenter依然可以使用一樣的方式跟View進行交互。采用MVP架構最重要的原因就是因為MVP基于接口(協議)編程的思想。
2.2 Android中的MVP模式
Android的開發生態是比較自由和混亂的,缺乏統一的規范,導致很多Android應用的代碼質量都比較低。不過因為Android的自由開放,也誕生了許多優秀的框架,不管是MVC,MVP還是MVVM架構都有不少的支持者[11]。在Github上推出了一個新的項 目 Android Architecture Blueprints[12],對Android應用的程序架構采用的就是MVP模式。Android中MVP的架構如圖2所示。

圖2 Android中的MVP架構
圖2 中的Repository對應著MVP中的Model層,作為應用的數據源。常見的移動應用中,數據源會包括兩個部分,一個是遠程數據源,另一個是本地的數據源。如何保持維持兩個數據源的一致性和完整性是Model層內部需要處理的邏輯,對于Presenter來說,只需知道如何從Model層獲取數據即可,而不需要知道數據來源。
View層中我們主要使用Fragment來實現View,在Android當中Activity和Fragment都可以被作為頁面劃分的單位,選擇Fragment主要有兩個原因[13]:
1)Activity的生命周期更加清晰可控,適合用來創建Presenter和管理Presenter和View的連接。
2)Fragment可以比較方便地復用和組合,在比較大的屏幕上(比如智能手機)。一個頁面上可能會包括多個View。這時候可以比較方便利用Fragment的特性,如果采用Activity則比較不方便。
3.1 模型預處理
以用戶使用空調熱水器的行為習慣為例,做出詳細的模型分析。用戶使用空調熱水器這一行為有幾個關鍵數據,比如使用空調熱水器的時間、空調設置溫度、熱水器的加熱溫度、空調的模式設置、熱水器使用時間等,根據對這些關鍵數據的樣本學習,系統建立起一些自定義模式,推斷出用戶的習慣動作,根據預測結果,可以在用戶下班之前向其推送對空調熱水器的設置信息[14]。提前開啟空調,以及熱水器,提高用戶體驗度。
對樣本數據進行歸一化處理,基于Sigmoid函數采用神經網絡激活函數,所以我們將數據映射到[0,1]中,包括樣本的時間參量,這里我們將時間單獨進行處理,將月份、星期、小時分鐘平均映射到[0,1],并且將家電編號映射到該范圍中,其余數據,例如空調的溫度,熱水器溫度等,我們采用線性歸一化函數進行數據處理[15]:

其中,Xnorm為歸一化后的數據;Xmin和 Xmax為輸入或輸出數據的最值;X為輸入或輸出數據。例如10月15日星期三晚上18點開啟空調(編號0.2000),并設置溫度為21℃,歸一化處理后的部分樣本數據例如(0.2000,0.0001,0.0010,0.7500,0.0000,0.5654),歸一化的樣本數據作為輸入,將數據輸入到網絡模型中,將其中一部分樣本作為期望輸出值進行誤差分析。
3.2 模型建立
網絡結構的設計包括網絡層數的設計及各層包括的神經元數目的選取兩個方面[16]。一個神經網絡一定具有一個輸入層和一個輸出層,這一點是由實際問題本身決定的,因此,網絡結構的設計重點與難點在于隱層結構的設計,具體是指隱層的數目以及各隱層神經元數目,隱層的結構在很大程度上決定著網絡的訓練速度、泛化能力等。對于隱層的層數,理論上已經證明,一個三層的神經網絡只要隱層神經元數足夠多,就具有模擬任意復雜的非線性映射能力。故一般采用一個隱層的神經網絡即可。對于隱層的神經元數目問題,隱含層神經元數過少,學習可能不收斂,網絡的識別能力、泛化能力降低,隱含層神經元數過多,導致網絡訓練長時間不收斂、容錯性能下降。對于隱層神經元數目,我們采用一般的估算方法,估算公式如下。

其中,l為隱層神經元數目,n為輸入層神經元數目,m為輸出層神經元數目,β為1~10之間的常數。
由于智能家居網關功能較復雜,對穩定性、安全性的要求較高,因此,在實現智能家居網關所能提供的服務時,需基于嵌入式操作系統開發網關。
4.1 網關硬件設計
在智能家居的背景下,通常需要通過互聯網實現對智能家居設備節點的控制,同時家庭內部的設備之間也需要實現通信于互控。本文所設計的智能家居網關的硬件框圖如圖3所示。
家庭內部可能存在多種硬件設備,智能家居網關需要通過不同的接口和這些設備建立連接。通過通用I/O端口控制顯示屏、傳感器等硬件設備,通過不同的工業總線標準(RS232、I2C)接口來控制外部設備,以及通過高速總線來訪問主存以及網卡設備等[17]。此外,在本文所設計的智能家居網關硬件框圖中,網關處理器還能和MCU等智能節點建立了連接,使得MCU能夠通過網關實現對家庭內部其他設備的控制。AX88180等網卡芯片使得網關能夠接入互聯網絡,用戶可通過網絡服務器實現對網關的遠程訪問,從而實現對家庭內部設備的遠程控制。

圖3 智能家居網關硬件構架
4.2 網關軟件設計
所設計的網關軟件框圖如圖4所示,整個軟件框圖主要分兩部分,網關應用模塊和嵌入式Linux操作系統模塊。嵌入式Linux操作系統模塊主要包含了嵌入式Linux內核、驅動程序以及Yaffs2文件系統[18]。驅動程序實現了對家庭內部設備的控制,如智能節點、傳感器等字符設備,以及網卡等塊設備,Yaffs2文件系統為智能家居網關存儲數據提供了支持,而嵌入式Linux內核則是對標準的Linux內核進行裁剪所得到的。嵌入式Linux操作系統為網關應用提供了API,使得網關應用能夠對家庭內部的設備進行控制,是網關應用開發的基礎。

圖4 智能家居網關軟件構架
網關應用則主要包含了傳輸控制、協議解析、安全驗證以及功能邏輯單元四個模塊。傳輸控制模塊主要用于接收家庭內部設備的數據,并且能夠根據上層應用給出的指令實現對家庭內部設備的控制。
4.3 網關應用開發流程
在為S3C2440A移植了嵌入式Linux之后,便是對網關應用進行開發。以遠端服務器對家庭內部的空調熱水器控制為例,以說明遠端服務器如何通過智能家居網關實現對家庭內部設備的控制。首先是為空調熱水器編寫驅動程序,驅動程序的注冊和卸載流程如圖5所示。

圖5 驅動程序開發流程
在編寫好空調熱水器的驅動程序之后,由于空調熱水器通過通用I/O和S3C2440A相連接,屬于字符設備,因此,空調熱水器使用以下結構體來表示,在編寫驅動程序的時候,需要對結構體中的各字段賦適當的值。
struct miscdevice{
int minor;
const char*name;
const struct file_operations*fops;
struct list_head list;
struct device*parent;
struct device*this_device;
const char*nodename;
mode_t mode;
};
之后使用函數int misc_register(struct miscdevice*misc)實現對空調熱水器驅動程序的注冊。注冊好驅動程序之后,用戶便可以將空調熱水器視為文件,對其寫入特定的數據,以控制空調熱水器的開關。為了使服務器能夠控制空調熱水器,服務器和智能家居網關之間的通信需要采用一定的協議,使得網關能夠解析來自服務器的命令,并對空調熱水器進行控制。
5.1 電力線通信網絡
網關方案設計完成后,將組網路由算法應用到硬件平臺上進行實現。節點架構如圖6所示,節點之間通信的電力線經過電力線載波模塊相連。

圖6 節點架構
本系統控制部分的主控芯片選擇ST公司最新推出的基于Cortex M3內核的STM32系列處理器。ST32系列處理器與其他MCU相比具有更高的性價比,并且ST公司為STM32開發了專門的驅動庫,這也大大減輕了應用者的開發難度。實驗采用的電力線載波模塊為基于彌亞微電子的高性能電力載波芯片MI213而設計,本模塊的載波調制方式采用的是OQPSK調制方式,具有功耗低、輻射小、抗干擾強等特點。
由子節點所連接的溫度和濕度傳感器,每隔6小時向手機APP端發送實時監測到的溫度和濕度信息,當超過某一預先設定范圍時,提醒用戶打開制冷或者取暖設備。由處于客廳位置的子節點在家中無人時開啟安全監控模式,采用紅外傳感器進行感知,一旦有人進入,則通過子節點發送信息給主節點,觸發主節點的GSM模塊自動提醒設置,給手機發送短信,對用戶進行自動提醒。APP界面顯示如圖7所示:

圖7 APP界面顯示
5.2 周期維護
由于電力線載波通信網絡有一個特點是具有時變性,所以需要對主節點維護的路由表進行一個周期性的維護,根據主節點中的計時器信息,每隔5分鐘時間即對路由更新一次,即主節點發送一次廣播,入網的子節點發送確認信息InFrame給主節點,以便主節點進行路由表的更新。以20個節點為一組,以系統開發板上指示燈亮起作為判斷是否成功連接的標準,以60s為一組,進行15次試驗,利用式(1)收集智能電器的數據信息,結合式(2)修正神經網絡組網完成后節點連入個數如表1所示。
根據15組實驗我們通過計算得到平均組網成功率:(15組組網完成連入節點數的和/15組全部節點數的和)*100%=98.33%。

表1 測試結果
本文給出了用戶通過Android手機遠程操作智能家居的電力線載波通信安全監控設計,經過對組網算法加載到系統開發板上的測試和驗證,可以得到相對通信可靠性較優化的結果,并將此應用到智能家居上,通過測試,實現了家庭內部安全監測與健康監護,但是還是存在組網成功率不能達到百分之百的原因,分析可能有以下幾點:
1)數據包碰撞。在數據傳輸過程中,由于所有的節點都是物理通過電線物理連接的,所以在發送數據包的過程中可能會出現數據包的碰撞,改進的組網路由算法可以得到一定程度的改善,但不能完全避免碰撞;
2)鏈路質量。由于連接的鏈路比較遠,使得主節點的信號在傳輸到某節點時就已經損耗,該節點無法接收到主節點的連接信息,從而不能連接到網絡中;
3)丟包率。在傳輸信號過程中,由于不確定因素使得數據包丟失,某些節點不能收到主節點發送的數據包,從而不能連接到網絡。
[1]毛燕琴,沈蘇彬.物聯網信息模型與能力分析[J].軟件學報,2014(8):1685-1695.MAO Yanqin,SHEN Subing.Information Model and Capability Analysis of Internet of Things[J].Journal of Software,2014(8):1685-1695.
[2]張新昌,周逢權.智能電網引領智能家居及能源消費革新[J].電力系統保護與控制,2014(5):59-67.ZHANG Xinchang,ZHOU Fengquan.Smart Grid Leading Smart Home and Energy Consumption Innovation[J].Power System Protection and Control,2014(5):59-67.
[3]朱敏玲,李寧.智能家居發展現狀及未來淺析[J].電視技術,2017,3(14):295-296.ZHU Minling,LI Ning.The Present Situation and Future Analysis of Intelligent Home[J].Television technology,2017,3(14):295-296.
[4]胡向東,韓愷敏,許宏如.智能家居物聯網的安全性設計與驗證[J].重慶郵電大學學報(自然科學版),2014,26(2):171-176.HU Xiangdong,HAN Kaimin,XU Hongru.Security Design and Verification of Intelligent Home Internet of Things[J].Journal of Chongqing University of Posts and Telecommunications(Natural Science Edition),2014,26(2):171-176.
[5]申斌,張桂青,汪明.基于物聯網的智能家居設計與實現[J].自動化與儀表,2013,28(2):6-10.SHEN Bing,ZHANG Guiqing,WANG Ming.Design and Implementation of Intelligent Home Based on Internet of Things[J].Automation and instrumentation,2013,28(2):6-10.
[6]張桂青,鹿曼,汪明.智能家居的“春天”來了[J].計算機科學,2013,40(6):398-402.ZHANG Guiqing,LU Man,WANG Ming.Smart home“spring”came[J].Computer science,2013,40(6):398-402.
[7]王念橋.應用MVP模式改進軟件架構[J].計算機時代.2012(4):37-38.WANG Nianqiao.Application of MVP model to improve the software architecture[J].Computer age,2012(4):37-38.
[8]曾露.MVP模式在Android中的應用研究[J].軟件,2016,37(6):75-78.ZENG Lu.Research on Application of MVP Mode in Android[J].Software,2016,37(6):75-78.
[9]劉璐.Android智能終端功能測試方法設計與系統實現[J].軟件,2014(12):79-82.LIU Lu.Design and System Realization of Function Test Method for Android Intelligent Terminal[J].Software.2014(12):79-82.
[10]楊毅.基于WEB開發框架的研究[J].無線互聯科技,2015(13):26-28.YANG Yi.Research on Web-based Development Framework[J].Wireless Internet Technology,2015(13):26-28.
[11]林亞明.基于ZK的MVVM與MVP設計模式應用研究[J].重慶文理學院學報(自然科學版),2012,31(6):72-74.LIN Yaming.Research on MVVM and MVP Design Pattern Based on ZK[J].Journal of Chongqing University of Arts and Science(Natural Science Edition),2012,31(6):72-74.
[12]錢小云,葉勇,徐俊.船載衛星通信遠程集中監控系統設計與實現[J].電訊技術,2015,55(2):216-221.QIAN Xiaoyun,YE Yong,Xu Jun.Design and Implementation of Remote Concentration Monitoring System for Shipborne Satellite Communication[J].Telecommunications technology,2015,55(2):216-221.
[13]關超達.多畫面分割監視及報警系統在播出中心的應用[J].西部廣播電視,2013(12):124-127.GUAN Chaoda.Multi-screen segmentation monitoring and alarm system in the broadcast center application[J].Western radio and television,2013(12):124-127.
[14]董立巖,隋鵬,辛曉華.基于Android的智能家居終端控制系統[J].吉林大學學報(信息科學版),2014(3):303-307.DONG Liyan,SUI Peng,XIN Xiaohua.Intelligent home terminal control system based on Android[J].Journal of Jilin University(Information Science Edition),2014(3):303-307.
[15]王怡,鄂旭.基于物聯網無線傳感的智能家居研究[J].計算機技術與發展,2015(24):118-118.WANG Yi,E Xu.Research on Intelligent Home Based on Wireless Sensor of Internet of Things[J].Computer Technology and Development,2015(24):118-118.
[16]康祥喆.淺談我國智能家居的現狀及發展趨勢[J].中國科技信息,2014(8):121-122.KANG Xiangzhe.On the Present Situation and Developing Trend of Intelligent Home in China[J].China Science and Technology Information,2014(8):121-122.
[17]趙勇.基于ARM和ZigBee的智能家居遠程監控系統設計[J].測控技術,2012,31(11):52-54.ZHAO Yong.Design of Intelligent Home Remote Monitoring System Based on ARM and ZigBee[J].Measurement and Control Technology,2012,31(11):52-54.
[18]程偉.支持Yaffs2文件系統的U-Boot的實現[J].計算機工程與設計,2012,33(3):936-940.CHENG Wei.Support U-Boot implementation of Yaffs2 file system[J].Computer Engineering and Design,2012,33(3):936-940.
Design of Intelligent Home Security Monitoring System Based on Android
ZHANG Yunyu
(Computer Teaching and Research Room,Guangzhou Light Industry Vocational School,Guangzhou 510650)
In view of the problem that the health status and safety monitoring of the traditional intelligent home are mainly dependent on the manual inspection,this paper introduces the intelligent home-based remote monitoring system by introducing the Internet-based Internet of Things technology into the intelligent home condition monitoring and safety assessment.The system's Android remote operation based on the MVP model to develop applications,the use of neural networks to deal with users daily use of operational data to establish the network data model,combined with S3C2440A microcontrollers in the gateway to the embedded Linux to facilitate different smart home drivers development.Finally,the power line communication network is used to connect the intelligent electrical appliances to the gateway.By calculating the success rate of the routing nodes,the success rate of the network nodes of 15 intelligent devices is 98.33%.The system can intelligent home many electrical appliances at the same time monitoring,to solve the system data and network congestion caused by the problem can not be security monitoring.
Android,smart home,MVP mode,power line communication,remote monitoring
TP277
10.3969/j.issn.1672-9722.2017.11.044
Class Number TP277
2017年5月10日,
2017年6月30日
張運玉,女,研究方向:計算機軟件應用。