文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.01.017
中文引用格式: 李建勇,李洋,劉雪梅. 基于ZigBee的糧庫環境監控系統設計[J].電子技術應用,2016,42(1):65-67,71.
英文引用格式: Li Jianyong,Li Yang,Liu Xuemei. Design of granary environmental monitoring system based on ZigBee[J].Application of Electronic Technique,2016,42(1):65-67,71.
0 引言
我國作為一個人口大國,維持一定數量和品質的糧食儲備是保障國家糧食安全和社會穩定的重要措施。糧食在儲藏過程中易受溫度、水分等因素影響,使糧食發生霉變、蟲害滋生和火災等情況,為了確保儲糧安全,需準確掌握糧食儲藏過程中溫濕度的實時變化、氣味異常、火災警情和能進行通風、防潮除濕等措施[1-4]。傳統的糧庫監控系統大都采用人工或有線監控方式,人工監控不僅費時費力、效率低,而且測量誤差大,隨機性大;而有線監控,當監控點較多情況下,不僅布線繁瑣、成本高,且維護困難、靈活性差。針對這些缺陷,采用ZigBee無線傳感器網絡技術,設計了一種低功耗、低成本、精度高的糧庫環境監控系統。
1 系統總體設計
糧庫環境監控系統主要由ZigBee無線傳感網絡和上位機監控軟件兩部分組成,其結構框圖如圖1所示。ZigBee無線傳感網絡遵循TI公司的ZigBee2007協議棧Z-Stack,采用樹狀拓撲結構,由一個協調器、多個路由器和多個傳感器節點(終端)等設備組成。傳感器節點首先加入由協調器發起的ZigBee網絡,然后把測量各節點的溫度、濕度、氣味濃度和火災警情等環境參數經路由器或直接傳遞到協調器,接著由協調器經串口上傳到PC機,最后用由VS2013制作的上位機監控軟件來實時顯示溫濕度值、氣味濃度和火災警情,對火災聲光報警和反向控制相應節點進行通風或除濕,并記錄所有的數據和操作。
2 系統硬件設計
本系統中的協調器、路由器和傳感器節點三種設備都是以TI公司的ZigBee SOC CC2530F256芯片為核心來進行設計的。CC2530F256是2.4 GHz IEEE 802.15.4和ZigBee應用的片上系統解決方案,支持RemoTI、SimpliciTI、TIMAC和Z-Stack協議棧,內部主要集成一個高性能2.4G RF收發器和一顆工業級小巧高效的8051控制器,以及8 KB RAM和256 KB閃存等其他模塊,以滿足系統對低功耗、低成本的要求[5]。由于協調器、路由器和傳感器節點功能不同,所需硬件電路不同,將分別進行設計。
2.1 傳感器節點設計
傳感器節點主要負責測量各節點的溫度、濕度、氣味濃度和火災警情等環境參數并傳遞到協調器,接收上位機控制軟件發回的命令來控制通風或除濕設備,由電池供電,其硬件結構圖如圖2所示。測量溫度和濕度采用高精度的DHT22數字溫濕度傳感器,通過單總線直接與CC2530的P0.0引腳相連接。由于當糧食發生霉變時會產生霉、酸、腐臭等氣味,通過測量這些氣味的濃度能預測糧食霉變的情況,因此采用TGS2600氣味傳感器來測量氣味濃度,與CC2530的A/D轉換接口A6(P0.6)相連接。采用JNHB1004遠紅外火焰傳感器來測量火災警情,通過一片電壓比價器LM393與CC2530的P0.7相連接,當JNHB1004傳感器檢測到火焰時,立即通過上位機界面符號提示和聲光提示進行火災報警。由于通風和除濕設備為大功率強電設備,采用SRD-05VDC-SL-C繼電器以完成對它們的控制及與節點進行隔離,其輸入端接CC2530的P0.1引腳。這些對傳感器信號的采集、處理和對繼電器的控制都是由CC2530內部集成的8051控制器完成的,而與ZigBee網絡之間的信息交換由CC2530內部集成的RF收發器完成。
由于CC2530的有效通信距離為100 m,為增加節點與路由器和協調器的通信距離,在CC2530后面都增添了高性能功率放大及低噪聲放大芯片RFX2401C,外接SMA膠棒天線或小吸盤天線[6]。
2.2 路由器和協調器設計
路由器用來擴展網絡通信范圍,協助傳感器節點和協調器之間的通信,在樹狀網絡拓撲可周期性工作,因此采用電池供電;而協調器負責啟動和配置網絡,這些完成后就相當于路由器,協助網絡內的傳感器節點和PC機相互通信,必須采用PC機供電。因為不需要傳感器和繼電器等電路,只需要RF收發電路和電源電路,所以路由器和協調器的設計幾乎相同,區別在于協調器多了串口通信電路。協調器電路圖如圖3所示,串口電路采用USB轉串口芯片CH340進行設計,直接與CC2530的UART0相關引腳相連接。
3 系統軟件設計
系統軟件設計主要包括ZigBee網絡中各種設備軟件和上位機監控軟件的設計兩部分。
3.1 ZigBee網絡中各種設備軟件
為便于用戶開發ZigBee系統,TI公司在推出其CC2530的同時,向用戶提供了自己的ZigBee協議棧Z-Stack,它實質就是一套ZigBee系統程序,為TI自己的開發板量身定做的,提供了符合ZigBee2007協議棧體系結構所要求每層操作相關的各種事件處理函數和一個名為操作系統抽象層OSAL 的協議棧調度程序[5],以及包含協調器、路由器和終端程序設計的例程。因此本系統ZigBee網絡中各種設備程序就是在其集成開發環境IAR Embedded Workbench for 8051下修改 Z-Stack-CC2530-2.5.1的SampleApp例程來完成設計的。
協調器和路由器的程序只需在例程基礎上修改協議棧規范、網絡拓撲結構、PANID、信道和數據收發函數等網絡參數以及和系統工程有關的應用層即可,而傳感器節點程序不僅同樣需要修改這些方面,還要根據系統硬件來修改Z-Stack例程各層目錄中所有與硬件有關部分的程序。傳感器節點程序流程圖如圖4所示。由于OSAL只采用了輪詢任務調度隊列的方法來進行任務調度管理,在系統初始化之后就進入輪轉查詢式操作系統,對發生的任何事件就調用協議棧相應層的事件處理函數進行處理,因此在硬件層中設置對JNHB1004火焰傳感器采用中斷處理的事件,對DHT22溫濕度傳感器、TGS2600氣味傳感器和繼電器控制采用輪詢處理的事件等修改以完成系統的開發。
3.2 上位機監控軟件
上位機監控軟件采用VS2013進行設計,主要由傳感器節點狀態區域、實時顯示趨勢圖和通信設置區域等組成。傳感器節點狀態區域按照安排好的節點順序,不僅能實時顯示每個節點的溫度值、濕度值、氣味濃度和火災警情等狀態,當發生火災時進行界面報警燈符號閃亮提示和通過外部聲光設備發出火災警報,同時還有每個節點對應的按鈕用來控制按照一定順序分配的通風和除濕設備。實時顯示趨勢圖不僅按時間可以直接顯示每個節點的溫度值、濕度值和氣味濃度,還能以文本格式存儲溫濕度值、煙霧異常、火災報警和除濕按鈕等所有狀態變化并能隨機查看。通信設置區域主要進行串行和網絡通信的設置,串口設置如端口選擇、打開串口、關閉串口、手動刷新和自動刷新等操作,網絡通信設置如IP設置、啟動和關閉網絡等操作。上位機與各個傳感器節點通信采用主從查詢式,按照約定好的編碼和通信協議,由上位機發起查詢然后傳感器節點進行應答,一問一答,非問莫答,避免各傳感器節點同時發送數據產生沖突。
4 系統測試
本系統利用制作好的4個傳感器節點、1個路由器和1個協調器,在用戶方的1個大平房倉型糧庫中進行測試。該糧庫長100 m,跨度24 m,高7 m,其裝糧高度為6 m,因此在糧庫按25 m間隔和6.1 m高來放置傳感器節點以及按不同距離放置路由器和協調器進行測試,節點1實時溫度趨勢圖如圖5所示。測試結果表明,其平均溫度誤差為0.2 ℃,濕度誤差為2% RH,氣味濃度分辨率為0.5,滿足精度要求,同時對火焰反應比較敏感,預報火警迅速,對通風和除濕設備控制比較準確,而且上位機監控軟件操作簡單。此外本系統采用3 dB的2.4 GHz膠棒天線進行測試,無線模塊輸出功率可達22 dBm,在空曠地帶兩個模塊有效傳輸距離可達1 500 m,滿足通信距離的需要。
5 結束語
測試表明,該系統不僅達到了設計要求,還具有測量精度高、功耗低、成本低、組網靈活、人機界面簡單直觀、實用性強和穩定性高等諸多優點,同時還能用于其他需求相近的領域。
參考文獻
[1] 梁絨香.基于無線傳輸的糧倉多參數綜合監測系統設計[J].自動化技術與應用,2014,33(8):43-47.
[2] 徐艷玲.基于物聯網的遠程糧倉環境監控系統設計[J].軟件工程師,2015,18(2):22-23.
[3] 董靜薇,李會樂,郭艷雯,等.基于Zigbee的糧倉溫濕度監測系統設計[J].哈爾濱理工大學學報,2014,19(2):120-124.
[4] 李家金.基于ZigBee的糧倉環境監測系統設計與實現[D].大連:大連海事學院,2012.
[5] 姜仲,劉丹.ZigBee技術與實訓教程——基于CC2530的無線傳感網絡技術[M].北京:清華大學出版社,2014.
[6] 李建勇,劉雪梅,李洋.基于SimpliciTI的大棚溫濕度無線監測系統設計[J].電子設計工程,2015,23(18):173-179.