周潔,徐金鳴,孫立輝
(吉林化工學院 信息與控制工程學院,吉林吉林,132000)
隨著我國信息技術的高速發展,人們對于家庭居住環境的安全性和舒適度有了新要求。由于家庭成員不能時時居住在房屋內,去改善家庭環境。因此當房屋人體最佳居住環境參數發生變化時,很容易滋生健康隱患[1~2]。許多學者對家庭遠程監控系統做了大量研究,蔣志偉等人[3]設計一種以ARM 為核心的智能家居系統,運用QT 技術設計智能網關的UI 界面實現對全屋控制。程琪戩等人[4]提出了采用Zigbee 技術,數據通過網關發到互聯網實現物聯網智能家居安防。鄧楷煊等人[5]提出了用STM32 作為主控制器,通過ESP8266 發送數據到云平臺。何朋高等人[6]提出了一種基于ZigBee 的智能家居控制系統,采用ZigBee 無線通信技術與單片機技術實現“一對多”模式下的智能控制。杜忠波等人[7]設計一種基于ZigBee 技術和LabVIEW 的分布式家庭智能化監控系統,使用無線數據網絡對家居環境中的各項信息進行監控。李雪峰等人[8]設計了以STM32 單片機為主控芯片,實現對家居的遠程及智能語音控制。馬晗旭等人[9]設計了一種基于家庭環境安全遠程監控,采用STM32F103 單片機為控制核心,監測信息通過GSM 通訊模塊發送至手機端。孫宇舸等人[10]設計一種采用Arduino Uno 開發板為主控制器,采用ESP8266 WiFi 模塊搭建一個具有遠程控制的智能家居控制系統。大多數學者在上位機與下位機之間使用藍牙或者WiFi 等技術,而這些技術都存在功耗高、信號不穩定等問題。因此,本設計采用NB-IOT 技術,設計一款基于NB-IoT 的家庭環境安全監控系統,同時結合Zigbee 無線傳感技術和OneNET 云平臺接入技術,實現了在云平臺上實時監控各個傳感器數據,為家庭安全防護和家庭成員居住舒適度和安全性的提升提供了參考。
家庭環境安全監控系統包括監控系統的下位機和查看數據信息的云平臺的上位機。其中,下位機部分中Zigbee協調器作為主要的控制單元,傳感器作為數據采集單元連接在Zigbee 終端上,傳感器將采集到的數據通過Zigbee 網絡傳輸到Zigbee協調器上,由Zigbee協調器接收處理數據。數據通信單元由NB-IOT 模塊和Zigbee 協調器組成。上位機部分為云平臺管理系統,主要包括數據管理、設備管理等。系統總體結構框圖如圖1 所示。通過對家庭環境的濕度、環境溫度、當前光照強度和煙霧傳感器濃度的采集,并結合溫度過高開窗、環境光照強度過高關閉窗簾、煙霧傳感器濃度過高打開窗戶等相關科學的算法,控制窗簾和窗戶適時地打開或關閉,實現對家庭環境居住舒適度和安全性的精準控制。數據的傳輸采用電信CoAP/NB-IoT 模塊對數據進行透傳,NB-IOT 與OneNET 云平臺之間使用LWM2M 協議進行傳輸,隔兩秒鐘CC2530 將采集的所有信息傳輸到OneNET云平臺,以組態的方式展示給管理員。

圖1 系統總體結構框圖
Zigbee 模塊主要是將串口接收到的數據,通過Zigbee協議傳輸到對應的Zigbee 模塊,對應的Zigbee 模塊接收到信息后,將接收的信息通過串口輸出。本設計的模塊是基于TI CC2530 芯片研發的一款工作在2.4GHz 頻段的Zigbee 無線模塊。本設計一共用了兩個Zigbee 終端節點,下面簡稱為終端1 和終端2。CC2530 終端的最小系統接線圖如圖2 所示。
2.1.1 采集模塊設計
數據采集單元是由溫濕度傳感器、光照傳感器和煙霧傳感器組成。溫濕度傳感器、煙霧傳感器連接在終端1 上,光照傳感器連接在終端2上,他們將采集到的信息傳輸給連接的Zigbee 節點,再由節點向外輸出。
溫濕度傳感器選用的是DHT11 數字溫濕度傳感器,濕度的精準度在±5%RH,溫度的精準度在±2℃,可測量的濕度范圍為5%~95%RH,溫度范圍為-20 ℃~+60 ℃。DHT11 具有超長的信號傳輸距離和超低功耗,符合本設計家庭環境溫濕度測量的要求。溫度傳感器在Zigbee 終端1的接線圖如圖3 所示。

圖3 溫度傳感器接線圖
光照傳感器選用的是數字型光強度傳感器BH1750,該傳感器可檢測的光強度范圍是0~65535 LX,利用它的高分辨率可以探測較大范圍的光強度變化,可滿足設計需要。BH1750 光照傳感器在Zigbee 終端2 的接線圖如圖4 所示。

圖4 BH1750 光照傳感器接線圖
煙霧傳感器選用的是對天然氣和煙霧有較好靈敏度的MQ-2,該傳感器可檢測煙霧和天然氣的濃度范圍是100~10000ppm,輸出0~5V 的測量電壓,氣體濃度越高,電壓越高,模擬量及TTL 電平雙路信號輸出,TTL 輸出有效信號為低電平,當輸出低電平時信號燈亮,可直接接單片機,可滿足設計需要。煙霧傳感器在Zigbee 終端1 的接線圖如圖5 所示。

