宋林,周媛,曾玉姍
(1.南京信息工程大學江蘇省氣象傳感網技術工程中心,江蘇南京210044;2.南京信息工程大學電子與信息工程學院,江蘇南京210044)
基于云計算和機器學習的智能家居系統設計
宋林1,2,周媛1,2,曾玉姍2
(1.南京信息工程大學江蘇省氣象傳感網技術工程中心,江蘇南京210044;2.南京信息工程大學電子與信息工程學院,江蘇南京210044)
隨著科技進步,智能家居日益成為研究熱點。為了解決現有系統存在自主適應能力上的不足,提出了一種基于云計算、機器學習與嵌入式技術的智能家居系統。該系統采用網關采集傳感器數據,再利用運行Hadoop和機器學習算法的云計算平臺對用戶行為進行學習和識別,實現自主決策能力。通過實例分析可知,該方案使智能家居系統在人性化方面得到極大提高。
云計算;智能家居;機器學習;Hadoop
傳統智能家居系統大多數采用模式控制的方式,利用用戶手動的選擇模式,結合傳感器網絡達到相應的控制效果。還有部分系統將云端加入其中,但是大部分只起到云端存儲和提供用戶監控接口的功能。由于這種固定的方式使其靈活性和自適應能力低下。本系統將嵌入式系統、云計算[1]和機器學習結合起來,既實現了遠程監控的功能,同時利用分布式深度學習算法使系統能夠適應用戶的行為,動態的做出決策。在很大程度上彌補了傳統智能家居系統的不足。
1.1總體硬件設計
系統本地端通過WIFI和無線路由器搭建家居內部控制網絡,并使用網關作為主控端[2]。同時網關通過因特網與云端通訊,在云端上進行存儲和機器學習等操作。用戶則可以通過手機等智能終端與云端相接實現對家庭環境的監測和設備的控制,系統總體結構如圖1所示。

圖1 系統總體結構Fig.1Structure diagram of the system
1.2本地硬件設計
①網關硬件設計
網關起的是一個樞紐和控制的作用,外部通過因特網連接到云端,內部則通過工作在AP模式的WIFI模塊與節點通信。其次,網關通過Flash存儲器保存一些配置信息和數據信息。
②節點硬件設計
由于節點需要與網關通信,所以采用了工作在STA模式的WIFI無線通信模塊。另外,節點分為控制節點和傳感器節點兩類。其中控制節點通過PWM、SPI等信號提供驅動電器設備,傳感器節點則通過相應通訊協議獲取傳感器數據。同時,利用LCD顯示屏來顯示一些設備相關的信息,并通過EEPROM存儲器來存儲配置信息。
1.3云端硬件設計
云端上采用三臺運行Linux的計算機,通過交換機相互連接組成完全分布式的Hadoop集群,并通過路由器連入互聯網。
2.1本地軟件設計
1)網關的軟件設計
網關是智能家居網絡中連接云端和節點的橋梁,同時在其上運行ANDROID軟件,作用是實現云端和家庭內部網絡的通信,并對節點進行監控并做出決策。除了通訊方面,還包括如下幾個主要模塊:
①控制表。表中存放著傳感器數據與控制器行為的對應關系。利用該表,網關可以很快的根據傳感器數據和時間給出相應決策。該表也是網關軟件的核心部件。
②決策模塊。該模塊根據傳感器數據和時間信息,利用控制表給出相應控制行為。
③數據庫。利用SQLite數據庫,存放控制表、傳感器數據、時間信息以及控制行為。
其中網關的內部軟件運行流程,如圖2所示。

