宋林,周媛,曾玉姍
(1.南京信息工程大學(xué)江蘇省氣象傳感網(wǎng)技術(shù)工程中心,江蘇南京210044;2.南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇南京210044)
基于云計(jì)算和機(jī)器學(xué)習(xí)的智能家居系統(tǒng)設(shè)計(jì)
宋林1,2,周媛1,2,曾玉姍2
(1.南京信息工程大學(xué)江蘇省氣象傳感網(wǎng)技術(shù)工程中心,江蘇南京210044;2.南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇南京210044)
隨著科技進(jìn)步,智能家居日益成為研究熱點(diǎn)。為了解決現(xiàn)有系統(tǒng)存在自主適應(yīng)能力上的不足,提出了一種基于云計(jì)算、機(jī)器學(xué)習(xí)與嵌入式技術(shù)的智能家居系統(tǒng)。該系統(tǒng)采用網(wǎng)關(guān)采集傳感器數(shù)據(jù),再利用運(yùn)行Hadoop和機(jī)器學(xué)習(xí)算法的云計(jì)算平臺(tái)對(duì)用戶(hù)行為進(jìn)行學(xué)習(xí)和識(shí)別,實(shí)現(xiàn)自主決策能力。通過(guò)實(shí)例分析可知,該方案使智能家居系統(tǒng)在人性化方面得到極大提高。
云計(jì)算;智能家居;機(jī)器學(xué)習(xí);Hadoop
傳統(tǒng)智能家居系統(tǒng)大多數(shù)采用模式控制的方式,利用用戶(hù)手動(dòng)的選擇模式,結(jié)合傳感器網(wǎng)絡(luò)達(dá)到相應(yīng)的控制效果。還有部分系統(tǒng)將云端加入其中,但是大部分只起到云端存儲(chǔ)和提供用戶(hù)監(jiān)控接口的功能。由于這種固定的方式使其靈活性和自適應(yīng)能力低下。本系統(tǒng)將嵌入式系統(tǒng)、云計(jì)算[1]和機(jī)器學(xué)習(xí)結(jié)合起來(lái),既實(shí)現(xiàn)了遠(yuǎn)程監(jiān)控的功能,同時(shí)利用分布式深度學(xué)習(xí)算法使系統(tǒng)能夠適應(yīng)用戶(hù)的行為,動(dòng)態(tài)的做出決策。在很大程度上彌補(bǔ)了傳統(tǒng)智能家居系統(tǒng)的不足。
1.1總體硬件設(shè)計(jì)
系統(tǒng)本地端通過(guò)WIFI和無(wú)線(xiàn)路由器搭建家居內(nèi)部控制網(wǎng)絡(luò),并使用網(wǎng)關(guān)作為主控端[2]。同時(shí)網(wǎng)關(guān)通過(guò)因特網(wǎng)與云端通訊,在云端上進(jìn)行存儲(chǔ)和機(jī)器學(xué)習(xí)等操作。用戶(hù)則可以通過(guò)手機(jī)等智能終端與云端相接實(shí)現(xiàn)對(duì)家庭環(huán)境的監(jiān)測(cè)和設(shè)備的控制,系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)Fig.1Structure diagram of the system
1.2本地硬件設(shè)計(jì)
①網(wǎng)關(guān)硬件設(shè)計(jì)
網(wǎng)關(guān)起的是一個(gè)樞紐和控制的作用,外部通過(guò)因特網(wǎng)連接到云端,內(nèi)部則通過(guò)工作在AP模式的WIFI模塊與節(jié)點(diǎn)通信。其次,網(wǎng)關(guān)通過(guò)Flash存儲(chǔ)器保存一些配置信息和數(shù)據(jù)信息。
②節(jié)點(diǎn)硬件設(shè)計(jì)
由于節(jié)點(diǎn)需要與網(wǎng)關(guān)通信,所以采用了工作在STA模式的WIFI無(wú)線(xiàn)通信模塊。另外,節(jié)點(diǎn)分為控制節(jié)點(diǎn)和傳感器節(jié)點(diǎn)兩類(lèi)。其中控制節(jié)點(diǎn)通過(guò)PWM、SPI等信號(hào)提供驅(qū)動(dòng)電器設(shè)備,傳感器節(jié)點(diǎn)則通過(guò)相應(yīng)通訊協(xié)議獲取傳感器數(shù)據(jù)。同時(shí),利用LCD顯示屏來(lái)顯示一些設(shè)備相關(guān)的信息,并通過(guò)EEPROM存儲(chǔ)器來(lái)存儲(chǔ)配置信息。
1.3云端硬件設(shè)計(jì)
云端上采用三臺(tái)運(yùn)行Linux的計(jì)算機(jī),通過(guò)交換機(jī)相互連接組成完全分布式的Hadoop集群,并通過(guò)路由器連入互聯(lián)網(wǎng)。
2.1本地軟件設(shè)計(jì)
1)網(wǎng)關(guān)的軟件設(shè)計(jì)
網(wǎng)關(guān)是智能家居網(wǎng)絡(luò)中連接云端和節(jié)點(diǎn)的橋梁,同時(shí)在其上運(yùn)行ANDROID軟件,作用是實(shí)現(xiàn)云端和家庭內(nèi)部網(wǎng)絡(luò)的通信,并對(duì)節(jié)點(diǎn)進(jìn)行監(jiān)控并做出決策。除了通訊方面,還包括如下幾個(gè)主要模塊:
①控制表。表中存放著傳感器數(shù)據(jù)與控制器行為的對(duì)應(yīng)關(guān)系。利用該表,網(wǎng)關(guān)可以很快的根據(jù)傳感器數(shù)據(jù)和時(shí)間給出相應(yīng)決策。該表也是網(wǎng)關(guān)軟件的核心部件。
②決策模塊。該模塊根據(jù)傳感器數(shù)據(jù)和時(shí)間信息,利用控制表給出相應(yīng)控制行為。
③數(shù)據(jù)庫(kù)。利用SQLite數(shù)據(jù)庫(kù),存放控制表、傳感器數(shù)據(jù)、時(shí)間信息以及控制行為。
其中網(wǎng)關(guān)的內(nèi)部軟件運(yùn)行流程,如圖2所示。
圖2 網(wǎng)關(guān)運(yùn)行流程圖Fig.2Flow chart the gateway operation
2)節(jié)點(diǎn)的軟件設(shè)計(jì)
傳感器節(jié)點(diǎn)主要功能是獲取傳感器數(shù)據(jù)并上傳給網(wǎng)關(guān)??刂乒?jié)點(diǎn)的主要功能則為接收來(lái)自網(wǎng)關(guān)的命令并執(zhí)行相應(yīng)的控制操作。
節(jié)點(diǎn)在開(kāi)機(jī)之后,首先進(jìn)行系統(tǒng)配置和模塊初始化,主要包括:配置管腳參數(shù)、配置模塊寄存器和打開(kāi)中斷等等。初始化完成之后,節(jié)點(diǎn)開(kāi)始正常工作。網(wǎng)絡(luò)收發(fā)模塊、傳感器采集模塊和設(shè)備控制模塊3個(gè)模塊并行,分別執(zhí)行各自的任務(wù)。
2.2云端軟件設(shè)計(jì)
對(duì)于機(jī)器學(xué)習(xí),智能家居中的樣本數(shù)據(jù)是一個(gè)多維、數(shù)據(jù)量巨大的模型,所以不便于在本地進(jìn)行計(jì)算而采用擁有強(qiáng)大的性能和存儲(chǔ)能力的云計(jì)算方案。
1)云端軟件平臺(tái)設(shè)計(jì)
云端軟件分為云計(jì)算和網(wǎng)絡(luò)服務(wù)器兩部分,其中云計(jì)算采用Hadoop集群,并利用HBase與Hive搭建數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)信息,網(wǎng)絡(luò)服務(wù)器則采用Socket Server和JAVA NIO技術(shù),提供可靠并且簡(jiǎn)易的網(wǎng)絡(luò)連接,實(shí)現(xiàn)云端與網(wǎng)關(guān)和用戶(hù)控制終端的實(shí)時(shí)通訊。
2)云端數(shù)據(jù)庫(kù)存儲(chǔ)設(shè)計(jì)
云端數(shù)據(jù)庫(kù)負(fù)責(zé)存儲(chǔ)用戶(hù)信息、控制器與傳感器數(shù)據(jù)、機(jī)器學(xué)習(xí)參數(shù)以及決策信息等。其中主要數(shù)據(jù)表為狀態(tài)表、控制表和學(xué)習(xí)表。其中狀態(tài)表中存放網(wǎng)關(guān)上傳的傳感器數(shù)據(jù),控制表中存放用戶(hù)設(shè)定的傳感器與設(shè)備行為的對(duì)應(yīng)關(guān)系,而學(xué)習(xí)表中則存放著機(jī)器學(xué)習(xí)算法的參數(shù)和訓(xùn)練結(jié)果。
網(wǎng)關(guān)將采集到的傳感器數(shù)據(jù)上傳到云端并保存到狀態(tài)表中。通過(guò)機(jī)器學(xué)習(xí)算法修改學(xué)習(xí)表,從而生成控制表,再傳遞給網(wǎng)關(guān)進(jìn)行自動(dòng)控制。
3)云端機(jī)器學(xué)習(xí)算法設(shè)計(jì)
由于訓(xùn)練的對(duì)象具有復(fù)雜度高、層數(shù)多和樣本數(shù)量巨大的特點(diǎn),為了保證訓(xùn)練的質(zhì)量和速度采用了深度學(xué)習(xí)[3]的方法,具體使用了Deep Belief Network(DBN)的訓(xùn)練算法[4]。同時(shí)為了能夠發(fā)揮Hadoop分布式平臺(tái)的優(yōu)勢(shì),對(duì)算法進(jìn)行了相應(yīng)的優(yōu)化。其核心方法為將一個(gè)大數(shù)據(jù)集分解成多個(gè)小的數(shù)據(jù)塊,利用多個(gè)運(yùn)算節(jié)點(diǎn)對(duì)數(shù)據(jù)塊進(jìn)行同時(shí)計(jì)算,從而達(dá)到分布式優(yōu)化的目的。
其中數(shù)據(jù)集從云端數(shù)據(jù)庫(kù)中讀取,包括傳感器數(shù)據(jù)、時(shí)間信息、設(shè)備狀態(tài)和用戶(hù)決策。RBM[5]的參數(shù)包括權(quán)值和偏置值,同時(shí)預(yù)先設(shè)定了訓(xùn)練的層數(shù)和每層訓(xùn)練數(shù)據(jù)的數(shù)量。相應(yīng)的算法流程如圖3所示。
4)基于ANDROID客戶(hù)端[6]軟件設(shè)計(jì)
為了用戶(hù)的方便,客戶(hù)端通過(guò)互聯(lián)網(wǎng)訪(fǎng)問(wèn)云端從而監(jiān)測(cè)家庭環(huán)境和控制設(shè)備。其設(shè)計(jì)主要包括用戶(hù)界面UI,Socket通信和SQLite數(shù)據(jù)庫(kù)等。
3.1系統(tǒng)實(shí)例的搭建
根據(jù)系統(tǒng)設(shè)計(jì)方案,實(shí)現(xiàn)了一套原型系統(tǒng)。其中本地端為網(wǎng)關(guān)、溫濕度節(jié)點(diǎn)、光照度節(jié)點(diǎn)、蜂鳴器與煙霧節(jié)點(diǎn)、電機(jī)控制節(jié)點(diǎn)與LED控制節(jié)點(diǎn)。同時(shí)搭建好云計(jì)算平臺(tái)和網(wǎng)絡(luò)服務(wù)器。系統(tǒng)實(shí)例如圖4所示。
3.2系統(tǒng)實(shí)例的測(cè)試
測(cè)試控制條件,如表1所示。觸發(fā)條件順序?yàn)椋簻囟龋〝z氏度)、濕度(相對(duì))、光照度(流明)、煙霧(毫升每立方厘米)。
測(cè)試采用的方法是在7天時(shí)間內(nèi),人為反復(fù)地實(shí)現(xiàn)表中的(1)、(2)、(3)項(xiàng)目的觸發(fā)條件并人為地進(jìn)行相應(yīng)設(shè)備動(dòng)作。將傳感器數(shù)據(jù)和人為動(dòng)作打包成樣本上傳至云端,云端在訓(xùn)練完畢后將機(jī)器學(xué)習(xí)的參數(shù)和控制表推送給網(wǎng)關(guān),進(jìn)行自主控制。經(jīng)過(guò)多次試驗(yàn)之后,自主學(xué)習(xí)的最終控制結(jié)果如表2所示。
圖3 機(jī)器學(xué)習(xí)算法流程圖Fig.3Flow chart the machine learning algorithm
圖4 系統(tǒng)實(shí)例圖Fig.4Figure of system instance
表1 測(cè)試條件Tab.1Test condition
表2 自主學(xué)習(xí)測(cè)試結(jié)果Tab.2Test result of autonomic learning
本文創(chuàng)新的將云計(jì)算、機(jī)器學(xué)習(xí)引入智能家居系統(tǒng),實(shí)現(xiàn)了自主學(xué)習(xí)和控制的功能。根據(jù)實(shí)例分析,這種方案可以達(dá)到一個(gè)相對(duì)較高的正確率,彌補(bǔ)了傳統(tǒng)智能家居[7]在人性化方面的不足。但是本文實(shí)現(xiàn)的條件相對(duì)簡(jiǎn)單,并未完全體現(xiàn)出這種方案的優(yōu)勢(shì),所以在以后仍需針對(duì)一些現(xiàn)實(shí)的家居環(huán)境進(jìn)行研究。
[1]岳敬華.基于云服務(wù)的智能家居系統(tǒng)的研究與設(shè)計(jì)[D].杭州:杭州電子科技大學(xué),2013.
[2]孟平.多功能智能家居系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱理工大學(xué),2014.
[3]張浩,吳秀娟.深度學(xué)習(xí)的內(nèi)涵及認(rèn)知理論基礎(chǔ)探析[J].中國(guó)電化教育,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的智能家居無(wú)線(xiàn)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.
[7]李琪,秦會(huì)斌,楊永舒,等.基于Android平臺(tái)的智能家居系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(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稿件編號(hào):201502154
2013年度校級(jí)教改課題(N1885013231);2014年度實(shí)驗(yàn)室開(kāi)放經(jīng)費(fèi)(N1081005231);2015年校教改提升工程-大學(xué)生創(chuàng)新訓(xùn)練項(xiàng)目(1214071501207)
宋林(1993—),男,江蘇南京人。研究方向:物聯(lián)網(wǎng)、機(jī)器學(xué)習(xí)。