圖5 煙霧傳感器器接線圖
2.1.2 控制模塊設計
控制模塊單元是由8 引腳JQC-3FF-S-Z 繼電器組成,當傳感器接收到的數據超過正常數值,Zigbee 協調器就會調動繼電器對其進行調整。本設計使用兩個繼電器,分別用于控制窗戶和窗簾,一個繼電器跟溫濕度傳感器和煙霧傳感器接在Zigbee 終端1 用于控制窗戶開關、一個繼電器和光照傳感器接在Zigbee 終端2 用于控制窗簾開關。
終端1 繼電器在Zigbee 終端1 的原理圖如圖6 所示。

圖6 終端1 繼電器原理圖
本設計融合網關包括Zigbee 模塊、BC26 模塊和OneNET云平臺。融合網關實現Zigbee 模塊與BC26 模塊的通信和BC26 與OneNET 云平臺之間的通信。融合網關中Zigbee 協調器將從Zigbee終端接收到的數據通過串口傳輸給BC26 模塊,BC26模塊通過NB-IOT 網關將接收到信息傳輸到OneNET云平臺。
家庭融合網關實物圖如圖7 所示。家庭網關的LED1 是Zigbee 終 端1 的通訊指示燈,LED2 是與Zigbee 終端2 的通訊指示燈。通訊指示燈滅表示Zigbee 終端與Zigbee 協調器通訊中斷或者通訊不成功。

圖7 家庭融合網關實物圖
本設計使用的是TI 推出的Zigbee 2007 協議棧也稱之 為Z-stack。Z-stack 協 議棧中有事件驅動型操作系統抽象層OSAL,OSAL 是基于事件驅動的輪詢式操作系統,當有事件的時候,創建的任務才會被觸發,沒有事件的時候,創建的任務不會被觸發。應用層是一個任務,他有系統分配的唯一編號叫任務ID,每一個任務都有對應的事件處理,每一個任務都有自己的任務事件處理函數。任務事件處理函數有一個任務事件變量,需要處理的事件有一個事件號,當任務事件變量與事件號相與為1 時,這個事件將會被處理,當任務事件變量與事件號相與為0 時,程序會認為當前沒有需要處理的事件。輪詢機制就是不斷地判斷程序里面有沒有相與不為0 的事件,調用對應任務ID 下的任務事件處理函數處理任務事件變量和事件號與為1 的事件。如圖8 所示,OSAL 事件驅動過程。

圖8 OSAL 事件驅動過程
本設計中的網關節點也是協調器節點,系統軟件不僅要包含協調器的基本工作還有兩個異構網絡之間的通信,CC2530 與BC26 模塊是串口連接,Zigbee 協調器與終端之間的通信是Zigbee 協議由Z-Stack 協議棧處理,NB-IOT與云平臺之間的通信是NB-IOT 協議由BC26 模塊處理,兩個異構網絡的數據交換主要為應用層數據的交換。
兩個平臺的通信過程,首先對BC26 進行初始化,采用AT 握手模塊,判斷卡是否存在,接著判斷注冊網絡狀態,當設備正常收發數據才可以正常處理。
然后初始化MQTT,連接上云平臺,為發數據做準備。發送數據時,要獲取JSON 數據格式進行數據發送,一定要嚴格按照OneNET 平臺的要求來進行數據組包,不能隨意自己發數據,JSON 數據包的長度為n 個字節,JSON 格式的第一個字節是數據點類型值,屬于JSON 類型1,第一個字節值為1。第二個字節是后面JSON 字符串的長度高位,JSON 數據整體長度不能超過128 個字節,一次性發送128 個字節以上的數據,ZigBee 網絡會崩潰,出現異常。如果數據長度過長,要進行分包發送,第二個字節的值為0x00。第三個字節為低位,值為0x41。第4~n 個字節為發送的數據內容,如果第一個發送溫度值格式是:
datastreams 內可以同時傳輸多個數據流,格式是:
其中,""at":"時間戳""可以選擇省略。本設計傳輸了溫度值、濕度值、煙霧值、光照值和一個當這四項數據出現異常時,警告異常的警告值。因為一個JSON 包放不下,使用了分包發送。
OneNET 云平臺提供3 種版本的數據可視化應用,本設計使用的是平臺的VIEW3.0。VIEW3.0 支持2D/3D 場景搭建、OneNET 內置數據源接入,搭建場景便利和簡單。本設計搭建的管理系統包含傳感器實時的采集數據顯示、歷史采集數據顯示和傳感器采集到的數據異常時,顯示“1”的異常情況通知顯示。本設計場景的實時數據是每7 秒刷新一次,采用過濾器過濾組件數據,如圖9 所示,家庭環境監控系統管理平臺數據可視化顯示。

圖9 家庭環境監控系統管理平臺數據可視化顯示
傳感器實時采集數據信息,傳遞給Zigbee 終端,經過Zigbee 無線網絡的運載,到達BC26 模塊,再送到上位機顯示,系統可以通過溫濕度、光照、煙霧數值的異常,選擇打開窗戶或者拉窗簾,保持家庭恒溫恒濕的環境,還可以監控家庭是否出現異常的溫度數據或者煙霧值,保證了房屋的安全性。實踐表明,該系統運行穩定,實時反饋效果理想,滿足家庭環境監測系統的要求,并具有一定的市場前景。