周潔,徐金鳴,孫立輝
(吉林化工學(xué)院 信息與控制工程學(xué)院,吉林吉林,132000)
隨著我國信息技術(shù)的高速發(fā)展,人們對于家庭居住環(huán)境的安全性和舒適度有了新要求。由于家庭成員不能時時居住在房屋內(nèi),去改善家庭環(huán)境。因此當(dāng)房屋人體最佳居住環(huán)境參數(shù)發(fā)生變化時,很容易滋生健康隱患[1~2]。許多學(xué)者對家庭遠(yuǎn)程監(jiān)控系統(tǒng)做了大量研究,蔣志偉等人[3]設(shè)計一種以ARM 為核心的智能家居系統(tǒng),運用QT 技術(shù)設(shè)計智能網(wǎng)關(guān)的UI 界面實現(xiàn)對全屋控制。程琪戩等人[4]提出了采用Zigbee 技術(shù),數(shù)據(jù)通過網(wǎng)關(guān)發(fā)到互聯(lián)網(wǎng)實現(xiàn)物聯(lián)網(wǎng)智能家居安防。鄧楷煊等人[5]提出了用STM32 作為主控制器,通過ESP8266 發(fā)送數(shù)據(jù)到云平臺。何朋高等人[6]提出了一種基于ZigBee 的智能家居控制系統(tǒng),采用ZigBee 無線通信技術(shù)與單片機技術(shù)實現(xiàn)“一對多”模式下的智能控制。杜忠波等人[7]設(shè)計一種基于ZigBee 技術(shù)和LabVIEW 的分布式家庭智能化監(jiān)控系統(tǒng),使用無線數(shù)據(jù)網(wǎng)絡(luò)對家居環(huán)境中的各項信息進行監(jiān)控。李雪峰等人[8]設(shè)計了以STM32 單片機為主控芯片,實現(xiàn)對家居的遠(yuǎn)程及智能語音控制。馬晗旭等人[9]設(shè)計了一種基于家庭環(huán)境安全遠(yuǎn)程監(jiān)控,采用STM32F103 單片機為控制核心,監(jiān)測信息通過GSM 通訊模塊發(fā)送至手機端。孫宇舸等人[10]設(shè)計一種采用Arduino Uno 開發(fā)板為主控制器,采用ESP8266 WiFi 模塊搭建一個具有遠(yuǎn)程控制的智能家居控制系統(tǒng)。大多數(shù)學(xué)者在上位機與下位機之間使用藍牙或者WiFi 等技術(shù),而這些技術(shù)都存在功耗高、信號不穩(wěn)定等問題。因此,本設(shè)計采用NB-IOT 技術(shù),設(shè)計一款基于NB-IoT 的家庭環(huán)境安全監(jiān)控系統(tǒng),同時結(jié)合Zigbee 無線傳感技術(shù)和OneNET 云平臺接入技術(shù),實現(xiàn)了在云平臺上實時監(jiān)控各個傳感器數(shù)據(jù),為家庭安全防護和家庭成員居住舒適度和安全性的提升提供了參考。
家庭環(huán)境安全監(jiān)控系統(tǒng)包括監(jiān)控系統(tǒng)的下位機和查看數(shù)據(jù)信息的云平臺的上位機。其中,下位機部分中Zigbee協(xié)調(diào)器作為主要的控制單元,傳感器作為數(shù)據(jù)采集單元連接在Zigbee 終端上,傳感器將采集到的數(shù)據(jù)通過Zigbee 網(wǎng)絡(luò)傳輸?shù)絑igbee協(xié)調(diào)器上,由Zigbee協(xié)調(diào)器接收處理數(shù)據(jù)。數(shù)據(jù)通信單元由NB-IOT 模塊和Zigbee 協(xié)調(diào)器組成。上位機部分為云平臺管理系統(tǒng),主要包括數(shù)據(jù)管理、設(shè)備管理等。系統(tǒng)總體結(jié)構(gòu)框圖如圖1 所示。通過對家庭環(huán)境的濕度、環(huán)境溫度、當(dāng)前光照強度和煙霧傳感器濃度的采集,并結(jié)合溫度過高開窗、環(huán)境光照強度過高關(guān)閉窗簾、煙霧傳感器濃度過高打開窗戶等相關(guān)科學(xué)的算法,控制窗簾和窗戶適時地打開或關(guān)閉,實現(xiàn)對家庭環(huán)境居住舒適度和安全性的精準(zhǔn)控制。數(shù)據(jù)的傳輸采用電信CoAP/NB-IoT 模塊對數(shù)據(jù)進行透傳,NB-IOT 與OneNET 云平臺之間使用LWM2M 協(xié)議進行傳輸,隔兩秒鐘CC2530 將采集的所有信息傳輸?shù)絆neNET云平臺,以組態(tài)的方式展示給管理員。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
Zigbee 模塊主要是將串口接收到的數(shù)據(jù),通過Zigbee協(xié)議傳輸?shù)綄?yīng)的Zigbee 模塊,對應(yīng)的Zigbee 模塊接收到信息后,將接收的信息通過串口輸出。本設(shè)計的模塊是基于TI CC2530 芯片研發(fā)的一款工作在2.4GHz 頻段的Zigbee 無線模塊。本設(shè)計一共用了兩個Zigbee 終端節(jié)點,下面簡稱為終端1 和終端2。CC2530 終端的最小系統(tǒng)接線圖如圖2 所示。
2.1.1 采集模塊設(shè)計
數(shù)據(jù)采集單元是由溫濕度傳感器、光照傳感器和煙霧傳感器組成。溫濕度傳感器、煙霧傳感器連接在終端1 上,光照傳感器連接在終端2上,他們將采集到的信息傳輸給連接的Zigbee 節(jié)點,再由節(jié)點向外輸出。
溫濕度傳感器選用的是DHT11 數(shù)字溫濕度傳感器,濕度的精準(zhǔn)度在±5%RH,溫度的精準(zhǔn)度在±2℃,可測量的濕度范圍為5%~95%RH,溫度范圍為-20 ℃~+60 ℃。DHT11 具有超長的信號傳輸距離和超低功耗,符合本設(shè)計家庭環(huán)境溫濕度測量的要求。溫度傳感器在Zigbee 終端1的接線圖如圖3 所示。
圖3 溫度傳感器接線圖
光照傳感器選用的是數(shù)字型光強度傳感器BH1750,該傳感器可檢測的光強度范圍是0~65535 LX,利用它的高分辨率可以探測較大范圍的光強度變化,可滿足設(shè)計需要。BH1750 光照傳感器在Zigbee 終端2 的接線圖如圖4 所示。
圖4 BH1750 光照傳感器接線圖
煙霧傳感器選用的是對天然氣和煙霧有較好靈敏度的MQ-2,該傳感器可檢測煙霧和天然氣的濃度范圍是100~10000ppm,輸出0~5V 的測量電壓,氣體濃度越高,電壓越高,模擬量及TTL 電平雙路信號輸出,TTL 輸出有效信號為低電平,當(dāng)輸出低電平時信號燈亮,可直接接單片機,可滿足設(shè)計需要。煙霧傳感器在Zigbee 終端1 的接線圖如圖5 所示。
圖5 煙霧傳感器器接線圖
2.1.2 控制模塊設(shè)計
控制模塊單元是由8 引腳JQC-3FF-S-Z 繼電器組成,當(dāng)傳感器接收到的數(shù)據(jù)超過正常數(shù)值,Zigbee 協(xié)調(diào)器就會調(diào)動繼電器對其進行調(diào)整。本設(shè)計使用兩個繼電器,分別用于控制窗戶和窗簾,一個繼電器跟溫濕度傳感器和煙霧傳感器接在Zigbee 終端1 用于控制窗戶開關(guān)、一個繼電器和光照傳感器接在Zigbee 終端2 用于控制窗簾開關(guān)。
終端1 繼電器在Zigbee 終端1 的原理圖如圖6 所示。
圖6 終端1 繼電器原理圖
本設(shè)計融合網(wǎng)關(guān)包括Zigbee 模塊、BC26 模塊和OneNET云平臺。融合網(wǎng)關(guān)實現(xiàn)Zigbee 模塊與BC26 模塊的通信和BC26 與OneNET 云平臺之間的通信。融合網(wǎng)關(guān)中Zigbee 協(xié)調(diào)器將從Zigbee終端接收到的數(shù)據(jù)通過串口傳輸給BC26 模塊,BC26模塊通過NB-IOT 網(wǎng)關(guān)將接收到信息傳輸?shù)絆neNET云平臺。
家庭融合網(wǎng)關(guān)實物圖如圖7 所示。家庭網(wǎng)關(guān)的LED1 是Zigbee 終 端1 的通訊指示燈,LED2 是與Zigbee 終端2 的通訊指示燈。通訊指示燈滅表示Zigbee 終端與Zigbee 協(xié)調(diào)器通訊中斷或者通訊不成功。
圖7 家庭融合網(wǎng)關(guān)實物圖
本設(shè)計使用的是TI 推出的Zigbee 2007 協(xié)議棧也稱之 為Z-stack。Z-stack 協(xié) 議棧中有事件驅(qū)動型操作系統(tǒng)抽象層OSAL,OSAL 是基于事件驅(qū)動的輪詢式操作系統(tǒng),當(dāng)有事件的時候,創(chuàng)建的任務(wù)才會被觸發(fā),沒有事件的時候,創(chuàng)建的任務(wù)不會被觸發(fā)。應(yīng)用層是一個任務(wù),他有系統(tǒng)分配的唯一編號叫任務(wù)ID,每一個任務(wù)都有對應(yīng)的事件處理,每一個任務(wù)都有自己的任務(wù)事件處理函數(shù)。任務(wù)事件處理函數(shù)有一個任務(wù)事件變量,需要處理的事件有一個事件號,當(dāng)任務(wù)事件變量與事件號相與為1 時,這個事件將會被處理,當(dāng)任務(wù)事件變量與事件號相與為0 時,程序會認(rèn)為當(dāng)前沒有需要處理的事件。輪詢機制就是不斷地判斷程序里面有沒有相與不為0 的事件,調(diào)用對應(yīng)任務(wù)ID 下的任務(wù)事件處理函數(shù)處理任務(wù)事件變量和事件號與為1 的事件。如圖8 所示,OSAL 事件驅(qū)動過程。
圖8 OSAL 事件驅(qū)動過程
本設(shè)計中的網(wǎng)關(guān)節(jié)點也是協(xié)調(diào)器節(jié)點,系統(tǒng)軟件不僅要包含協(xié)調(diào)器的基本工作還有兩個異構(gòu)網(wǎng)絡(luò)之間的通信,CC2530 與BC26 模塊是串口連接,Zigbee 協(xié)調(diào)器與終端之間的通信是Zigbee 協(xié)議由Z-Stack 協(xié)議棧處理,NB-IOT與云平臺之間的通信是NB-IOT 協(xié)議由BC26 模塊處理,兩個異構(gòu)網(wǎng)絡(luò)的數(shù)據(jù)交換主要為應(yīng)用層數(shù)據(jù)的交換。
兩個平臺的通信過程,首先對BC26 進行初始化,采用AT 握手模塊,判斷卡是否存在,接著判斷注冊網(wǎng)絡(luò)狀態(tài),當(dāng)設(shè)備正常收發(fā)數(shù)據(jù)才可以正常處理。
然后初始化MQTT,連接上云平臺,為發(fā)數(shù)據(jù)做準(zhǔn)備。發(fā)送數(shù)據(jù)時,要獲取JSON 數(shù)據(jù)格式進行數(shù)據(jù)發(fā)送,一定要嚴(yán)格按照OneNET 平臺的要求來進行數(shù)據(jù)組包,不能隨意自己發(fā)數(shù)據(jù),JSON 數(shù)據(jù)包的長度為n 個字節(jié),JSON 格式的第一個字節(jié)是數(shù)據(jù)點類型值,屬于JSON 類型1,第一個字節(jié)值為1。第二個字節(jié)是后面JSON 字符串的長度高位,JSON 數(shù)據(jù)整體長度不能超過128 個字節(jié),一次性發(fā)送128 個字節(jié)以上的數(shù)據(jù),ZigBee 網(wǎng)絡(luò)會崩潰,出現(xiàn)異常。如果數(shù)據(jù)長度過長,要進行分包發(fā)送,第二個字節(jié)的值為0x00。第三個字節(jié)為低位,值為0x41。第4~n 個字節(jié)為發(fā)送的數(shù)據(jù)內(nèi)容,如果第一個發(fā)送溫度值格式是:
datastreams 內(nèi)可以同時傳輸多個數(shù)據(jù)流,格式是:
其中,""at":"時間戳""可以選擇省略。本設(shè)計傳輸了溫度值、濕度值、煙霧值、光照值和一個當(dāng)這四項數(shù)據(jù)出現(xiàn)異常時,警告異常的警告值。因為一個JSON 包放不下,使用了分包發(fā)送。
OneNET 云平臺提供3 種版本的數(shù)據(jù)可視化應(yīng)用,本設(shè)計使用的是平臺的VIEW3.0。VIEW3.0 支持2D/3D 場景搭建、OneNET 內(nèi)置數(shù)據(jù)源接入,搭建場景便利和簡單。本設(shè)計搭建的管理系統(tǒng)包含傳感器實時的采集數(shù)據(jù)顯示、歷史采集數(shù)據(jù)顯示和傳感器采集到的數(shù)據(jù)異常時,顯示“1”的異常情況通知顯示。本設(shè)計場景的實時數(shù)據(jù)是每7 秒刷新一次,采用過濾器過濾組件數(shù)據(jù),如圖9 所示,家庭環(huán)境監(jiān)控系統(tǒng)管理平臺數(shù)據(jù)可視化顯示。
圖9 家庭環(huán)境監(jiān)控系統(tǒng)管理平臺數(shù)據(jù)可視化顯示
傳感器實時采集數(shù)據(jù)信息,傳遞給Zigbee 終端,經(jīng)過Zigbee 無線網(wǎng)絡(luò)的運載,到達BC26 模塊,再送到上位機顯示,系統(tǒng)可以通過溫濕度、光照、煙霧數(shù)值的異常,選擇打開窗戶或者拉窗簾,保持家庭恒溫恒濕的環(huán)境,還可以監(jiān)控家庭是否出現(xiàn)異常的溫度數(shù)據(jù)或者煙霧值,保證了房屋的安全性。實踐表明,該系統(tǒng)運行穩(wěn)定,實時反饋效果理想,滿足家庭環(huán)境監(jiān)測系統(tǒng)的要求,并具有一定的市場前景。