衣翠平,柏逢明
(長春理工大學 電子信息工程學院,長春 130022)
糧庫的溫濕度直接影響儲存糧食的質量,如果溫濕度超標會出現發熱、霉變等情況。大部分糧庫溫濕度都是采用有線的方式,鋪設大量電纜,采用單片機多機通訊的方式檢測,而面對糧庫面積大且布局分散布線困難、現場信息分散等問題。用短距離無線通信方式可實時檢測溫濕度,低成本、低功耗、效率高。本文利用基于Zigbee技術構建無線傳感器網絡,對糧庫溫濕度進行實時采集、處理、傳輸和顯示數據。
無線傳感器網絡由部署在檢測區域內大量的廉價傳感器節點組成,通過無線通信方式形成的一個自組織的網絡系統,目的是協作地感知,采集和處理網絡覆蓋區域中感知的對象信息,并發送給觀察者。因此,ZigBee技術和傳感器結合就能夠組建ZigBee無線傳感器網絡,實現一點對多點,兩點間的通信,主要用于溫濕度監控、工業監控、樓宇自動化等多個領域。
ZigBee技術最突出的特征是低成本、低功耗,主要特征如下:(1)低功耗;(2)低成本;(3)體積小,易于大規模布建;(4)可靠性高;(5)協議簡單,通用性。
ZigBee協議層從下向上分別為物理層(PHY)、媒體控制層(MAC)、網絡層(NWK)、應用層(APL)。其中MAC和PHY由 IEEE 802.15.4標準定義,ZigBee聯盟定義了NWK和APL。一般ZigBee網絡支持星型、樹型和網狀型網絡拓撲結構,每個ZigBee網絡必須有一個協調器作為父節點,其他的路由節點和終端節點作為子節點加入網絡。
由于糧庫節點固定不動,組網相對簡單,且數據的傳輸量不大,因此采用只含有協調器和終端節點的星型網絡拓撲結構就能夠完成數據的正常通信。
糧庫無線傳感器網絡的結構框架如圖1所示,傳感器節點負責對糧庫溫濕度的采集,并將采集的數據信息發送到終端節點;終端節點負責通過Zig-Bee協議將從傳感器節點接收的數據發送到中心節點,并完成中心節點命令的傳送;中心節點負責建立ZigBee網絡,并發送和接收指令,通過RS232串口通信與PC機進行數據通信;PC機負責集中顯示和控制糧庫的溫濕度狀況。

圖1 系統整體結構框圖Fig.1 System general structure
為了增加中心節點的數據存儲和處理能力,選用帶256K Flash的射頻芯片,而且有標準的8051增強型處理器,因此選用CC2530作為本設計的主芯片。
CC2530是Zigbee新一代SOC芯片真正的片上系統解決方案,支持IEEE 802.15.4標準/ZigBee RF4CE、Zigbee網絡、家居及樓宇自動化、工業測控等領域,也是目前眾多ZigBee設備產品中表現最為出眾的微處理器之一。
作為片上系統,CC2530集成了增強型高速8051內核處理器,8KB的RAM,多達256KB的閃存以及支持更大的應用;8通道12位A/D轉換器、2個USART接口,21個通用的GPIO等;支持2.0~3.6V供電電壓,具有3種電源管理模式:喚醒模式0.2mA、睡眠模式1μA、中斷模式0.4μA;具有較高的無線接收靈敏度和抗干擾性,傳輸距離大于75m,最高傳輸速率250kbps,CC2530外圍電路如圖2所示。

圖2 CC2530外圍電路圖Fig.2 CC2530 peripheral circuit
由于CC2530內部已經集成了許多必要電路,因此只需較少的外圍電路就能實現信號的收發功能。其中,采用無巴倫的阻抗匹配電路,整個結構滿足匹配電阻(50歐)的要求。XTAL1為32MHZ的無源晶振,由1個32MHZ的石英諧振器和2個電容(C221和C231)組成,XTAL2為32.768KHZ的時鐘晶振,由1個32.768KHZ的石英諧振器和2個電容(C321和C331)組成。LED1、LED2直接與I/O的P1.0和P1.1連接,用于確定節點是否在網絡中。
當檢測到溫濕度時,CC2530對數據先進行預處理,為傳輸數據做好準備。然后通過LCD顯示出來并通過天線發送給中心節點。結構框圖如圖3所示,傳感器部分采集糧庫溫濕度數據;CC2530通信模塊存儲和處理傳來的數據,并與協調器進行無線通信,電源模塊采用鋰電池供電。當傳輸完畢后,控制器進入睡眠模式,使控制器進入低功率模式來延長電池壽命。

