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