圖2 網關運行流程圖Fig.2Flow chart the gateway operation
2)節點的軟件設計
傳感器節點主要功能是獲取傳感器數據并上傳給網關。控制節點的主要功能則為接收來自網關的命令并執行相應的控制操作。
節點在開機之后,首先進行系統配置和模塊初始化,主要包括:配置管腳參數、配置模塊寄存器和打開中斷等等。初始化完成之后,節點開始正常工作。網絡收發模塊、傳感器采集模塊和設備控制模塊3個模塊并行,分別執行各自的任務。
2.2云端軟件設計
對于機器學習,智能家居中的樣本數據是一個多維、數據量巨大的模型,所以不便于在本地進行計算而采用擁有強大的性能和存儲能力的云計算方案。
1)云端軟件平臺設計
云端軟件分為云計算和網絡服務器兩部分,其中云計算采用Hadoop集群,并利用HBase與Hive搭建數據庫來存儲信息,網絡服務器則采用Socket Server和JAVA NIO技術,提供可靠并且簡易的網絡連接,實現云端與網關和用戶控制終端的實時通訊。
2)云端數據庫存儲設計
云端數據庫負責存儲用戶信息、控制器與傳感器數據、機器學習參數以及決策信息等。其中主要數據表為狀態表、控制表和學習表。其中狀態表中存放網關上傳的傳感器數據,控制表中存放用戶設定的傳感器與設備行為的對應關系,而學習表中則存放著機器學習算法的參數和訓練結果。
網關將采集到的傳感器數據上傳到云端并保存到狀態表中。通過機器學習算法修改學習表,從而生成控制表,再傳遞給網關進行自動控制。
3)云端機器學習算法設計
由于訓練的對象具有復雜度高、層數多和樣本數量巨大的特點,為了保證訓練的質量和速度采用了深度學習[3]的方法,具體使用了Deep Belief Network(DBN)的訓練算法[4]。同時為了能夠發揮Hadoop分布式平臺的優勢,對算法進行了相應的優化。其核心方法為將一個大數據集分解成多個小的數據塊,利用多個運算節點對數據塊進行同時計算,從而達到分布式優化的目的。
其中數據集從云端數據庫中讀取,包括傳感器數據、時間信息、設備狀態和用戶決策。RBM[5]的參數包括權值和偏置值,同時預先設定了訓練的層數和每層訓練數據的數量。相應的算法流程如圖3所示。
4)基于ANDROID客戶端[6]軟件設計
為了用戶的方便,客戶端通過互聯網訪問云端從而監測家庭環境和控制設備。其設計主要包括用戶界面UI,Socket通信和SQLite數據庫等。
3.1系統實例的搭建
根據系統設計方案,實現了一套原型系統。其中本地端為網關、溫濕度節點、光照度節點、蜂鳴器與煙霧節點、電機控制節點與LED控制節點。同時搭建好云計算平臺和網絡服務器。系統實例如圖4所示。
3.2系統實例的測試
測試控制條件,如表1所示。觸發條件順序為:溫度(攝氏度)、濕度(相對)、光照度(流明)、煙霧(毫升每立方厘米)。
測試采用的方法是在7天時間內,人為反復地實現表中的(1)、(2)、(3)項目的觸發條件并人為地進行相應設備動作。將傳感器數據和人為動作打包成樣本上傳至云端,云端在訓練完畢后將機器學習的參數和控制表推送給網關,進行自主控制。經過多次試驗之后,自主學習的最終控制結果如表2所示。

圖3 機器學習算法流程圖Fig.3Flow chart the machine learning algorithm

圖4 系統實例圖Fig.4Figure of system instance

表1 測試條件Tab.1Test condition

表2 自主學習測試結果Tab.2Test result of autonomic learning
本文創新的將云計算、機器學習引入智能家居系統,實現了自主學習和控制的功能。根據實例分析,這種方案可以達到一個相對較高的正確率,彌補了傳統智能家居[7]在人性化方面的不足。但是本文實現的條件相對簡單,并未完全體現出這種方案的優勢,所以在以后仍需針對一些現實的家居環境進行研究。
[1]岳敬華.基于云服務的智能家居系統的研究與設計[D].杭州:杭州電子科技大學,2013.
[2]孟平.多功能智能家居系統的設計與實現[D].哈爾濱:哈爾濱理工大學,2014.
[3]張浩,吳秀娟.深度學習的內涵及認知理論基礎探析[J].中國電化教育,2012(309):7-21.
[4]Hinton G.Training products of experts by minimizing contrastive divergence[J].Neural Computation,2002(14):1771-1800.
[5]Hinton G.A practical guide to training restricted Boltzmann machines[J].Momentum,2010,9(1):926.
[6]鹿曼.基于Android的智能家居無線控制系統的設計與實現[D].成都:電子科技大學,2013.
[7]李琪,秦會斌,楊永舒,等.基于Android平臺的智能家居系統設計[J].電子設計工程,2014(24):52-54,57.
The design of smart home system based on cloud computing and machine learning
SONG Lin1,2,ZHOU Yuan1,2,ZENG Yu-shan2
(1.Jiangsu Technology&Engineering Center of Meteorological Sensor Network,Nanjing University of Information Science and Technology,Nanjing 210044,China;2.School of Electronic&Information Engineering,Nanjing University of Information Science&Technology,Nanjing 210044,China)
As technology advances,the smart home is becoming a research hotspot.In order to solve the shortcomings of existing systems on self-adaptability proposed smart home system based on cloud computing,machine learning and embedded technology.The system uses a gateway sensor data collection,reuse and machine learning algorithms to run Hadoop cloud computing platform for learning and recognition of user behavior,achieving autonomous decision-making capacity.By way of example analysis,the program enables smart home system has been greatly improved in terms of humanity.
cloud computing;smart home;machine learning;Hadoop
TN02
A
1674-6236(2015)24-0005-03
2015-02-28稿件編號:201502154
2013年度校級教改課題(N1885013231);2014年度實驗室開放經費(N1081005231);2015年校教改提升工程-大學生創新訓練項目(1214071501207)
宋林(1993—),男,江蘇南京人。研究方向:物聯網、機器學習。