圖3 溫濕度采集終端節點設計框圖Fig.3 The design diagram of temperature and humidity collection terminal node
傳感器模塊是終端節點重要組成部分,負責監測和傳輸糧庫溫濕度數據,包括傳感器工作電路、信號放大電路。SHT15是瑞士Sensirion公司推出的一款數字溫濕度傳感器芯片,該傳感器不僅包含基于濕敏電容器的微型相對濕度傳感器和基于帶隙電路的微型溫度傳感器,濕敏電容一般是用高分子膜制成的,當環境濕度發生變化時,濕敏電容的介電常數發生變化,使其電容量發生變化,其電容變化量與相對濕度成正比[5];帶隙電路是基于帶隙結構PN結電壓正比于絕對溫度的感濕器件[6]。而且含有14位的A/D轉換器,可靠的CRC傳輸校驗,兩線數字串行接口SCK和DATA,通過I2C總線與微處理器接口通信。SHT15的供電電壓為2.4V~5.5V,平均功耗28uA,溫度測量范圍:-40℃~ +123.8℃,濕度測量范圍:0~100﹪RH,溫度測量精度:±0.3℃,濕度測量精度:±2.0﹪RH。當SHT15測量和通信完成后,會自動使能進入睡眠模式。
SHT15與CC2530之間通過串行總線I2C進行通信,DATA三態門用于數據的讀取,SCK用于CC2530與SHT15之間的通訊同步。SHT15上電后,經過11s時間進入休眠狀態,只有當CC2530微處理器發出測試命令后,SHT15才被喚醒進行工作。

表1 溫濕度變化數據超出精度范圍的最短△TTab.1 Minumum△T of temperature and humidity data beyond precision scope
為了提高終端節點電池壽命且糧庫溫濕度瞬間很少變化,終端節點需定時采集數據。如果溫濕度變化沒有發生大的變化時,那么較快的采集數據導致電池電量的消耗。另一方面,較短的時間采集可能導致系統檢測不出數據的重大變化或者不能有效地控制溫濕度。以糧庫內不同位置的五個傳感器節點為例,持續24h內讀取了五組溫濕度數據。合適的采集時間間隔是在最短的時間內觀察到溫濕度數據變化超出數字傳感器的精度范圍(±2.0﹪RH和±0.3℃)。表1例舉了5個傳感器溫濕度數據超出精度范圍的最短時間。從表中數據中可以看出,最短溫度變化是13min,最短濕度變化是2min。根據尼奎斯特定理準則和2min的最短時間,在此采集時間間隔是每分鐘一次。也就是終端節點每隔一分鐘采集數據并發送,大大節省電池消耗,降低了傳輸數據的誤差,增加了系統的穩定性和準確性。
中心節點(協調器)作為無線傳感器網絡的核心,實現糧庫溫濕度數據的收發,并通過RS232串口通信將數據發送到上位機,建立友好的人機界面,實現整個系統的可控性和可視性。節點設計采用模塊化功能設計,使中心節點完全可以組成一個可以獨立工作的監測系統。中心節點框圖如圖4所示,CC2530通信模塊作為中心節點的關鍵部分,接收和存儲傳感器節點發來的數據,并發送網絡指令給傳感器節點,同時與PC機進行數據交換;LED顯示網絡節點工作狀態;電源模塊提供工作電壓是3.3V,為了提高電壓芯片內部電壓精度,輸入電壓采用調制后的3.3V穩壓電源。

圖4 中心節點設計框圖Fig.4 The design diagram of center node
系統的軟件設計能夠實現系統的功能,通過對系統的硬件部分進行軟件編程,來實現ZigBee網絡的建立;溫濕度數據的采集;各節點數據的傳輸最后顯示在PC機上。本系統利用的協議棧是TI的Z-STACK。ZigBee協議棧運行在一個OSAL(操作系統抽象層)上,該操作系統是基于任務調度機制,通過對任務的事件觸發來完成任務調度,各種不同的任務在不同的層次上運行,通過層的服務來完成數據傳輸的任務。

