基于Hadoop的智能家居信息處理平臺(tái)
近年來,在物聯(lián)網(wǎng)等具有海量數(shù)據(jù)需求的應(yīng)用變得越來越普遍時(shí),無論是從科學(xué)研究還是從應(yīng)用開發(fā)的角度來看,掌握云計(jì)算技術(shù)已成為一種趨勢(shì)。智能家居作為物聯(lián)網(wǎng)應(yīng)用的主要領(lǐng)域之一,自然離不開云計(jì)算。云計(jì)算的發(fā)展使用戶無需關(guān)注復(fù)雜的內(nèi)部工作機(jī)制、無需具備豐富的分布式系統(tǒng)知識(shí)及開發(fā)經(jīng)驗(yàn),即可實(shí)現(xiàn)大規(guī)模分布式系統(tǒng)規(guī)定部署,以及海量數(shù)據(jù)的并行處理。
Hadoop是目前較為成熟和應(yīng)用較為廣泛的云計(jì)算架構(gòu)之一。Hadoop的核心思想是分布式并行處理。Hadoop技術(shù)中的關(guān)鍵技術(shù)是HDFS(分布式文件系統(tǒng))和Map/Reduce(映射/規(guī)約)。Hadoop利用HDFS存儲(chǔ)海量數(shù)據(jù),利用Map/Reduce進(jìn)行海量數(shù)據(jù)的計(jì)算。
文中首先介紹了智能家居與云計(jì)算的概念,接著針對(duì)傳統(tǒng)的海量數(shù)據(jù)處理方法硬件成本太高,存在計(jì)算瓶頸的問題,在云計(jì)算理論的基礎(chǔ)上針對(duì)智能家居中的門禁系統(tǒng)、溫濕度系統(tǒng)、滴灌系統(tǒng)和照明系統(tǒng)搭建了基于Hadoop的數(shù)據(jù)處理平臺(tái)??梢詫?duì)大量傳感信息進(jìn)行分布式并行處理,并根據(jù)處理結(jié)果向底層設(shè)備發(fā)送指令以實(shí)現(xiàn)智慧化服務(wù)。
1智能家居與云計(jì)算
1.1智能家居
目前通常把智能家居定義為利用電腦、網(wǎng)絡(luò)和綜合布線技術(shù),通過家庭信息管理平臺(tái)將與家居生活有關(guān)的各種子系統(tǒng)有機(jī)結(jié)合的一個(gè)系統(tǒng)。首先,需要在家居中建立一個(gè)通信網(wǎng)絡(luò),為家庭信息交互和傳輸提供必要的通路,在家庭網(wǎng)絡(luò)的操作系統(tǒng)控制下,通過相應(yīng)的硬件和執(zhí)行機(jī)構(gòu),實(shí)現(xiàn)對(duì)所有家庭網(wǎng)絡(luò)上的家電和設(shè)備的控制和監(jiān)測(cè)。其次,智能家居系統(tǒng)需要通過一定的媒介平臺(tái),提供與外界的通信通道,以實(shí)現(xiàn)與家庭以外的世界溝通信息,滿足遠(yuǎn)程控制/監(jiān)測(cè)和交換信息的需求。
1.2云計(jì)算架構(gòu)Hadoop
Hadoop是一個(gè)分布式計(jì)算框架,可以在大量廉價(jià)的硬件設(shè)備組成的集群上運(yùn)行應(yīng)用程序,為應(yīng)用程序提供了一組穩(wěn)定可靠的接口,旨在構(gòu)建一個(gè)具有高可靠性和良好擴(kuò)展性的分布式系統(tǒng)。Hadoop的主要優(yōu)點(diǎn)有:擴(kuò)容能力強(qiáng)、成本低廉、效率高、可靠性高、免費(fèi)開源及良好的可移植性。Hadoop項(xiàng)目包括多個(gè)子項(xiàng)目,但主要是由Hadoop分布式文件系統(tǒng)(HadoopDistributed File System, HDFS)和映射/規(guī)約引擎(Map/Reduce Engine)兩個(gè)主要的子項(xiàng)目構(gòu)成。
1. 3分布式文件系統(tǒng)(HDFS)
HDFS由一個(gè)名叫NameNode的主節(jié)點(diǎn)和多個(gè)名叫DataNode的子節(jié)點(diǎn)組成,是一種典型的主從式(Master/Slave)架構(gòu),這種架構(gòu)方法可以通過主節(jié)點(diǎn)屏蔽底層的復(fù)雜結(jié)構(gòu),并向Client提供方便的文件目錄映射。NameNode存儲(chǔ)著文件系統(tǒng)的元數(shù)據(jù),這些元數(shù)據(jù)包括文件系統(tǒng)的名字空間等,并負(fù)責(zé)管理文件的存儲(chǔ)等服務(wù),但實(shí)際的數(shù)據(jù)并不存放在NameNode,而是由HDFS中的DataNode來存放數(shù)據(jù),然后由Client直接與DataNode建立數(shù)據(jù)通信。
此外,HDFS為了可靠地海量存儲(chǔ)文件,各個(gè)文件以塊序列的形式存儲(chǔ)。為了保證故障容錯(cuò),文件的塊被復(fù)制。塊的大小和副本的個(gè)數(shù)都可以配置。Name鄄Node控制所有的塊復(fù)制操作,它周期性地接收來自集群中DataNode的“心跳冶回應(yīng)和塊報(bào)告。收到一個(gè)節(jié)點(diǎn)的“心跳冶回應(yīng)表示這個(gè)DataNode是正常的。
1. 4 MapReduce分布式計(jì)算
MapReduce分布式計(jì)算主要是用來在數(shù)千部服務(wù)器上同時(shí)處理保存于GFS Clusters中高達(dá)幾十TB甚至更多的數(shù)據(jù)。
MapReduce在溫度值統(tǒng)計(jì)過程中的運(yùn)作如下所述。
MapReduce的作用是對(duì)計(jì)算機(jī)集群上的大型數(shù)據(jù)集運(yùn)行分布式計(jì)算,替大量數(shù)據(jù)做平行計(jì)算處理。MapReduce的整個(gè)架構(gòu)是由Map和Reduce函數(shù)組成的,當(dāng)程序輸入一大組Key/Value鍵值對(duì)時(shí),Map函數(shù)自動(dòng)將原本的Key/Value分拆成多組中介的鍵值對(duì),然后Reduce函數(shù)再合并具有相同Key的中介值配對(duì),化簡(jiǎn)成最后的輸出結(jié)果。
一個(gè)智能家居系統(tǒng)中溫度值統(tǒng)計(jì)程pReduce計(jì)算過程概念,如圖1所示。
1.5智能家居云模型
智能家居擁有7大子系統(tǒng),每一個(gè)系統(tǒng)包含了不同的終端,每一個(gè)終端都安裝有傳感器,傳感器感知周圍環(huán)境并產(chǎn)生大量數(shù)據(jù)。千千萬萬的用戶會(huì)產(chǎn)生海量的數(shù)據(jù),而云計(jì)算可靠的數(shù)據(jù)存儲(chǔ),強(qiáng)大的計(jì)算能力,低廉的運(yùn)營成本使得它非常適合處理海量數(shù)據(jù)。于是每家用戶都將通過網(wǎng)絡(luò)連接到云服務(wù)中心,產(chǎn)生的數(shù)據(jù)均由云計(jì)算中心存儲(chǔ)和計(jì)算處理。
2 開發(fā)程序設(shè)計(jì)分析
本平臺(tái)針對(duì)智能家居中的幾個(gè)典型應(yīng)用:門禁、溫度、濕度、光照等進(jìn)行信息采集及分布式并行處理。啟動(dòng)程序后可以看到當(dāng)前房間內(nèi)的溫度、濕度、土壤濕度、光強(qiáng)度,還可以通過對(duì)室內(nèi)溫度、濕度、土壤濕度進(jìn)行設(shè)定來改變當(dāng)前的狀態(tài)。
2.1功能模塊設(shè)計(jì)
根據(jù)需求分析可知,系統(tǒng)功能模塊共分為四大部分,即門禁系統(tǒng)、溫濕度系統(tǒng)、滴灌系統(tǒng)、照明系統(tǒng)。
門禁系統(tǒng)實(shí)現(xiàn)的功能是持卡人刷卡,產(chǎn)生持卡人的卡號(hào),從事先設(shè)定好的數(shù)據(jù)庫中查詢是否有該卡號(hào),如果有說明該用戶為合法用戶,門禁打開,并顯示持卡人卡號(hào)、姓名、卡的類型,否則門禁繼續(xù)保持關(guān)閉。
溫濕度系統(tǒng)顯示室內(nèi)當(dāng)前溫度和濕度。當(dāng)設(shè)定一個(gè)溫度值后,空調(diào)工作,根據(jù)設(shè)定溫度調(diào)整室內(nèi)溫度,直到室內(nèi)當(dāng)前溫度達(dá)到設(shè)定值;當(dāng)設(shè)定濕度值后,室內(nèi)濕度就會(huì)根據(jù)所設(shè)定的濕度進(jìn)行調(diào)整,直到室內(nèi)當(dāng)前濕度達(dá)到設(shè)定值。
滴灌系統(tǒng)顯示當(dāng)前的土壤濕度。當(dāng)設(shè)定土壤濕度后,滴灌系統(tǒng)工作,調(diào)整濕度直到當(dāng)前濕度為設(shè)定的土壤濕度。
在照明系統(tǒng)中,顯示室內(nèi)當(dāng)前光強(qiáng)度。窗簾和電燈的狀態(tài)受控于光照強(qiáng)度的大小。
智能家居云計(jì)算平臺(tái)實(shí)現(xiàn)的功能主要是能夠?qū)a(chǎn)生的傳感信息集中交給服務(wù)器處理,用戶只需將傳感器采集來的傳感信息傳輸給服務(wù)器即可。服務(wù)器為計(jì)算機(jī)集群,這里使用三臺(tái)電腦進(jìn)行模擬。三臺(tái)電腦對(duì)信息進(jìn)行分布式并行處理,并根據(jù)處理結(jié)果對(duì)底層設(shè)備發(fā)出指令,以達(dá)到智能控制的效果。同時(shí)還要將各種傳感數(shù)據(jù)和底層設(shè)備的狀態(tài)寫入數(shù)據(jù)庫,如圖2所示。
2. 2邏輯結(jié)構(gòu)設(shè)計(jì)
(1)門禁系統(tǒng)。
門禁狀態(tài)一開始為關(guān)閉。當(dāng)持卡人來刷卡時(shí),獲得持卡人卡號(hào),查詢數(shù)據(jù)庫,判斷卡的ID是否合法,如果ID不合法,則門禁保持關(guān)閉狀態(tài)。如果合法則門禁打開,并且顯示持卡人的姓名和性別。
(2)溫濕度系統(tǒng)。
系統(tǒng)啟動(dòng)時(shí)首先要對(duì)溫度進(jìn)行判斷。當(dāng)前溫度低于下限值,空調(diào)啟動(dòng)制熱;當(dāng)前溫度高于上限值,空調(diào)啟動(dòng)制冷;當(dāng)室內(nèi)當(dāng)前溫度調(diào)整到舒適范圍時(shí)空調(diào)自動(dòng)關(guān)閉。系統(tǒng)同時(shí)顯示室內(nèi)當(dāng)前濕度,通過“設(shè)定濕度冶按鈕可以設(shè)置室內(nèi)濕度,當(dāng)前濕度會(huì)慢慢調(diào)整到所設(shè)置的濕度。
(3)室內(nèi)滴灌系統(tǒng)。
滴灌系統(tǒng)的狀態(tài)主要受控于土壤濕度。這里土壤濕度依然采用相對(duì)濕度。
系統(tǒng)開始運(yùn)行時(shí)滴灌處于關(guān)閉狀態(tài),然后判斷土壤濕度是否小于0.15,如果小于0.15,滴灌打開,噴水,土壤濕度開始上升,當(dāng)土壤濕度達(dá)到預(yù)先設(shè)定的上限值時(shí)(0.4),滴灌自動(dòng)關(guān)閉。滴灌關(guān)閉后由于水分的蒸發(fā),土壤濕度會(huì)逐漸減少。系統(tǒng)每隔1s對(duì)土壤濕度進(jìn)行一次判斷,如果土壤濕度少于0.15,則滴灌再次打開。如此反復(fù)。當(dāng)然,土壤濕度的上限值也可以通過“設(shè)定土濕冶按鈕進(jìn)行設(shè)定。具體過程見圖3。
(4)照明系統(tǒng)。
照明系統(tǒng)主要由窗簾和電燈兩個(gè)部分組成。窗簾和電燈的狀態(tài)會(huì)根據(jù)光照強(qiáng)度的大小以及當(dāng)前時(shí)間自動(dòng)改變。根據(jù)文獻(xiàn)[1]將客廳照明的最低照明度定為臨界值,即150Lux。
(5)智能家居云平臺(tái)。
整個(gè)云平臺(tái)采用五臺(tái)電腦進(jìn)行模擬,第一臺(tái)電腦作為傳感器和底層設(shè)備的模擬,用于產(chǎn)生傳感信息。第二臺(tái)電腦作為連接底層設(shè)備和服務(wù)器的網(wǎng)關(guān),剩下三臺(tái)電腦構(gòu)成服務(wù)器集群,作為云處理中心,并與數(shù)據(jù)庫相連,對(duì)傳感信息進(jìn)行分布式并行處理。服務(wù)器與客戶端之間的通信使用Socket。
3 平臺(tái)仿真
3. 1門禁系統(tǒng)測(cè)試
運(yùn)行程序后,門禁處于關(guān)閉狀態(tài)。單擊“生成ID冶按鈕,會(huì)產(chǎn)生當(dāng)前持卡人卡的ID號(hào)。然后單擊“刷卡搜索數(shù)據(jù)庫中已存在的合法ID號(hào),合法來訪者,門禁打開,并顯示持卡人的姓名和性別。門禁打開5s后再次關(guān)上。如果ID號(hào)不存在,則門禁繼續(xù)保持關(guān)閉狀態(tài),如圖4所示。
3. 2溫濕度系統(tǒng)測(cè)試
運(yùn)行程序后顯示當(dāng)前溫度、濕度,以及默認(rèn)的下限溫度(18益)和上限溫度(23益)。系統(tǒng)將當(dāng)前溫度與下限溫度和上限溫度進(jìn)行比較,如果當(dāng)前溫度在人體舒適度范圍18益~23益內(nèi),則空調(diào)繼續(xù)保持關(guān)閉狀態(tài)。當(dāng)前室內(nèi)溫度低于下限溫度時(shí),空調(diào)打開,處于制熱狀態(tài),直到當(dāng)前室內(nèi)溫度達(dá)到舒適度的下限溫度。當(dāng)前室內(nèi)溫度高于上限溫度時(shí),空調(diào)打開,處于制冷狀態(tài),直到當(dāng)前室內(nèi)溫度達(dá)到舒適度的上限溫度。溫度的上下限值可以通過設(shè)置按鈕進(jìn)行設(shè)定。
在“設(shè)定濕度冶旁的文本框中輸入所要設(shè)置的室內(nèi)濕度,然后按“設(shè)定濕度冶按鈕,這時(shí)室內(nèi)的溫度就會(huì)慢慢改變,上升或下降,直到當(dāng)前濕度達(dá)到所設(shè)定的濕度,如圖4所示。
3.3滴灌系統(tǒng)測(cè)試
運(yùn)行程序后顯示當(dāng)前土壤濕度,滴灌系統(tǒng)一開始處于關(guān)閉狀態(tài)。由于土壤中水分的蒸發(fā),土壤濕度不斷下降。當(dāng)土壤濕度降到0.15時(shí)滴灌自動(dòng)打開,開始噴水。滴灌噴水后土壤濕度增加,直到當(dāng)前土壤濕度達(dá)到設(shè)定值(默認(rèn)值為0.4),這時(shí)滴灌再次關(guān)閉,如圖5所示。
3.4照明系統(tǒng)測(cè)試
運(yùn)行程序后顯示當(dāng)前的室內(nèi)光強(qiáng)度,如果是早晨七點(diǎn)到晚上六點(diǎn),則窗簾打開,其他時(shí)間段窗簾關(guān)閉。電燈的狀態(tài)不僅受時(shí)間段控制,也受室內(nèi)光強(qiáng)度控制。如果是晚上十點(diǎn)到第二天早晨七點(diǎn),電燈處于關(guān)閉狀態(tài)。在早晨七點(diǎn)到晚上六點(diǎn)之間,電燈一般是關(guān)閉狀態(tài),除非室內(nèi)自然光強(qiáng)度低于150Lux,晚上六點(diǎn)到晚上十點(diǎn),電燈是打開狀態(tài)的。上午九點(diǎn)四十五的系統(tǒng)
運(yùn)行結(jié)果如圖5所示,此時(shí)窗簾是打開狀態(tài),電燈是關(guān)閉狀態(tài)。
3.5云平臺(tái)測(cè)試
將五臺(tái)電腦建立連接并啟動(dòng),第一臺(tái)電腦用于模擬傳感器和底層設(shè)備,第二臺(tái)電腦作為連接底層網(wǎng)絡(luò)和上層網(wǎng)絡(luò)的網(wǎng)關(guān),剩下三臺(tái)電腦作為服務(wù)器集群(云計(jì)算中心)。第一臺(tái)電腦產(chǎn)生傳感數(shù)據(jù)后傳給第二臺(tái)電腦,第二臺(tái)電腦作為網(wǎng)關(guān)將數(shù)據(jù)轉(zhuǎn)發(fā)給服務(wù)器集群,服務(wù)器集群采用Hadoop計(jì)算架構(gòu)對(duì)傳感數(shù)據(jù)進(jìn)行分布式并行處理,判斷當(dāng)前智能家居各系統(tǒng)的狀態(tài),并發(fā)出指令給底層設(shè)備,達(dá)到智能控制的效果。運(yùn)行結(jié)果見圖6。
4 結(jié)束語
文中在云計(jì)算理論的基礎(chǔ)上針對(duì)智能家居中的門禁系統(tǒng)、溫濕度系統(tǒng)、滴灌系統(tǒng)和照明系統(tǒng)搭建了基于Hadoop的數(shù)據(jù)處理平臺(tái)??梢詫?duì)大量傳感信息進(jìn)行分布式并行處理,并根據(jù)處理結(jié)果向底層設(shè)備發(fā)送指令以實(shí)現(xiàn)智慧化服務(wù)。此云計(jì)算平臺(tái)是在Hadoop分布式計(jì)算框架的基礎(chǔ)上采用三臺(tái)電腦模擬服務(wù)器集群實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的并行處理,有效解決了成本和計(jì)算瓶頸問題。
作者信息:徐源吾,王搖珣
南京郵電大學(xué)通信與信息工程學(xué)院
南京郵電大學(xué)通信技術(shù)研究所
南京郵電大學(xué)寬帶無線通信與傳感器技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室
評(píng)論