張鋼 馮明卿 李曉潔
摘 要:根據(jù)電力倉儲(chǔ)管理中溫濕度實(shí)時(shí)監(jiān)控的需要,采用ZigBee無線通信技術(shù),以TI CC2530無線單片機(jī)及ZStack協(xié)議桟為核心,結(jié)合數(shù)字溫濕度傳感器,設(shè)計(jì)了一款多測(cè)點(diǎn)無線傳感器網(wǎng)絡(luò)測(cè)量系統(tǒng)。本文介紹系統(tǒng)的構(gòu)成和工作原理、硬件選擇和軟件設(shè)計(jì)。測(cè)試結(jié)果表明,該系統(tǒng)監(jiān)測(cè)效果良好,具有功耗低、體積小、操作方便、成本低等特點(diǎn)。
關(guān)鍵詞:ZigBee;無線通信;溫濕度;CC2530
DOI:10.16640/j.cnki.37-1222/t.2018.19.176
1 引言
在電力倉庫管理和物資保存過程中,環(huán)境溫度和濕度是非常重要的控制參數(shù),當(dāng)溫度濕度變化超過一定范圍,會(huì)對(duì)儲(chǔ)備物資的質(zhì)量造成很大的影響,使電力物資的物理和化學(xué)性質(zhì)產(chǎn)生變化,機(jī)械性能變壞,物體強(qiáng)度降低,發(fā)生金屬銹蝕,生蟲霉變等等。傳統(tǒng)的倉儲(chǔ)部門是由倉管員不定時(shí)查看、記錄倉庫和車間的濕度值,費(fèi)時(shí)間和人力,數(shù)據(jù)不是很客觀。我們和電力公司物流中心合作,在分析研究現(xiàn)有倉儲(chǔ)監(jiān)測(cè)措施的基礎(chǔ)上,將基于ZigBee的無線傳感器網(wǎng)絡(luò)技術(shù)應(yīng)用于電力倉儲(chǔ)環(huán)境監(jiān)測(cè)領(lǐng)域,設(shè)計(jì)了基于CC2530芯片的傳感器節(jié)點(diǎn)硬件結(jié)構(gòu)和軟件系統(tǒng),構(gòu)建了倉儲(chǔ)管理環(huán)境參數(shù)多點(diǎn)監(jiān)測(cè)系統(tǒng)的智能組網(wǎng)方案,該系統(tǒng)可以對(duì)倉庫目標(biāo)節(jié)點(diǎn)的溫度、濕度和煙霧等環(huán)境參數(shù)進(jìn)行全面、快捷的無線采集和保存查詢。
2 系統(tǒng)原理與硬件構(gòu)成
(1)ZigBee通信技術(shù)是一種短距離、低數(shù)據(jù)速率、低復(fù)雜度、低功耗的無線通信技術(shù),基于 ZigBee 的無線傳輸設(shè)備由于體積小、功耗低、傳輸好、靈活位置等優(yōu)點(diǎn),在溫室環(huán)境參數(shù)監(jiān)測(cè)方面具有廣闊的應(yīng)用前景。ZigBee通信技術(shù)是物聯(lián)網(wǎng)應(yīng)用的核心技術(shù)之一。
ZigBee網(wǎng)絡(luò)中存在三種節(jié)點(diǎn),協(xié)調(diào)器(Coordinator)、終端節(jié)點(diǎn)(Enddevice)和路由器(router)。又分為全功能設(shè)備FFD與精簡功能設(shè)備RFD。
ZigBee網(wǎng)絡(luò)中全功能器件FFD具有完整的協(xié)議功能,在網(wǎng)絡(luò)中可以作三種節(jié)點(diǎn)中的任意一種。精簡的功能器件RFD主要目的是要實(shí)現(xiàn)非常簡單的協(xié)議功能,因此只能夠在網(wǎng)絡(luò)中作普通的節(jié)點(diǎn)。FFD可以和RFD或其他的FFD進(jìn)行通信,可是RFD只能和FFD進(jìn)行通信。ZigBee網(wǎng)絡(luò)要求至少有一個(gè)全功能設(shè)備作為網(wǎng)絡(luò)協(xié)調(diào)器。支持星型網(wǎng)、樹狀網(wǎng)和網(wǎng)狀網(wǎng)三種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。圖1 為常見的zigbee無線網(wǎng)絡(luò)結(jié)構(gòu)圖。
在倉儲(chǔ)管理與監(jiān)測(cè)方面,采用ZigBee無線通信技術(shù)在大型倉儲(chǔ)、農(nóng)業(yè)大棚等需要多點(diǎn)多參數(shù)數(shù)據(jù)采集的環(huán)境中,能夠避免有線傳輸情況下布線費(fèi)用昂貴,維修困難,難于擴(kuò)展的不足,更便于移動(dòng)節(jié)點(diǎn)的數(shù)據(jù)采集。
本項(xiàng)目根據(jù)某電力倉儲(chǔ)物資管理應(yīng)用中的實(shí)際問題,采用ZigBee無線技術(shù),采用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)實(shí)現(xiàn)組網(wǎng),應(yīng)用 CC2530通信模塊及SHT11溫濕度傳感器,設(shè)計(jì)出一套倉儲(chǔ)環(huán)境多點(diǎn)溫濕度實(shí)時(shí)監(jiān)測(cè)系統(tǒng)。監(jiān)測(cè)系統(tǒng)由兩個(gè)部分構(gòu)成: 監(jiān)控顯示模塊和 ZigBee無線傳感器網(wǎng)絡(luò)。ZigBee 溫度監(jiān)控系統(tǒng)測(cè)試主要功能是:協(xié)調(diào)器自動(dòng)建立一個(gè)網(wǎng)絡(luò),網(wǎng)絡(luò)中各傳感器節(jié)點(diǎn)發(fā)現(xiàn)該網(wǎng)絡(luò)后,加入該網(wǎng)絡(luò),自動(dòng)完成綁定,并工作于采集模式,開始向協(xié)調(diào)器發(fā)送溫濕度數(shù)據(jù); 協(xié)調(diào)器節(jié)點(diǎn)通過串口將傳感器節(jié)點(diǎn)采集的溫度數(shù)據(jù)上傳至監(jiān)控平臺(tái)顯示PC,顯示在監(jiān)控屏幕上,保存到數(shù)據(jù)庫中,管理員可以訪問整個(gè)倉儲(chǔ)溫室環(huán)境各種信息。倉儲(chǔ)環(huán)境顯示信息能夠以數(shù)字及圖形曲線形式表示,管理員能夠直觀詳盡了解倉儲(chǔ)環(huán)境多個(gè)參數(shù)的實(shí)時(shí)和歷史狀態(tài),或及時(shí)采取相應(yīng)措施。
(2)協(xié)調(diào)器節(jié)點(diǎn)的硬件設(shè)計(jì):協(xié)調(diào)器屬于全功能設(shè)備FFD。協(xié)調(diào)器節(jié)點(diǎn)的主要作用首先是啟動(dòng)和配置網(wǎng)絡(luò),即網(wǎng)絡(luò)組網(wǎng)的過程中第一個(gè)啟動(dòng)的設(shè)備就是協(xié)調(diào)器,當(dāng)協(xié)調(diào)器配置好以后其他設(shè)備才能加入; 協(xié)調(diào)器的工作任務(wù)在于控制各個(gè)終端傳感器節(jié)點(diǎn)的工作節(jié)奏,接收各終端節(jié)點(diǎn)的監(jiān)測(cè)數(shù)據(jù),將收集的溫濕度數(shù)據(jù)通過串口上傳到上位機(jī)監(jiān)控平臺(tái)。協(xié)調(diào)器硬件采用新一代射頻模塊CC2530F256 芯片,其內(nèi)含增強(qiáng)型低功耗 8051 微控制器內(nèi)核和高性能無線射頻模塊,具有256KB可編程閃存,是優(yōu)秀的片上系統(tǒng)解決方案,支持IEEE802.15.4 /ZigBee/ZigBee RF4CE標(biāo)準(zhǔn)和ZigBee2007/Pro 協(xié)議棧,帶自2個(gè)USART接口,模塊能便捷完成信號(hào)的收發(fā)功能。
(3)傳感器節(jié)點(diǎn)硬件設(shè)計(jì):傳感器節(jié)點(diǎn)主要負(fù)責(zé)溫濕度數(shù)據(jù)的采集、發(fā)送以及控制指令的接收?qǐng)?zhí)行,是采集終端節(jié)點(diǎn),該節(jié)點(diǎn)屬于半功能設(shè)備RFD。硬件部分與協(xié)調(diào)器節(jié)點(diǎn)類似,采用 2.4GHz 集成 CC2530 射頻模塊。所采用的溫濕度傳感器是Sensirion公司的新一代的數(shù)字式溫濕度露點(diǎn)傳感器SHT1 1,可實(shí)現(xiàn)免標(biāo)定、免調(diào)試、數(shù)字式輸出及全互換功能。其溫度采集精度可達(dá)±0.5℃,濕度采集精度達(dá)±3.5%RH,其采用雙向兩線串行數(shù)據(jù)接口能與CC2530-Zigbee模塊進(jìn)行通訊。終端節(jié)點(diǎn)同時(shí)配置其他傳感器,可實(shí)現(xiàn)煙霧報(bào)警、紅外線人像監(jiān)測(cè)。
3 系統(tǒng)軟件設(shè)計(jì)
(1)系統(tǒng)開發(fā)環(huán)境:采用流行的 IAR Embedded Workbench For C8051開發(fā)平臺(tái),軟件基礎(chǔ)設(shè)計(jì)采用TI 公司 CC2530芯片組支持的ZigBee2007/Pro協(xié)議軟件,以ZStack 中Sensordemo等例程為基礎(chǔ),通過APP程序2次開發(fā)來建立所需要的項(xiàng)目。利用 CC Debugger完成程序的下載工作。
項(xiàng)目程序包含協(xié)調(diào)器節(jié)點(diǎn)和傳感器節(jié)點(diǎn)兩個(gè)子工程。協(xié)調(diào)器工作時(shí),協(xié)調(diào)器協(xié)議棧運(yùn)用初始化函數(shù),進(jìn)行網(wǎng)絡(luò)各層的任務(wù)初始化;當(dāng)接受到傳感器節(jié)點(diǎn)加入網(wǎng)絡(luò)之后,協(xié)議棧會(huì)根據(jù)事件的 task_id 進(jìn)入網(wǎng)關(guān)節(jié)點(diǎn)的任務(wù)事件處理函數(shù)。按照循環(huán)請(qǐng)求的方式向終端節(jié)點(diǎn)請(qǐng)求采集數(shù)據(jù),處理數(shù)據(jù), 延時(shí)等待,再次進(jìn)入循環(huán)工作狀態(tài)。PC通過串口與協(xié)調(diào)器通信,上位機(jī)監(jiān)控系統(tǒng)軟件向協(xié)調(diào)器發(fā)送數(shù)據(jù)請(qǐng)求指令,協(xié)調(diào)器的串口回傳函數(shù)uartRxCB就進(jìn)行相應(yīng)處理,調(diào)用sys_Ping_Request()向PC機(jī)發(fā)送協(xié)調(diào)器的基本信息。
傳感器節(jié)點(diǎn)初始化后,掃描網(wǎng)絡(luò)信道,尋找到相應(yīng)的父節(jié)點(diǎn)并加入網(wǎng)絡(luò)。通過初始化函數(shù) SensorNode_Init (),調(diào)用 osal_start_timerEx () ,該函數(shù)有三個(gè)參數(shù),用來設(shè)置事件和定時(shí),并向 ZStack 發(fā)送測(cè)溫事件 SEND_DATA_EVENT,故可在輪詢時(shí)發(fā)現(xiàn)這個(gè)事件標(biāo)志,進(jìn)入事件的處理函數(shù) SensorNode_ProcessEvent (),進(jìn)行參數(shù)的數(shù)據(jù)采集,數(shù)據(jù)就由此傳感器節(jié)點(diǎn)通過發(fā)送函數(shù)AF_SendDataRequest() 傳到協(xié)調(diào)器節(jié)點(diǎn)。沒有事件時(shí)則節(jié)點(diǎn)進(jìn)入休眠狀態(tài)。
(2) 上位機(jī)監(jiān)控終端軟件設(shè)計(jì):自主開發(fā)了zigbee無線傳感器網(wǎng)絡(luò)監(jiān)控系統(tǒng)軟件ZEPC V1.0,系統(tǒng)主界面如圖3。上位機(jī)軟件采用主流的Java技術(shù)實(shí)現(xiàn),將每個(gè)無線終端節(jié)點(diǎn)的溫度、濕度、及電池容量等采集數(shù)據(jù)匯總到人機(jī)監(jiān)控界面中,形成用戶適用的數(shù)據(jù)表現(xiàn)形式,每個(gè)采集點(diǎn)的溫度、濕度、報(bào)警等信息都用數(shù)字或?qū)崟r(shí)曲線圖的方式展示出來,方便監(jiān)控管理員直觀地查看。采集到的實(shí)時(shí)數(shù)據(jù)存入到數(shù)據(jù)庫,可顯示參數(shù)列表、實(shí)時(shí)曲線圖、實(shí)時(shí)數(shù)據(jù)、累計(jì)數(shù)據(jù)、歷史、報(bào)警畫面、報(bào)表等多種顯示、統(tǒng)計(jì)功能,更加貼近用戶需求。
1)串口讀寫:監(jiān)測(cè)系統(tǒng)的協(xié)調(diào)器在收集到終端節(jié)點(diǎn)傳來的采集數(shù)據(jù)后通過串口發(fā)送給上位機(jī),上位機(jī)通過串口將控制命令發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器再將命令發(fā)送給終端節(jié)點(diǎn)進(jìn)行控制。串口數(shù)據(jù)的收發(fā)采用SUN公司提供的JcommAPI實(shí)現(xiàn),JcommAPI提供了對(duì)常用的RS232串行端口通訊的支持。JCommAPI中CommPortIdentifier類是對(duì)串口進(jìn)行訪問控制的核心類,主要用于對(duì)串口進(jìn)行設(shè)置。
2)實(shí)時(shí)曲線圖的實(shí)現(xiàn):通過Java多線程技術(shù)及JFreeChart技術(shù),可以將采集到的溫濕度等數(shù)據(jù)以實(shí)時(shí)曲線圖的方式展示。時(shí)序圖的實(shí)現(xiàn)用ChartFactory類的createTimeSeriesChart()方法實(shí)現(xiàn)。曲線上的數(shù)據(jù)則通過線程,在指定的時(shí)間間隔內(nèi)將采集到的數(shù)據(jù)和當(dāng)前時(shí)間添加到時(shí)序圖中,從而形成實(shí)時(shí)波動(dòng)的圖像。
3)歷史數(shù)據(jù)查詢:采集到的數(shù)據(jù)存入數(shù)據(jù)庫后,就可以對(duì)歷史數(shù)據(jù)進(jìn)行查詢處理。數(shù)據(jù)庫選用微軟的SQLServer,通過一張表來存儲(chǔ)節(jié)點(diǎn)地址、溫度、濕度等數(shù)據(jù)。利用JDBC來訪問數(shù)據(jù),并使用SQL語言對(duì)數(shù)據(jù)庫進(jìn)行增刪改查操作。
(3)系統(tǒng)現(xiàn)場測(cè)試:為了測(cè)試系統(tǒng)的性能,在電力公司經(jīng)開區(qū)物資倉庫進(jìn)行了實(shí)測(cè)。倉庫大廳約3000平米。在測(cè)試中,我們故意地對(duì)倉庫各處傳感器終端上進(jìn)行了加溫、加濕、煙霧等干擾,從顯示終端上看這些干擾都能相應(yīng)地在監(jiān)測(cè)系統(tǒng)中看到變化。在倉庫空曠處終端節(jié)點(diǎn)數(shù)據(jù)可以穩(wěn)定傳輸60-70多米。在倉庫物資遮攔處數(shù)據(jù)可以穩(wěn)定傳輸30-50米。測(cè)試中發(fā)現(xiàn)節(jié)點(diǎn)天線的高度和位置是影響信號(hào)傳輸?shù)闹匾蛩?,另外隨著儲(chǔ)物數(shù)量的變動(dòng),節(jié)點(diǎn)天線放置高度,設(shè)備流動(dòng)和體積等等也是重要的影響因素。
4 結(jié)語
運(yùn)用ZigBee 協(xié)議及通信模塊設(shè)計(jì)并實(shí)現(xiàn)了一種新型無線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng), 完成了電力倉儲(chǔ)溫室內(nèi)溫濕度等環(huán)境參數(shù)的實(shí)時(shí)監(jiān)測(cè), 系統(tǒng)運(yùn)行穩(wěn)定,達(dá)到了預(yù)期的目標(biāo)。由于傳統(tǒng)的布線監(jiān)控方式越來越顯現(xiàn)出它的局限性,ZigBee無線傳感器網(wǎng)絡(luò)為需要搭建多參數(shù)傳感器網(wǎng)絡(luò)的倉儲(chǔ)環(huán)境監(jiān)測(cè)系統(tǒng)提供了更多精準(zhǔn)有效的方案。
參考文獻(xiàn):
[1]王小強(qiáng)等.ZigBee無線傳感器網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)[M].北京:化學(xué)工業(yè)出版社,2012.
[2]李文中.ZigBee2007/PRO協(xié)議棧實(shí)驗(yàn)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2010.
作者簡介:張鋼(1960-),男,研究生,教授,研究方向:測(cè)控技術(shù)與電子設(shè)計(jì)自動(dòng)化。