圖5 主程序流程圖Fig.5 The main program flowchart
軟件采用模塊化的設計方法,當溫濕度超過糧庫溫濕度設定的上限值(或低于下限值)則進行聲光報警,并及時做出相應的處理。主程序流程如圖5所示
終端節點主要采集溫濕度數據并發送給協調器,并接收來自協調器的相關命令。
從節點上電后,首先硬件初始化和協議棧初始化,搜索臨近的可用網絡并申請加入,成功加入后進入省電模式。當沒有數據傳輸請求時,進入睡眠模式,之后采取中斷喚醒的工作機制。當有數據傳輸請求時,進入工作模式,進行溫濕度采集并發送,發送完成后進入下一輪的數據采集。終端節點軟件流程圖如圖6所示。

圖6 終端節點軟件流程圖Fig.6 Terminal node flowchart
中心節點負責建立一個ZigBee無線網絡,本設計所組建的是一個星型網絡拓撲結構,與其它終端節點進行數據傳輸,在網絡中起到協調器的作用。

圖7 中心節點軟件流程圖Fig.7 Center node flowchart
主節點上電后,首先初始化CC2530芯片及ZigBee協議棧,搜索信道和空閑信道評估,選擇信道并建立ZigBee網絡。當有節點申請加入網絡時,準許加入并分配一個16位的網絡短地址,等待采集數據的命令,然后將接收的所有數據包通過串口通信發送到PC機上,以便更容易地進行數據分析和數據存儲。中心節點軟件流程圖如圖7所示。

表2 溫濕度數據信息Tab.2 Temperature and humidity data information
本系統采用星型網絡拓撲結構,終端節點每隔1分鐘采集一次數據并發送給協調器,協調器再通過串口將數據發送到PC機上,串口設置為COM1,波特率設置為19200bps,數據為8bits,無奇偶校驗,停止位1bit。啟動串口調試助手,在實驗室利用空調升降溫測得溫濕度數據,與實際溫濕度進行比較。

圖8 溫度對比圖Fig.8 Temperature comparsion diagram

圖9 濕度對比圖Fig.9 Humidity comparsion diagram
利用MATLAB對測得的溫濕度與實際的溫濕度數據以折線圖的形式比。如圖8和圖9所示
溫濕度對比圖可以看出星型網絡能夠實現數據采集和傳輸的功能。測量的結果準確性高,從數據信息中可看出溫度誤差不超過±0.7℃,濕度誤差不超過±%2RH。
本文通過設計基于ZigBee技術的CC2530無線溫濕度檢測系統方案,研究了15個傳感器節點的溫濕度,實現了糧庫內的多點檢測和無線傳輸數據,利用MATLAB對數據進行了分析和處理,結果達到了預想的要求。該系統結構簡單,功耗低,檢測效率高,抗干擾性好,且能夠長時間穩定工作,具有較高的實用價值和經濟價值。
[1]包長春,李志紅,張立山,等.基于ZigBee技術的糧庫監測系統設計[J].農業工程學報,2009,25(9):197-201.
[2]方乒乓,傅洪亮,路良友.糧倉監測系統中無線ZigBee的應用與實現[J].山東通信技術,2010,30(2):7-10.
[3]李新.基于CC2530的ZigBee網絡節點設計[J].PLC&FA,2011:97-99.
[4]馬巧娟,鄭萍,王曉光,等.基于ZigBee和LABVIEW的多點無線溫濕度采集系統設計[J].中國儀器儀表,2009,4:49-52.
[5]張盛福,張鵬.提高濕敏電容測量精度的方法[J].儀表技術與傳感器,2003,8:34-35.
[6]吳斯敏,鄒雪城,余國義.一種嵌入Bicmos帶隙電路的過溫保護電路[J]. 艦船電子工程,2003,8:151-153.
[7]韓成浩,李柏峰,高曉紅,等.智能小區溫濕度檢測系統設計[J].長春理工大學學報:自然科學版,2009,32(3):494-497.