隋竹翠, 韓 磊, 熊 暢, 翁新?tīng)q
(武漢大學(xué) 電子信息學(xué)院,湖北 武漢430072)
隨著生活水平的提高,人們對(duì)家居舒適度、方便性、實(shí)用性和智能化等需求逐漸增強(qiáng),靠人用遙控器控制空調(diào)、調(diào)節(jié)室溫的傳統(tǒng)方式已經(jīng)難以滿足人們的需求[1]。因此,需要開(kāi)發(fā)一套智能化的、方便與實(shí)用的溫度控制系統(tǒng)對(duì)空調(diào)進(jìn)行控制來(lái)實(shí)現(xiàn)家居溫度控制的智能化。
本文提出了一種基于ZigBee 無(wú)線通信的智能溫度控制系統(tǒng)。系統(tǒng)集信息顯示、人工溫度控制和智能溫度控制功能于一體,通過(guò)收集分布在室內(nèi)的溫度傳感器與人體紅外傳感器的監(jiān)測(cè)數(shù)據(jù),結(jié)合用戶自身的溫度設(shè)置偏好,采用反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)算法對(duì)用戶的溫度控制操作作出預(yù)測(cè),智能地為用戶控制空調(diào)調(diào)節(jié)室溫。系統(tǒng)采用ZigBee 無(wú)線通信技術(shù)減少系統(tǒng)的布線復(fù)雜度,同時(shí)采用紅外遙控技術(shù)來(lái)控制空調(diào),兼具智能、方便和實(shí)用的特點(diǎn)。
系統(tǒng)主要分為傳感終端、控制終端和主控制臺(tái),它們之間通過(guò)ZigBee 無(wú)線方式通信,可分置于室內(nèi)不同的地方[2]。
系統(tǒng)主控制臺(tái)的輸入來(lái)自傳感終端,傳感終端分為兩種,①人體紅外傳感器終端,放置于家中各處用于檢測(cè)用戶在家與否;②溫度傳感器終端,分置室內(nèi)不同地方處,用于采集室溫。所有的傳感終端采集的傳感信息通過(guò)ZigBee 無(wú)線方式發(fā)送至ZigBee 協(xié)調(diào)器,再由協(xié)調(diào)器傳給主控制臺(tái);主控制臺(tái)負(fù)責(zé)存儲(chǔ)、顯示并結(jié)合智能處理方案來(lái)處理傳感信息,發(fā)出控制信息;控制信息通過(guò)協(xié)調(diào)器以無(wú)線方式發(fā)送至控制終端,控制終端實(shí)現(xiàn)對(duì)空調(diào)的控制。系統(tǒng)主體結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)的主體結(jié)構(gòu)
系統(tǒng)主控制臺(tái)的智能處理方案分為智能預(yù)測(cè)和突發(fā)情況處理兩種。智能預(yù)測(cè)是通過(guò)BP 神經(jīng)網(wǎng)絡(luò)算法找出用戶有規(guī)律的溫度設(shè)定特征和關(guān)閉(或開(kāi)啟)空調(diào)的時(shí)間段,并預(yù)測(cè)在接下來(lái)的具有相似特征的時(shí)間段內(nèi),是否要提前關(guān)閉(或開(kāi)啟)空調(diào)或設(shè)定空調(diào)溫度。突發(fā)情況處理是指基于人體紅外傳感器、溫度傳感器的監(jiān)測(cè)信息,對(duì)于特殊情況,系統(tǒng)將在智能預(yù)測(cè)的結(jié)果上,對(duì)控溫操作進(jìn)行調(diào)整。主控制臺(tái)處理溫度控制操作的優(yōu)先級(jí)為人工操作高于突發(fā)情況處理高于智能預(yù)測(cè)。
系統(tǒng)選用德州儀器公司的CC2530 片上系統(tǒng)(SoC)[3]解決方案來(lái)構(gòu)建ZigBee 無(wú)線網(wǎng)絡(luò)。CC2530集成了一個(gè)8051 單片機(jī)和IEEE 802.15.4 兼容無(wú)線收發(fā)器,RF 內(nèi)核控制模擬無(wú)線模塊,通過(guò)擴(kuò)展引出通用接口來(lái)與外部器件連接[4]。在本系統(tǒng)的ZigBee 網(wǎng)絡(luò)中,連接傳感器或控制器的CC2530 模塊叫做ZigBee 終端,連接主控制臺(tái)的CC2530 模塊叫做ZigBee 協(xié)調(diào)器。協(xié)調(diào)器建立ZigBee 無(wú)線通信網(wǎng)絡(luò),終端加入該網(wǎng)絡(luò)后實(shí)現(xiàn)數(shù)據(jù)的無(wú)線傳輸[5]。
ZigBee 終端與傳感器共同組成傳感終端。傳感器分為溫度傳感器與人體紅外傳感器兩種,各傳感器將實(shí)時(shí)采集的信息通過(guò)I/O 接口發(fā)送給CC2530 微處理器,再無(wú)線發(fā)送至ZigBee 協(xié)調(diào)器。
溫度傳感器采用一線器件DSl8b20,其溫度測(cè)量范圍為55 ~125℃,它本身輸出數(shù)字信號(hào),無(wú)需外部信號(hào)放大調(diào)理電路,以單總線方式通信[6];人體紅外傳感器采用HC-SR501 人體感應(yīng)模塊,3 ~7 m 感應(yīng)距離,100°感應(yīng)錐角。人進(jìn)入其感應(yīng)范圍則輸出高電平,人離開(kāi)感應(yīng)范圍則自動(dòng)延時(shí)關(guān)閉高電平,輸出低電平[7]。為了更加準(zhǔn)確地測(cè)得整個(gè)空間的溫度,溫度傳感終端要分多個(gè)放置在室內(nèi)不同的地方。人體紅外傳感終端也要有放置多個(gè),覆蓋室內(nèi)各區(qū)域。
ZigBee 協(xié)調(diào)器與搭載ARM9 芯片的嵌入式設(shè)備組成主控制臺(tái)。由于ARM9 嵌入式設(shè)備上的RS232串口為CMOS 電平,故需先經(jīng)過(guò)一個(gè)CMOS 轉(zhuǎn)TTL 接口電路,再以UART 方式與ZigBee 協(xié)調(diào)器連接。
ZigBee 終端與控制器(空調(diào)紅外控制模塊)共同組成控制終端。其中,空調(diào)紅外控制模塊以UART 串口方式與ZigBee 終端的CC2530 連接,它接收到控制信息后進(jìn)行分析和實(shí)現(xiàn)輸出控制紅外信號(hào)編碼,紅外發(fā)射電路將信號(hào)編碼轉(zhuǎn)變成紅外載波信號(hào)以實(shí)現(xiàn)對(duì)空調(diào)的控制[8]。
系統(tǒng)硬件結(jié)構(gòu)圖如圖2 所示(由于篇幅限制,各傳感終端只畫一個(gè),實(shí)際有多個(gè))。
主控制臺(tái)的軟件開(kāi)發(fā)基于Linux 操作系統(tǒng)[9-10]。通過(guò)主控制臺(tái)的觸控屏幕可以實(shí)現(xiàn)人機(jī)交互,人機(jī)交互的圖形用戶界面GUI 使用Qt 軟件進(jìn)行開(kāi)發(fā)[11],軟件的前臺(tái)部分包含顯示區(qū)與控制區(qū):顯示區(qū)對(duì)室內(nèi)溫度、室內(nèi)是否有人等信息進(jìn)行顯示;控制區(qū)則是相關(guān)的空調(diào)控制按鍵,方便用戶實(shí)現(xiàn)人工操作。
主控制臺(tái)的后臺(tái)智能處理方案包括智能預(yù)測(cè)、突發(fā)情況處理。首先系統(tǒng)會(huì)有一套默認(rèn)的溫度設(shè)定方案,從用戶第一天使用該系統(tǒng)起,系統(tǒng)便開(kāi)始記錄用戶近50 天每天每半小時(shí)的設(shè)置數(shù)據(jù),包括用戶對(duì)空調(diào)的開(kāi)關(guān)、開(kāi)空調(diào)時(shí)設(shè)置的溫度、以及當(dāng)時(shí)的時(shí)間、室內(nèi)氣溫和用戶是否存在等數(shù)據(jù)。每更新一次數(shù)據(jù),后臺(tái)便將這些數(shù)據(jù)送入BP 神經(jīng)網(wǎng)絡(luò)算法中處理并預(yù)測(cè)接下來(lái)是否需要為用戶提前打開(kāi)空調(diào)或設(shè)定溫度,此為智能預(yù)測(cè)。當(dāng)主控制臺(tái)發(fā)現(xiàn)預(yù)測(cè)的結(jié)果與來(lái)自傳感終端的實(shí)際情況不符合時(shí)(例如用戶生病未能正常上班而在家休養(yǎng),或氣溫反常等),系統(tǒng)會(huì)相應(yīng)的調(diào)整控制空調(diào)的操作,這是突發(fā)情況處理。
圖2 系統(tǒng)硬件結(jié)構(gòu)圖
圖3 是主控制臺(tái)智能化處理機(jī)制原理圖。
圖3 智能化處理機(jī)制邏輯圖
為了實(shí)現(xiàn)上述的智能預(yù)測(cè)功能,本系統(tǒng)采用BP神經(jīng)網(wǎng)絡(luò)算法[12-13]。該算法基于非線性不確定性數(shù)學(xué)模型,是一種具有連續(xù)傳遞函數(shù)的多層前饋人工神經(jīng)網(wǎng)絡(luò),訓(xùn)練方式為誤差反向傳播算法,并以均方誤差最小化為目標(biāo)不斷修改網(wǎng)絡(luò)的權(quán)值和閾值,最終能高精度地?cái)M合數(shù)據(jù)[14]。BP 算法由兩部分組成:信息的前向傳遞和誤差的逆向傳播。
2.3.1 信息的前向傳遞
設(shè)輸入層神經(jīng)元為X =[x1,x2,…,xp],隱含層神經(jīng)元為S=[s1,s2,…,sq],輸出層神經(jīng)元為Y =[y1,y2,…,yr]。表示輸入層第k 個(gè)神經(jīng)元與隱含層第j個(gè)神經(jīng)元的連接權(quán)值,表示隱含層第j 個(gè)神經(jīng)元與輸出層第i 個(gè)神經(jīng)元的連接權(quán)值,φ()為激活函數(shù)。隱單元的輸入
相應(yīng)的輸出狀態(tài)
隱含層以同樣方式傳遞至輸出層
網(wǎng)絡(luò)的最終輸出
其中:激活函數(shù)φ()常取階躍函數(shù)、分段線性函數(shù)、對(duì)數(shù)S 型傳遞函數(shù)等。
2.3.2 誤差的逆向傳播
輸入具有p 維輸入q 維輸出的N 個(gè)樣本進(jìn)入輸入層,計(jì)算實(shí)際輸出與期望輸出均方跟誤差。將第h 個(gè)樣本的理想輸出計(jì)為{},
如果E(W)沒(méi)有達(dá)到誤差要求ε,則進(jìn)入反向傳播過(guò)程,把輸出誤差信號(hào)E 以梯度形式,按原來(lái)正向傳播的通路逐層反向傳回,并將誤差信號(hào)E 分?jǐn)偨o各層的所有神經(jīng)元作為修正各連接權(quán)值和閾值的依據(jù)對(duì)其修改,并反復(fù)運(yùn)行信息的正向傳播和誤差逆向傳播兩過(guò)程,直至誤差信號(hào)E 收斂于ε[15]。
我們?cè)贛atlab 中對(duì)該算法進(jìn)行了如下驗(yàn)證[16]:
用于訓(xùn)練網(wǎng)絡(luò)的樣本數(shù)據(jù)由5 個(gè)部分組成:時(shí)間段,是否檢測(cè)到人,氣溫,空調(diào)開(kāi)關(guān),空調(diào)設(shè)定溫度。其中時(shí)間段,是否檢測(cè)到人,氣溫為神經(jīng)網(wǎng)絡(luò)輸入量,空調(diào)開(kāi)關(guān),空調(diào)設(shè)定溫度為輸出量。將24 h 進(jìn)行48 等分,每一部分為30 min,作為一個(gè)控制周期。人物存在與否的概率依賴于時(shí)間段。空調(diào)開(kāi)關(guān)和人物存在,氣溫相關(guān)。空調(diào)設(shè)定溫度為氣溫的函數(shù)。一共選取了2 400個(gè)樣本作為訓(xùn)練數(shù)據(jù)。
采用BP 神經(jīng)網(wǎng)絡(luò),分成三層:輸入成3 個(gè)結(jié)點(diǎn),分別對(duì)應(yīng)3 個(gè)輸入變量;輸出層2 個(gè)結(jié)點(diǎn),對(duì)應(yīng)2 個(gè)輸出變量;中間層經(jīng)過(guò)優(yōu)化,選取20 個(gè)結(jié)點(diǎn)用于訓(xùn)練。相鄰兩層之間激活函數(shù)均采用對(duì)數(shù)S 形轉(zhuǎn)移函數(shù),訓(xùn)練函數(shù)采用梯度下降自適應(yīng)學(xué)習(xí)率訓(xùn)練函數(shù),迭代次數(shù)為1 000 次。
測(cè)試數(shù)據(jù)的生成方法同樣本數(shù)據(jù),共2 400 個(gè)測(cè)試樣本。將測(cè)試數(shù)據(jù)中的“時(shí)間段”,“是否檢測(cè)到人”和“氣溫”輸入到由樣本訓(xùn)練出的神經(jīng)網(wǎng)絡(luò)中,得到2個(gè)輸出量空調(diào)開(kāi)關(guān)和空調(diào)設(shè)定溫度。將輸出結(jié)果和測(cè)試數(shù)據(jù)作比較,開(kāi)關(guān)預(yù)測(cè)誤差和溫度預(yù)測(cè)誤差如圖4所示。
圖4 預(yù)測(cè)誤差
經(jīng)計(jì)算,神經(jīng)網(wǎng)絡(luò)對(duì)空調(diào)開(kāi)關(guān)預(yù)測(cè)的準(zhǔn)確度為92%,對(duì)溫度控制預(yù)測(cè)的平均誤差為0.846 8 ℃。由此可見(jiàn),采用BP 神經(jīng)網(wǎng)絡(luò)模型可以實(shí)現(xiàn)較高精度的智能預(yù)測(cè)。
在系統(tǒng)中,通過(guò)持續(xù)將用戶設(shè)定數(shù)據(jù)放入神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,網(wǎng)絡(luò)會(huì)逐漸訓(xùn)練成型,并可進(jìn)入自動(dòng)運(yùn)行狀態(tài)。同時(shí),來(lái)自各傳感器的數(shù)據(jù)也將在系統(tǒng)自動(dòng)運(yùn)行時(shí)幫助修正控制偏差,進(jìn)一步完善網(wǎng)絡(luò)。
經(jīng)過(guò)測(cè)試,采用BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)算法的智能溫度控制系統(tǒng)運(yùn)行良好,智能化程度高,數(shù)據(jù)傳輸穩(wěn)定,控制精準(zhǔn),能夠適配大部分空調(diào)。當(dāng)然,該系統(tǒng)離普及使用還有一段距離,將系統(tǒng)精簡(jiǎn)化、美觀化將是我們下一階段的研究重點(diǎn)。
[1] 萬(wàn)文斌,石 勇.基于ZigBee 的智能開(kāi)關(guān)控制系統(tǒng)的應(yīng)用與設(shè)計(jì)[J].電氣自動(dòng)化,2010,32(3):57-59.
[2] 蔣 挺,趙成林.紫蜂技術(shù)及其應(yīng)用[M].北京:北京郵電大學(xué)出版社,2006.
[3] Texas Instruments. CC2530 datasheet[EB/OL]. [2013-01-05].http://www. ti. com. cn/product/cn/CC2530/technicaldocuments?keyMatch=CC2530&tisearch=Search-CN-Everything.
[4] 徐書芳,王金海,宮玉龍,等.基于ZigBee 的智能家居控制系統(tǒng)的研究與設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013,39(8):80-83.
[5] 姜 仲,劉 丹.ZigBee 技術(shù)與實(shí)訓(xùn)教程:基于CC2530 的無(wú)線傳感網(wǎng)技術(shù)[M].北京:清華大學(xué)出版社,2014.
[6] 祝良榮,金永敏. 基于ZigBee 無(wú)線技術(shù)的分布式溫度監(jiān)測(cè)系統(tǒng)[J].機(jī)械與電子,2010(3):49-51,56.
[7] 深圳市捷深科技有限公司. HC-SR501 人體感應(yīng)模塊說(shuō)明書.[EB/OL].[2011-06-14]. http://cn. sonhoo. com/company_web/sale-detail-5462755.html.
[8] 曹 帥,劉純天.基于Zigbee 與紅外遙控技術(shù)的家居無(wú)線控制網(wǎng)絡(luò)設(shè)計(jì)[J].機(jī)電產(chǎn)品開(kāi)發(fā)與創(chuàng)新,2010,23(1):149-151.
[9] 胡 衡,梁嵐珍.基于ZigBee 和ARM 的溫室大棚多點(diǎn)溫度采集系統(tǒng)的設(shè)計(jì)[J].江蘇農(nóng)業(yè)科學(xué),2014(7):416-419.
[10] 韋東山.嵌入式Linux 應(yīng)用開(kāi)發(fā)完全手冊(cè)[M]. 北京:人民郵電出版社,2008.
[11] 韓少云,奚海蛟,諶 利.基于嵌入式Linux 的Qt 圖形程序?qū)崙?zhàn)開(kāi)發(fā)[M].北京:北京航空航天大學(xué)出版社,2012.
[12] 蔣宗禮.人工神經(jīng)網(wǎng)絡(luò)導(dǎo)論[M].北京:高等教育出版社,2001.
[13] 陳祥光,裴旭東.人工神經(jīng)網(wǎng)絡(luò)技術(shù)及應(yīng)用[M].北京:中國(guó)電力出版社,2003.
[14] 李曉峰,劉光中.人工神經(jīng)網(wǎng)絡(luò)BP 算法的改進(jìn)及其應(yīng)用[J]. 四川大學(xué)學(xué)報(bào)(工程科學(xué)版),2000,32(2):105-109.
[15] 劉春艷,凌建春.GA-BP 神經(jīng)網(wǎng)絡(luò)與BP 神經(jīng)網(wǎng)絡(luò)性能比較[J].中國(guó)衛(wèi)生統(tǒng)計(jì),2013,30(2):173-176,181.
[16] 劉保柱,蘇彥華,張宏林.MATLAB 7.0 從入門到精通(修訂版)[M].北京:人民郵電出版社,2010.