吳房勝,徐金秀,施冬冬,陳業(yè)慧
隨著經(jīng)濟(jì)技術(shù)的快速發(fā)展,人們對居家生活舒適便捷的要求越來越高.在當(dāng)今物聯(lián)網(wǎng)時代,智能家居能夠滿足人類的要求,通過科技創(chuàng)新,使人類生活得更加節(jié)能環(huán)保、安全方便.隨著人們需求的增加,智能家居必將會成為中國的主流行業(yè)之一,市場發(fā)展前景非常廣闊[1].
本系統(tǒng)通過模擬真實的家居環(huán)境,搭建一個智能平臺.平臺上使用了火焰?zhèn)鞲衅鳌貪穸葌鞲衅?、熱釋電紅外傳感器、紅外對射傳感器、光照傳感器及煙霧傳感器等,通過各種傳感器對室內(nèi)環(huán)境實時采集,利用CC2530主控芯片,實現(xiàn)數(shù)據(jù)處理、無線傳輸及智能控制等.此外,還安裝了攝像頭、風(fēng)扇、電燈和報警燈等設(shè)備進(jìn)行現(xiàn)象模擬,當(dāng)感測到火焰、煙霧氣體、外來人員入侵等突發(fā)情況時,ZigBee 芯片通過繼電器模塊,控制報警器、風(fēng)扇、攝像頭等器件,攝像頭進(jìn)行視頻拍攝,并將視頻上傳到云平臺存儲;家庭PC 端可通過電信網(wǎng)關(guān),通知房屋主人家里有人入侵或者發(fā)生火災(zāi),并通知房主撥打火警電話,使得家庭在安全防衛(wèi)方面更加智能便捷.同時移動端的安卓APP 和家庭PC 終端均可獲取家庭的各種信息,并進(jìn)行家庭突發(fā)情況的監(jiān)控和相應(yīng)的管理,其中安卓APP 軟件還可通過攝像頭對門口人員外貌進(jìn)行識別并可遠(yuǎn)程開門,避免了戶主不在家時,家中來客人卻只能在門口等待的尷尬.該系統(tǒng)的結(jié)構(gòu)框圖如圖1所示[2-3].
圖1 系統(tǒng)結(jié)構(gòu)框圖
本系統(tǒng)用到多個數(shù)據(jù)采集的傳感器,如溫濕度傳感器、光照傳感器、煙霧傳感器等,采集到的大量數(shù)據(jù)進(jìn)行無線傳輸時,難免會出現(xiàn)多個節(jié)點同時傳送數(shù)據(jù)而發(fā)生數(shù)據(jù)碰撞的現(xiàn)象,這需要限制各節(jié)點對信道的訪問頻率,故需要采用退避機(jī)制,來降低碰撞的發(fā)生.本系統(tǒng)采用二進(jìn)制指數(shù)退避(BEB)算法中的時隙CSMA/CA(信標(biāo)使能網(wǎng)絡(luò))算法,并對算法進(jìn)行改進(jìn),該算法主要實現(xiàn)無線信道的訪問,是一種免沖突載波檢測的多路接入算法.算法中有NB、CW和BE三個變量需要進(jìn)行相應(yīng)的維護(hù).NB為節(jié)點剛接入信道時,即數(shù)據(jù)幀開始進(jìn)行傳輸之前,執(zhí)行時隙CSMA/CA算法所需退避的次數(shù).CW為競爭窗口的大小,是數(shù)據(jù)幀傳輸之前,連續(xù)檢測到的空閑信道的次數(shù).BE是節(jié)點的退避指數(shù),其值和CW關(guān)聯(lián)[4].
該算法是先初始化在MAC 層的NB和CW的值,并判斷電池電量是否用盡,再初始化不同的BE值.然后等待下一個退避邊緣到來,再進(jìn)行隨機(jī)退避,隨機(jī)延遲一個隨機(jī)數(shù)時隙的退避周期,該隨機(jī)數(shù)在[0,2BE-1]之間產(chǎn)生.如果超幀CAP階段剩余的時隙小于退避的時隙值,則停止當(dāng)前退避計時,下一個超幀CAP開始時再重新執(zhí)行之前的退避計時.隨機(jī)退避結(jié)束后,進(jìn)行CCA信道檢測.如果CCA 信道不為空,CW、NB和BE三者重新賦值,CW=2,NB=NB+1,BE=min(BE+1,amaxBE).然后檢測NB值是否大于最大退避次數(shù)值,如果大于,則數(shù)據(jù)發(fā)送不成功,訪問失敗,否則就再次隨機(jī)延遲,重新進(jìn)行退避檢測.如果CCA信道為空,執(zhí)行CW=CW-1,再判斷CW是否等于0,若是,表明數(shù)據(jù)訪問信道成功,可以發(fā)送數(shù)據(jù);若否,則返回到CCA 信道檢測任務(wù),重新檢測.
該退避算法解決數(shù)據(jù)碰撞問題是通過設(shè)置退避指數(shù),改變競爭窗口值實現(xiàn),當(dāng)退避指數(shù)達(dá)到極限值,再增加退避次數(shù)重新傳輸.該算法有兩個方面的不足,首先是BE值的設(shè)定問題,BE在初始化時的值為macminBE,未進(jìn)入信道時該值隨機(jī)退避在0~2minBE間的一個周期,如果網(wǎng)絡(luò)節(jié)點少,則第一次隨機(jī)延時的BE值會選擇過大;如果網(wǎng)絡(luò)節(jié)點多,BE值需要多次進(jìn)行加1,會導(dǎo)致網(wǎng)絡(luò)功耗增大.其次,本系統(tǒng)是基于智能家居系統(tǒng)的場景,該系統(tǒng)中的煙霧、火焰等報警信息比較重要,在信道中需要優(yōu)先傳送.但上述算法對數(shù)據(jù)的傳送都是平等的,溫濕度、光照等非重要的信息可能會先競爭到信道中,進(jìn)行傳送,而更重要的信息可能無法優(yōu)先傳送[3].
針對上述問題,本文對CSMA/CA 退避算法從三個方面進(jìn)行改進(jìn).第一,改變NB的大小.由于很多節(jié)點同時訪問信道時,發(fā)生碰撞概率增大,故降低NB的極限值能夠降低重傳的概率.如果網(wǎng)絡(luò)中節(jié)點數(shù)量較多,NB極限值設(shè)小一點,反之,NB極限值設(shè)大一點.第二,改變BE的大小.BE值的大小由各數(shù)據(jù)包的優(yōu)先級來決定.一旦發(fā)生數(shù)據(jù)碰撞,開始隨機(jī)延遲,隨機(jī)數(shù)不從0~2BE中間選取,而在2BE+1~2amaxBE中間選取該值一個周期的隨機(jī)時隙.第三,改變CW的大小.采集數(shù)據(jù)后,對每個數(shù)據(jù)包進(jìn)行優(yōu)先級的設(shè)定.不同優(yōu)先級的數(shù)據(jù)包,對應(yīng)不同大小的CW,如將優(yōu)先級別高的CW值設(shè)為1,優(yōu)先級別低的CW值設(shè)為2,則優(yōu)先級別高的數(shù)據(jù)包對信道檢測的時間會變小,降低了網(wǎng)絡(luò)的功耗[5].
該系統(tǒng)對信號的采集及控制采用CC2530F256芯片,該芯片將射頻收發(fā)功能與51 內(nèi)核集成到同一芯片中,是一個獨(dú)立的片上系統(tǒng).系統(tǒng)中煙霧傳感器采用MQ-2煙霧傳感器,可檢測家庭天然氣、酒精、一氧化碳等氣體;熱釋電紅外傳感器采用HC-SR501,該傳感器功耗低,感應(yīng)范圍可達(dá)7 米距離;溫濕度傳感器采用SHT10 集成芯片,該芯片采集精度高,穩(wěn)定性高,功耗低;火焰?zhèn)鞲衅鞑捎肦2868 火焰?zhèn)鞲衅?各類傳感器將采集到數(shù)據(jù)傳送給CC2530F256 主控芯片,芯片將采集到的信號經(jīng)模數(shù)轉(zhuǎn)換并自組網(wǎng),控制電燈、風(fēng)扇、報警器電動門鎖等器件,并將數(shù)據(jù)傳送到PC 終端,PC 終端存儲傳感器采集的數(shù)據(jù)及視頻信息,并控制電信網(wǎng)關(guān),實現(xiàn)自動撥打電話功能.安卓移動端可以從云平臺中獲取當(dāng)前采集的動態(tài)數(shù)據(jù)、視頻數(shù)據(jù)等,可隨時查看當(dāng)前數(shù)據(jù),并可通過攝像頭對門口人員外貌進(jìn)行識別,實現(xiàn)遠(yuǎn)程開門[6].
本系統(tǒng)對智能家居搭建了一個模擬平臺,如圖2 所示.所有傳感器和控制器件均安裝在平臺上,平臺上方從左到右分別是四個ZigBee 模塊,其中三個附帶繼電器模塊,第二個附帶溫濕度模塊,最右邊是攝像頭;中間一行是風(fēng)扇、燈泡等器件及煙霧傳感器;最下面一行從左到右分別是紅外對射模塊、兩個ZigBee 模塊(各自集成光照傳感器、熱釋電紅外傳感器等)、數(shù)字量I/O模塊.
圖2 平臺搭建實物圖
針對前面所述改進(jìn)的退避算法,其軟件流程圖如圖3 所示.初始化后,為減少重傳次數(shù),先要判斷網(wǎng)絡(luò)負(fù)載情況,若較大,初始化較小的NB極限值,若較小則初始化較大的值,然后根據(jù)優(yōu)先級高低設(shè)置NB與CW的值,高優(yōu)先級CW=1,低優(yōu)先級CW=2,再判斷電池電量是否用盡來設(shè)置不同的BE值,等待下一個退避邊緣后進(jìn)行隨機(jī)退避.退避結(jié)束后進(jìn)行CCA 信道檢測.若信道忙,CW根據(jù)優(yōu)先級高低重新設(shè)為1 或者2,NB重新自加1.只要NB的值未超過上限值,則在[2BE-l,2min(BE+l,amaxBE)-1]間隨機(jī)延遲一個周期,從而減少不必要的碰撞,降低網(wǎng)絡(luò)功耗,若超過,數(shù)據(jù)發(fā)送失敗.若信道空閑,CW自減1,再判斷CW是否為0,若是,數(shù)據(jù)發(fā)送成功,若否,則重新進(jìn)行新一輪退避檢測.
圖3 改進(jìn)的CSMA/CA退避算法流程圖
該系統(tǒng)的軟件分為三個部分,第一部分是下位機(jī)CC2530F256 單片機(jī)程序的編寫,程序編寫采用模塊化編程,方便移植,主要完成對各類傳感器數(shù)據(jù)的采集處理,并將數(shù)據(jù)傳輸給上位機(jī).第二部分是安卓軟件APP開發(fā),通過安卓軟件設(shè)計顯示監(jiān)控界面及采集的數(shù)據(jù).第三部分是物聯(lián)網(wǎng)云平臺的搭建,實現(xiàn)視頻及采集數(shù)據(jù)的存儲與管理[7],該系統(tǒng)整體控制流程圖如圖4所示.
圖4 系統(tǒng)控制流程圖
該系統(tǒng)模擬平臺搭建完成后,對所有傳感器及ZigBee模塊進(jìn)行通電檢測,確保所有模塊正常工作.傳感器模塊采集多路數(shù)據(jù),經(jīng)過CSMA/CA退避算法處理,將信號上傳給終端,終端顯示及控制界面如圖5所示,從圖5中可以看到溫濕度、紅外、火焰、可燃?xì)怏w等數(shù)據(jù),該數(shù)據(jù)能穩(wěn)定并可實時顯示,還可實時控制開關(guān)門、開關(guān)燈、開關(guān)排氣扇和窗簾等.
圖5 PC終端測試界面
在CC2530控制模式下,當(dāng)發(fā)生火情時,家中的排風(fēng)扇會自動打開,減少室內(nèi)煙霧的濃度,可以讓戶主更加安全地逃離,同時PC 終端通過電信網(wǎng)關(guān)報警,如果戶主在外,安卓APP 端也會通知家中發(fā)生火情,避免家中有人但沒有覺察到火情而產(chǎn)生危險;氣體傳感器會實時檢測可燃?xì)怏w含量,當(dāng)氣體濃度達(dá)到設(shè)定值時,排風(fēng)扇會自動打開;當(dāng)有障礙物擋住平臺上紅外對射時,紅外對射數(shù)據(jù)顯示為1,并且提示有人入侵,入侵界面如圖6所示.
圖6 入侵界面
手機(jī)端的AAP通過安卓軟件開發(fā),如圖7所示,注冊賬戶并登陸成功后,進(jìn)入監(jiān)控界面,該界面上有各個傳感器采集到的各項數(shù)據(jù),可實時顯示室內(nèi)溫度濕度,以及家中是否有火災(zāi)發(fā)生,廚房是否有燃?xì)庑孤┑?當(dāng)攝像頭檢測到門口有物體移動時,攝像頭可進(jìn)行自動拍攝,并將圖像數(shù)據(jù)發(fā)送至手機(jī)移動端,如果戶主認(rèn)識圖像中的人,可以直接通過手機(jī)進(jìn)行遠(yuǎn)程開門.
圖7 手機(jī)安卓端監(jiān)控界面
本系統(tǒng)是基于ZigBee設(shè)計的智能家居,利用各種傳感器采集數(shù)據(jù),理論上采用改進(jìn)的退避算法降低信道競爭時間,減少數(shù)據(jù)重傳,提高數(shù)據(jù)吞吐量及傳輸效率,降低了網(wǎng)絡(luò)功耗.具有采集精度高,處理速度快并可無線組網(wǎng)傳輸?shù)裙δ?,完成了視頻監(jiān)控、數(shù)據(jù)遠(yuǎn)程監(jiān)測、遠(yuǎn)程開關(guān)門等功能,實現(xiàn)電腦和手機(jī)雙重監(jiān)控,保障人們的生活質(zhì)量,產(chǎn)業(yè)前景十分廣闊.