衣翠平,柏逢明
(長春理工大學(xué) 電子信息工程學(xué)院,長春 130022)
糧庫的溫濕度直接影響儲存糧食的質(zhì)量,如果溫濕度超標(biāo)會出現(xiàn)發(fā)熱、霉變等情況。大部分糧庫溫濕度都是采用有線的方式,鋪設(shè)大量電纜,采用單片機(jī)多機(jī)通訊的方式檢測,而面對糧庫面積大且布局分散布線困難、現(xiàn)場信息分散等問題。用短距離無線通信方式可實時檢測溫濕度,低成本、低功耗、效率高。本文利用基于Zigbee技術(shù)構(gòu)建無線傳感器網(wǎng)絡(luò),對糧庫溫濕度進(jìn)行實時采集、處理、傳輸和顯示數(shù)據(jù)。
無線傳感器網(wǎng)絡(luò)由部署在檢測區(qū)域內(nèi)大量的廉價傳感器節(jié)點組成,通過無線通信方式形成的一個自組織的網(wǎng)絡(luò)系統(tǒng),目的是協(xié)作地感知,采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中感知的對象信息,并發(fā)送給觀察者。因此,ZigBee技術(shù)和傳感器結(jié)合就能夠組建ZigBee無線傳感器網(wǎng)絡(luò),實現(xiàn)一點對多點,兩點間的通信,主要用于溫濕度監(jiān)控、工業(yè)監(jiān)控、樓宇自動化等多個領(lǐng)域。
ZigBee技術(shù)最突出的特征是低成本、低功耗,主要特征如下:(1)低功耗;(2)低成本;(3)體積小,易于大規(guī)模布建;(4)可靠性高;(5)協(xié)議簡單,通用性。
ZigBee協(xié)議層從下向上分別為物理層(PHY)、媒體控制層(MAC)、網(wǎng)絡(luò)層(NWK)、應(yīng)用層(APL)。其中MAC和PHY由 IEEE 802.15.4標(biāo)準(zhǔn)定義,ZigBee聯(lián)盟定義了NWK和APL。一般ZigBee網(wǎng)絡(luò)支持星型、樹型和網(wǎng)狀型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),每個ZigBee網(wǎng)絡(luò)必須有一個協(xié)調(diào)器作為父節(jié)點,其他的路由節(jié)點和終端節(jié)點作為子節(jié)點加入網(wǎng)絡(luò)。
由于糧庫節(jié)點固定不動,組網(wǎng)相對簡單,且數(shù)據(jù)的傳輸量不大,因此采用只含有協(xié)調(diào)器和終端節(jié)點的星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)就能夠完成數(shù)據(jù)的正常通信。
糧庫無線傳感器網(wǎng)絡(luò)的結(jié)構(gòu)框架如圖1所示,傳感器節(jié)點負(fù)責(zé)對糧庫溫濕度的采集,并將采集的數(shù)據(jù)信息發(fā)送到終端節(jié)點;終端節(jié)點負(fù)責(zé)通過Zig-Bee協(xié)議將從傳感器節(jié)點接收的數(shù)據(jù)發(fā)送到中心節(jié)點,并完成中心節(jié)點命令的傳送;中心節(jié)點負(fù)責(zé)建立ZigBee網(wǎng)絡(luò),并發(fā)送和接收指令,通過RS232串口通信與PC機(jī)進(jìn)行數(shù)據(jù)通信;PC機(jī)負(fù)責(zé)集中顯示和控制糧庫的溫濕度狀況。
圖1 系統(tǒng)整體結(jié)構(gòu)框圖Fig.1 System general structure
為了增加中心節(jié)點的數(shù)據(jù)存儲和處理能力,選用帶256K Flash的射頻芯片,而且有標(biāo)準(zhǔn)的8051增強(qiáng)型處理器,因此選用CC2530作為本設(shè)計的主芯片。
CC2530是Zigbee新一代SOC芯片真正的片上系統(tǒng)解決方案,支持IEEE 802.15.4標(biāo)準(zhǔn)/ZigBee RF4CE、Zigbee網(wǎng)絡(luò)、家居及樓宇自動化、工業(yè)測控等領(lǐng)域,也是目前眾多ZigBee設(shè)備產(chǎn)品中表現(xiàn)最為出眾的微處理器之一。
作為片上系統(tǒng),CC2530集成了增強(qiáng)型高速8051內(nèi)核處理器,8KB的RAM,多達(dá)256KB的閃存以及支持更大的應(yīng)用;8通道12位A/D轉(zhuǎn)換器、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內(nèi)部已經(jīng)集成了許多必要電路,因此只需較少的外圍電路就能實現(xiàn)信號的收發(fā)功能。其中,采用無巴倫的阻抗匹配電路,整個結(jié)構(gòu)滿足匹配電阻(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連接,用于確定節(jié)點是否在網(wǎng)絡(luò)中。
當(dāng)檢測到溫濕度時,CC2530對數(shù)據(jù)先進(jìn)行預(yù)處理,為傳輸數(shù)據(jù)做好準(zhǔn)備。然后通過LCD顯示出來并通過天線發(fā)送給中心節(jié)點。結(jié)構(gòu)框圖如圖3所示,傳感器部分采集糧庫溫濕度數(shù)據(jù);CC2530通信模塊存儲和處理傳來的數(shù)據(jù),并與協(xié)調(diào)器進(jìn)行無線通信,電源模塊采用鋰電池供電。當(dāng)傳輸完畢后,控制器進(jìn)入睡眠模式,使控制器進(jìn)入低功率模式來延長電池壽命。
圖3 溫濕度采集終端節(jié)點設(shè)計框圖Fig.3 The design diagram of temperature and humidity collection terminal node
傳感器模塊是終端節(jié)點重要組成部分,負(fù)責(zé)監(jiān)測和傳輸糧庫溫濕度數(shù)據(jù),包括傳感器工作電路、信號放大電路。SHT15是瑞士Sensirion公司推出的一款數(shù)字溫濕度傳感器芯片,該傳感器不僅包含基于濕敏電容器的微型相對濕度傳感器和基于帶隙電路的微型溫度傳感器,濕敏電容一般是用高分子膜制成的,當(dāng)環(huán)境濕度發(fā)生變化時,濕敏電容的介電常數(shù)發(fā)生變化,使其電容量發(fā)生變化,其電容變化量與相對濕度成正比[5];帶隙電路是基于帶隙結(jié)構(gòu)PN結(jié)電壓正比于絕對溫度的感濕器件[6]。而且含有14位的A/D轉(zhuǎn)換器,可靠的CRC傳輸校驗,兩線數(shù)字串行接口SCK和DATA,通過I2C總線與微處理器接口通信。SHT15的供電電壓為2.4V~5.5V,平均功耗28uA,溫度測量范圍:-40℃~ +123.8℃,濕度測量范圍:0~100﹪RH,溫度測量精度:±0.3℃,濕度測量精度:±2.0﹪RH。當(dāng)SHT15測量和通信完成后,會自動使能進(jìn)入睡眠模式。
SHT15與CC2530之間通過串行總線I2C進(jìn)行通信,DATA三態(tài)門用于數(shù)據(jù)的讀取,SCK用于CC2530與SHT15之間的通訊同步。SHT15上電后,經(jīng)過11s時間進(jìn)入休眠狀態(tài),只有當(dāng)CC2530微處理器發(fā)出測試命令后,SHT15才被喚醒進(jìn)行工作。
表1 溫濕度變化數(shù)據(jù)超出精度范圍的最短△TTab.1 Minumum△T of temperature and humidity data beyond precision scope
為了提高終端節(jié)點電池壽命且糧庫溫濕度瞬間很少變化,終端節(jié)點需定時采集數(shù)據(jù)。如果溫濕度變化沒有發(fā)生大的變化時,那么較快的采集數(shù)據(jù)導(dǎo)致電池電量的消耗。另一方面,較短的時間采集可能導(dǎo)致系統(tǒng)檢測不出數(shù)據(jù)的重大變化或者不能有效地控制溫濕度。以糧庫內(nèi)不同位置的五個傳感器節(jié)點為例,持續(xù)24h內(nèi)讀取了五組溫濕度數(shù)據(jù)。合適的采集時間間隔是在最短的時間內(nèi)觀察到溫濕度數(shù)據(jù)變化超出數(shù)字傳感器的精度范圍(±2.0﹪RH和±0.3℃)。表1例舉了5個傳感器溫濕度數(shù)據(jù)超出精度范圍的最短時間。從表中數(shù)據(jù)中可以看出,最短溫度變化是13min,最短濕度變化是2min。根據(jù)尼奎斯特定理準(zhǔn)則和2min的最短時間,在此采集時間間隔是每分鐘一次。也就是終端節(jié)點每隔一分鐘采集數(shù)據(jù)并發(fā)送,大大節(jié)省電池消耗,降低了傳輸數(shù)據(jù)的誤差,增加了系統(tǒng)的穩(wěn)定性和準(zhǔn)確性。
中心節(jié)點(協(xié)調(diào)器)作為無線傳感器網(wǎng)絡(luò)的核心,實現(xiàn)糧庫溫濕度數(shù)據(jù)的收發(fā),并通過RS232串口通信將數(shù)據(jù)發(fā)送到上位機(jī),建立友好的人機(jī)界面,實現(xiàn)整個系統(tǒng)的可控性和可視性。節(jié)點設(shè)計采用模塊化功能設(shè)計,使中心節(jié)點完全可以組成一個可以獨立工作的監(jiān)測系統(tǒng)。中心節(jié)點框圖如圖4所示,CC2530通信模塊作為中心節(jié)點的關(guān)鍵部分,接收和存儲傳感器節(jié)點發(fā)來的數(shù)據(jù),并發(fā)送網(wǎng)絡(luò)指令給傳感器節(jié)點,同時與PC機(jī)進(jìn)行數(shù)據(jù)交換;LED顯示網(wǎng)絡(luò)節(jié)點工作狀態(tài);電源模塊提供工作電壓是3.3V,為了提高電壓芯片內(nèi)部電壓精度,輸入電壓采用調(diào)制后的3.3V穩(wěn)壓電源。
圖4 中心節(jié)點設(shè)計框圖Fig.4 The design diagram of center node
系統(tǒng)的軟件設(shè)計能夠?qū)崿F(xiàn)系統(tǒng)的功能,通過對系統(tǒng)的硬件部分進(jìn)行軟件編程,來實現(xiàn)ZigBee網(wǎng)絡(luò)的建立;溫濕度數(shù)據(jù)的采集;各節(jié)點數(shù)據(jù)的傳輸最后顯示在PC機(jī)上。本系統(tǒng)利用的協(xié)議棧是TI的Z-STACK。ZigBee協(xié)議棧運行在一個OSAL(操作系統(tǒng)抽象層)上,該操作系統(tǒng)是基于任務(wù)調(diào)度機(jī)制,通過對任務(wù)的事件觸發(fā)來完成任務(wù)調(diào)度,各種不同的任務(wù)在不同的層次上運行,通過層的服務(wù)來完成數(shù)據(jù)傳輸?shù)娜蝿?wù)。
圖5 主程序流程圖Fig.5 The main program flowchart
軟件采用模塊化的設(shè)計方法,當(dāng)溫濕度超過糧庫溫濕度設(shè)定的上限值(或低于下限值)則進(jìn)行聲光報警,并及時做出相應(yīng)的處理。主程序流程如圖5所示
終端節(jié)點主要采集溫濕度數(shù)據(jù)并發(fā)送給協(xié)調(diào)器,并接收來自協(xié)調(diào)器的相關(guān)命令。
從節(jié)點上電后,首先硬件初始化和協(xié)議棧初始化,搜索臨近的可用網(wǎng)絡(luò)并申請加入,成功加入后進(jìn)入省電模式。當(dāng)沒有數(shù)據(jù)傳輸請求時,進(jìn)入睡眠模式,之后采取中斷喚醒的工作機(jī)制。當(dāng)有數(shù)據(jù)傳輸請求時,進(jìn)入工作模式,進(jìn)行溫濕度采集并發(fā)送,發(fā)送完成后進(jìn)入下一輪的數(shù)據(jù)采集。終端節(jié)點軟件流程圖如圖6所示。
圖6 終端節(jié)點軟件流程圖Fig.6 Terminal node flowchart
中心節(jié)點負(fù)責(zé)建立一個ZigBee無線網(wǎng)絡(luò),本設(shè)計所組建的是一個星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),與其它終端節(jié)點進(jìn)行數(shù)據(jù)傳輸,在網(wǎng)絡(luò)中起到協(xié)調(diào)器的作用。
圖7 中心節(jié)點軟件流程圖Fig.7 Center node flowchart
主節(jié)點上電后,首先初始化CC2530芯片及ZigBee協(xié)議棧,搜索信道和空閑信道評估,選擇信道并建立ZigBee網(wǎng)絡(luò)。當(dāng)有節(jié)點申請加入網(wǎng)絡(luò)時,準(zhǔn)許加入并分配一個16位的網(wǎng)絡(luò)短地址,等待采集數(shù)據(jù)的命令,然后將接收的所有數(shù)據(jù)包通過串口通信發(fā)送到PC機(jī)上,以便更容易地進(jìn)行數(shù)據(jù)分析和數(shù)據(jù)存儲。中心節(jié)點軟件流程圖如圖7所示。
表2 溫濕度數(shù)據(jù)信息Tab.2 Temperature and humidity data information
本系統(tǒng)采用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),終端節(jié)點每隔1分鐘采集一次數(shù)據(jù)并發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器再通過串口將數(shù)據(jù)發(fā)送到PC機(jī)上,串口設(shè)置為COM1,波特率設(shè)置為19200bps,數(shù)據(jù)為8bits,無奇偶校驗,停止位1bit。啟動串口調(diào)試助手,在實驗室利用空調(diào)升降溫測得溫濕度數(shù)據(jù),與實際溫濕度進(jìn)行比較。
圖8 溫度對比圖Fig.8 Temperature comparsion diagram
圖9 濕度對比圖Fig.9 Humidity comparsion diagram
利用MATLAB對測得的溫濕度與實際的溫濕度數(shù)據(jù)以折線圖的形式比。如圖8和圖9所示
溫濕度對比圖可以看出星型網(wǎng)絡(luò)能夠?qū)崿F(xiàn)數(shù)據(jù)采集和傳輸?shù)墓δ?。測量的結(jié)果準(zhǔn)確性高,從數(shù)據(jù)信息中可看出溫度誤差不超過±0.7℃,濕度誤差不超過±%2RH。
本文通過設(shè)計基于ZigBee技術(shù)的CC2530無線溫濕度檢測系統(tǒng)方案,研究了15個傳感器節(jié)點的溫濕度,實現(xiàn)了糧庫內(nèi)的多點檢測和無線傳輸數(shù)據(jù),利用MATLAB對數(shù)據(jù)進(jìn)行了分析和處理,結(jié)果達(dá)到了預(yù)想的要求。該系統(tǒng)結(jié)構(gòu)簡單,功耗低,檢測效率高,抗干擾性好,且能夠長時間穩(wěn)定工作,具有較高的實用價值和經(jīng)濟(jì)價值。
[1]包長春,李志紅,張立山,等.基于ZigBee技術(shù)的糧庫監(jiān)測系統(tǒng)設(shè)計[J].農(nóng)業(yè)工程學(xué)報,2009,25(9):197-201.
[2]方乒乓,傅洪亮,路良友.糧倉監(jiān)測系統(tǒng)中無線ZigBee的應(yīng)用與實現(xiàn)[J].山東通信技術(shù),2010,30(2):7-10.
[3]李新.基于CC2530的ZigBee網(wǎng)絡(luò)節(jié)點設(shè)計[J].PLC&FA,2011:97-99.
[4]馬巧娟,鄭萍,王曉光,等.基于ZigBee和LABVIEW的多點無線溫濕度采集系統(tǒng)設(shè)計[J].中國儀器儀表,2009,4:49-52.
[5]張盛福,張鵬.提高濕敏電容測量精度的方法[J].儀表技術(shù)與傳感器,2003,8:34-35.
[6]吳斯敏,鄒雪城,余國義.一種嵌入Bicmos帶隙電路的過溫保護(hù)電路[J]. 艦船電子工程,2003,8:151-153.
[7]韓成浩,李柏峰,高曉紅,等.智能小區(qū)溫濕度檢測系統(tǒng)設(shè)計[J].長春理工大學(xué)學(xué)報:自然科學(xué)版,2009,32(3):494-497.