袁新娣,陳包庚
(贛南師范大學(xué) 物理與電子信息學(xué)院,江西 贛州 341000)
?
·光子學(xué)與光子技術(shù)·
基于ZigBee的土壤溫濕度測(cè)量系統(tǒng)設(shè)計(jì)*
袁新娣,陳包庚
(贛南師范大學(xué) 物理與電子信息學(xué)院,江西 贛州 341000)
為了實(shí)現(xiàn)農(nóng)作物的科學(xué)精準(zhǔn)灌溉,提高農(nóng)業(yè)生產(chǎn)效率,本文以ZigBee技術(shù)為基礎(chǔ),設(shè)計(jì)了一種測(cè)量土壤溫濕度的無線傳感器網(wǎng)絡(luò)系統(tǒng).系統(tǒng)由終端節(jié)點(diǎn)、路由節(jié)點(diǎn)、協(xié)調(diào)器節(jié)點(diǎn)組成,節(jié)點(diǎn)硬件由主控芯片CC2530及土壤溫濕度傳感器SHT10構(gòu)成;軟件以TI公司的協(xié)議棧為基礎(chǔ)開發(fā)而成.分布在監(jiān)測(cè)區(qū)域的終端節(jié)點(diǎn)通過傳感器采集土壤溫濕度信息并無線發(fā)送到協(xié)調(diào)器節(jié)點(diǎn),協(xié)調(diào)器節(jié)點(diǎn)通過串口與PC機(jī)連接,信息最終在PC機(jī)上顯示給用戶.經(jīng)實(shí)驗(yàn)測(cè)試,系統(tǒng)運(yùn)行良好.
無線傳感器網(wǎng)絡(luò);ZigBee節(jié)點(diǎn);協(xié)議棧;土壤溫濕度
隨著我國經(jīng)濟(jì)的迅速發(fā)展和人民生活水平的不斷提高,對(duì)農(nóng)業(yè)生產(chǎn)效率的要求也越來越高.為了獲得高效的農(nóng)業(yè)生產(chǎn)效率,現(xiàn)代信息技術(shù)手段已經(jīng)充分應(yīng)用到農(nóng)業(yè)生產(chǎn)中[1],基于ZigBee(蜂舞技術(shù))的無線傳感器網(wǎng)絡(luò)技術(shù)就是其中的一種.無線傳感器網(wǎng)絡(luò)是由分布在監(jiān)測(cè)區(qū)內(nèi)的大量微型、廉價(jià)的傳感器節(jié)點(diǎn)組成,節(jié)點(diǎn)通過無線通信方式形成一個(gè)多跳、自組織的網(wǎng)絡(luò)系統(tǒng),其目的是協(xié)作地感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中感知對(duì)象的信息,并把信息發(fā)送給觀測(cè)者[2-3].ZigBee技術(shù)是基于IEEE802.15.4協(xié)議的無線通信標(biāo)準(zhǔn),是目前無線傳感器網(wǎng)絡(luò)的主要技術(shù),在短距離無線通信方面具有非常高的性價(jià)比,其主要特點(diǎn)是低功耗、低成本、低復(fù)雜度、高安全性、使用自由無線頻段[4].本文以農(nóng)業(yè)應(yīng)用為背景,以ZigBee技術(shù)為基礎(chǔ),研究一種測(cè)量土壤溫度與濕度的無線傳感器網(wǎng)絡(luò)系統(tǒng),用于指導(dǎo)農(nóng)作物的科學(xué)精準(zhǔn)灌溉.
土壤溫濕度檢測(cè)系統(tǒng)以ZigBee為核心技術(shù),實(shí)現(xiàn)對(duì)監(jiān)測(cè)區(qū)域土壤的溫度與濕度無線測(cè)量功能,系統(tǒng)的結(jié)構(gòu)框圖如圖1所示.
圖1 系統(tǒng)結(jié)構(gòu)圖
該系統(tǒng)由三種節(jié)點(diǎn):終端節(jié)點(diǎn)、路由節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)構(gòu)成,采用樹狀拓?fù)浣Y(jié)構(gòu).協(xié)調(diào)器節(jié)點(diǎn)是無線網(wǎng)絡(luò)的中心,負(fù)責(zé)啟動(dòng)整個(gè)無線網(wǎng)絡(luò),選擇網(wǎng)絡(luò)通信信道和建立一個(gè)網(wǎng)絡(luò)ID(也稱之為PAN ID),當(dāng)網(wǎng)絡(luò)建立后,協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)解析PC機(jī)發(fā)送的指令或無線接收其它節(jié)點(diǎn)發(fā)送的信息,并將接收到的信息通過串口發(fā)送給PC機(jī)顯示.終端節(jié)點(diǎn)分布在監(jiān)測(cè)區(qū),外接土壤溫濕度傳感器,其功能是實(shí)時(shí)采集土壤溫濕度信息并把信息無線發(fā)送到附近的路由或協(xié)調(diào)器節(jié)點(diǎn)上;路由節(jié)點(diǎn)用于在協(xié)調(diào)器節(jié)點(diǎn)與終端傳感器節(jié)點(diǎn)距離比較遠(yuǎn)時(shí)(理論上大于75 m),作為一種中介使協(xié)調(diào)器與終端節(jié)點(diǎn)通信,即實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)功能.
ZigBee節(jié)點(diǎn)是系統(tǒng)的基本組成單元,包括終端節(jié)點(diǎn)、路由節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn),需要完成組網(wǎng),信息采集、處理及無線發(fā)送等功能.系統(tǒng)中各種ZigBee節(jié)點(diǎn)均采用TI公司的CC2530[5-6]作為核心元件構(gòu)成,CC2530是新一代片上系統(tǒng)芯片,支持IEEE 802.15.4標(biāo)準(zhǔn)及應(yīng)用,是理想的ZigBee專業(yè)芯片.CC2530擁有256個(gè)字節(jié)的快閃記憶體,8kB的RAM ,32/64/128/256 KB閃存,結(jié)合了一個(gè)增強(qiáng)型8051微處理器和一個(gè)高性能的無線收發(fā)器(RF),包含一套廣泛的外設(shè)集:2個(gè)USART、12位ADC和21個(gè)通用GPIO.同時(shí),CC2530提供了101dB的鏈路質(zhì)量,精準(zhǔn)的接收器靈敏度和很強(qiáng)的抗干擾性,支持一般的低功耗無線通信.另外,CC2530還可以配備TI的標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議棧Z-Stack來簡(jiǎn)化開發(fā).
為了精確、方便地采集土壤溫濕度信息,在ZigBee終端節(jié)點(diǎn)上需外接傳感器,本系統(tǒng)采用了瑞士進(jìn)口的數(shù)字式溫濕度傳感器SHTl0[7],該傳感器是一款溫濕度復(fù)合傳感器,輸出含有已校準(zhǔn)的數(shù)字信號(hào),應(yīng)用專利的COMS微加工技術(shù),確保了產(chǎn)品具有很高的可靠性和穩(wěn)定性.
圖2 節(jié)點(diǎn)硬件框圖
圖3 ZigBee協(xié)議棧模型
圖4 工程主要流程
該系統(tǒng)的節(jié)點(diǎn)硬件框圖如圖2所示,圖中串口連接PC機(jī)是為了顯示溫濕度數(shù)據(jù)信息及方便系統(tǒng)調(diào)試,SmartRF04EB在線仿真器用于從PC機(jī)下載程序到CC2530芯片上,CC2530的外接天線用于增強(qiáng)信號(hào)發(fā)射功能,只有終端節(jié)點(diǎn)需要接傳感器,而路由節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)不需要.
系統(tǒng)軟件設(shè)計(jì)運(yùn)用了TI公司最新推出的協(xié)議棧版本ZigBee2007-PRO.主要在協(xié)議棧中進(jìn)行了網(wǎng)絡(luò)的配置與應(yīng)用層的開發(fā).
3.1 ZigBee協(xié)議棧簡(jiǎn)介
TI公司在提供ZigBee無線芯片CC2530的同時(shí),也配備了專用網(wǎng)絡(luò)協(xié)議棧Z-Stack[8],協(xié)議棧是指網(wǎng)絡(luò)中各層協(xié)議的總和,形象的反映了一個(gè)網(wǎng)絡(luò)中文件傳輸?shù)倪^程.開發(fā)人員應(yīng)用該協(xié)議棧,可方便地組建自己的無線通信網(wǎng)絡(luò).
ZigBee標(biāo)準(zhǔn)的協(xié)議??蚣芙Y(jié)構(gòu)如圖3所示,其中IEEE802.15.4標(biāo)準(zhǔn)定義了底層即物理層和MAC層(Media Access Control,介質(zhì)訪問控制層).ZigBee聯(lián)盟在此基礎(chǔ)上定義了網(wǎng)絡(luò)層和應(yīng)用層架構(gòu).應(yīng)用層定義了各種類型的應(yīng)用業(yè)務(wù),是協(xié)議棧的最上層用戶.應(yīng)用構(gòu)架子層負(fù)責(zé)把不同的應(yīng)用映射到ZigBee網(wǎng)絡(luò)層上.網(wǎng)絡(luò)層的功能包括拓?fù)涔芾?、MAC管理、路由管理和安全管理.協(xié)議棧使用庫的形式封裝,使得它結(jié)構(gòu)清晰、移植方便、層次分明.
3.2 ZigBee協(xié)議棧配置
本系統(tǒng)軟件設(shè)計(jì)以協(xié)議棧提供的SampleApp.eww工程文件作為模板,在 IAR8.1 環(huán)境中開發(fā)而成.工程主要流程如圖4所示.
硬件初始化由協(xié)議棧自動(dòng)完成.軟件的初始化就是操作系統(tǒng)OSAL(Operating System Abstraction Layer)的初始化,主要包括初始化系統(tǒng)內(nèi)存、消息隊(duì)列、定時(shí)器、任務(wù)等.編程時(shí)主要考慮任務(wù)的初始化,協(xié)議棧里,用戶的應(yīng)用程序以任務(wù)(task)的形式注冊(cè)到操作系統(tǒng)中,每個(gè)任務(wù)需要一個(gè)任務(wù)號(hào)(taskID),一個(gè)任務(wù)對(duì)應(yīng)自己的事件處理函數(shù)(event processor).為了完成對(duì)土壤溫濕度采集并顯示的任務(wù),軟件初始化時(shí)應(yīng)給該任務(wù)分配一個(gè)任務(wù)號(hào),同時(shí)需要建立任務(wù)號(hào)與對(duì)應(yīng)的事件處理函數(shù)的關(guān)聯(lián).其他的軟件初始化也是由協(xié)議棧自動(dòng)完成.
建立網(wǎng)絡(luò)時(shí),對(duì)于協(xié)調(diào)器節(jié)點(diǎn),所執(zhí)行的操作是通過原語發(fā)起一個(gè)新ZigBee網(wǎng)絡(luò),同時(shí)分配一個(gè)通信信道,確定一個(gè)網(wǎng)絡(luò)號(hào)(PAN ID)作為本網(wǎng)絡(luò)的標(biāo)號(hào),然后等待其他節(jié)點(diǎn)加入該網(wǎng)絡(luò).對(duì)于終端節(jié)點(diǎn)和路由節(jié)點(diǎn),建立網(wǎng)絡(luò)時(shí)不斷發(fā)送請(qǐng)求信息,請(qǐng)求與它有相同ID號(hào)的協(xié)調(diào)器將其加入ZigBee網(wǎng)絡(luò).如果通過了請(qǐng)求,該節(jié)點(diǎn)將獲得一個(gè)短地址作為局域網(wǎng)內(nèi)部通信的地址.
當(dāng)順利完成初始化并建立了Zigbe網(wǎng)絡(luò)后,執(zhí)行osal_start_system( )函數(shù)開始運(yùn)行OSAL操作系統(tǒng).操作系統(tǒng)按照優(yōu)先級(jí)檢測(cè)各個(gè)任務(wù)是否就緒,如果有就緒的任務(wù)則調(diào)用函數(shù)tasksArr[]中相對(duì)應(yīng)的事件處理函數(shù)處理該任務(wù),一直到執(zhí)行完所有就緒的任務(wù),當(dāng)任務(wù)列表中沒有就緒的任務(wù),處理器進(jìn)入睡眠狀態(tài)實(shí)現(xiàn)低功耗,當(dāng)再有新任務(wù)出現(xiàn)時(shí)自動(dòng)喚醒處理器去查詢、執(zhí)行任務(wù).如此一直循環(huán)下去,不再返回Main( )函數(shù)[9].
3.3 應(yīng)用層的開發(fā)
協(xié)議棧中APP文件夾屬于協(xié)議棧模型的應(yīng)用層,主要完成用戶任務(wù)程序及接口開發(fā),包括傳感器數(shù)據(jù)讀取、串口數(shù)據(jù)處理、無線收發(fā)數(shù)據(jù)等[10].本系統(tǒng)的任務(wù)是通過連接在終端節(jié)點(diǎn)的SHT10傳感器采集土壤溫濕度信息,無線傳輸?shù)絽f(xié)調(diào)器節(jié)點(diǎn)后通過串口在PC機(jī)上顯示信息.
3.3.1 土壤溫濕度采集程序
數(shù)字式土壤溫濕度傳感器SHT10的采集過程有嚴(yán)格的時(shí)序?qū)?yīng):首先主控制器(該系統(tǒng)中是CC2530)發(fā)送一組“啟動(dòng)傳輸”時(shí)序,初始化STH10 的數(shù)據(jù)傳輸;然后主控制器發(fā)送命令,命令有5種[11]:0x03H表示測(cè)量溫度,0x05H表示測(cè)量相對(duì)濕度,0x07H 表示讀狀態(tài)寄存器,0x06H表示寫狀態(tài)寄存器(狀態(tài)寄存器用來實(shí)現(xiàn)一些高級(jí)功能,如電源管理、加熱等), 0x1EH表示軟件復(fù)位(通信中斷時(shí)使用).命令發(fā)出后主控制器等待測(cè)量完成,測(cè)量過程需要大約20~320 ms不定,確切時(shí)間由STH10內(nèi)部晶振決定,測(cè)量進(jìn)行時(shí)STH10的DATA引腳一直處于高電平,結(jié)束后該引腳出現(xiàn)低電平,數(shù)據(jù)可以先保存在寄存器中,所以在等待期間控制器可以執(zhí)行其它任務(wù),需要時(shí)再從寄存器中讀出數(shù)據(jù);在測(cè)量和通訊結(jié)束后,SHT10自動(dòng)轉(zhuǎn)入休眠模式.
根據(jù)SHT10的時(shí)序,土壤溫濕度采集的流程如圖5所示.SHT10通過DATA數(shù)據(jù)引腳直接輸出數(shù)字量相對(duì)溫濕度值,但由于輸出特性呈一定的非線性,需要在軟件中進(jìn)行線性補(bǔ)償和溫度補(bǔ)償后才能得到比較準(zhǔn)確的相對(duì)濕度值.開發(fā)時(shí),把土壤數(shù)據(jù)采集程序以子程序SHT10.c形式保存到協(xié)議棧的APP文件夾下,供事件處理程序調(diào)用.
圖5 SHT10數(shù)據(jù)采集流程圖
3.3.2 土壤溫濕度傳輸與顯示
按照TI公司提供的協(xié)議棧工程模板SampleApp.eww,信息的傳輸與顯示由應(yīng)用層的sampleApp.c程序完成,該程序主要通過調(diào)用collection_sht10()函數(shù)讀取土壤溫濕度信息,通過調(diào)用AF_DataRequest()完成溫濕度信息在節(jié)點(diǎn)與協(xié)調(diào)器間的無線傳送,調(diào)用串口通信函數(shù)HalUARTWrite()把溫濕度信息傳送到PC機(jī)顯示,主要程序如下:
void SampleApp_SendPointToPointMessage(void)
{
char buf[100];
if(0 == collection_sht10(&temp_val_f, &humi_val_f)) // 通過collection_sht10()讀取溫濕度信息.
{//以下是通過串口在電腦中顯示溫濕度信息
sprintf(buf,"NO1: temp:%5.1fC humi:%5.1f%% ",temp_val_f,humi_val_f);
HalUARTWrite(0,buf, strlen(buf));
}
else
{ HalUARTWrite(0,"error",5); //若采集出錯(cuò)則在電腦上顯示error錯(cuò)誤提示.
HalUARTWrite(0," ",1);
}
//以下是調(diào)用AF_DataRequest 接口函數(shù)進(jìn)行無線發(fā)送信息
if ( AF_DataRequest( &SampleApp_DstAddr,
&SampleApp_epDesc,
SAMPLEAPP_COM_CLUSTERID,
strlen(buf),
buf,
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
圖6 PC機(jī)上顯示的溫濕度信息
}
else
{
// Error occurred in request to send.
}
}
按照上述原理與方法連接好硬件電路,本次試驗(yàn)使用了2個(gè)連接傳感器的終端節(jié)點(diǎn)(標(biāo)號(hào)NO1與NO2),1個(gè)路由器節(jié)點(diǎn),1個(gè)協(xié)調(diào)器節(jié)點(diǎn),在IAR8.1平臺(tái)的workspace上選擇CoordinatorEB-Pro對(duì)協(xié)調(diào)器節(jié)點(diǎn)編程,選擇RouterEB-Pro對(duì)路由節(jié)點(diǎn)編程,選擇EndDeviceEB-Pro對(duì)終端節(jié)點(diǎn)編程,調(diào)試成功后,使用在線仿真器SmartRF04EB下載編譯成功的程序到對(duì)應(yīng)的節(jié)點(diǎn)上,然后通過串口線連接協(xié)調(diào)器與PC機(jī),在PC機(jī)上使用串口調(diào)試軟件觀察協(xié)調(diào)器接收的數(shù)據(jù).串口測(cè)試界面如圖6所示,界面上清楚地顯示了各個(gè)測(cè)試點(diǎn)處的土壤溫濕度.
該系統(tǒng)采用ZigBee技術(shù),實(shí)現(xiàn)了對(duì)監(jiān)測(cè)區(qū)域內(nèi)土壤溫度與濕度的實(shí)時(shí)采集并無線遠(yuǎn)程顯示,給農(nóng)業(yè)技術(shù)人員提供了方便、可靠的灌溉決策信息.系統(tǒng)硬件主要由Z-stack芯片CC2530及土壤溫濕度傳感器SHT10構(gòu)成,軟件由Z-stack協(xié)議棧開發(fā)而成.因?yàn)閆igBee具有功耗低、成本低、安全性高、使用自由免費(fèi)無線電頻段的特點(diǎn),所以該系統(tǒng)在農(nóng)業(yè)生產(chǎn)領(lǐng)域有很好的應(yīng)用前景.
[1] 宋立偉.無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)及在農(nóng)業(yè)中的應(yīng)用[D].大連:大連海事大學(xué),2011:1-3.
[2] 張?jiān)隽?,黨革榮等.基于無線傳感器網(wǎng)絡(luò)的節(jié)水灌溉遠(yuǎn)程監(jiān)控系統(tǒng)[J].節(jié)水灌溉,2012,(3):75-78.
[3] 張艷,張?zhí)K弦.讓無線走得更堅(jiān)強(qiáng)—Dust Networks無線傳感器網(wǎng)絡(luò)技術(shù)初探[J].電腦與電信,2009,(1):9-10.
[4] 孫巍.基于ZIGBEE協(xié)議的無線土壤溫、濕度檢測(cè)系統(tǒng)的研究[D].長(zhǎng)春:吉林農(nóng)業(yè)大學(xué),2012:2-4.
[5] 王風(fēng).基于CC2530的ZigBee無線傳感器網(wǎng)絡(luò)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012:21-23.
[6] 李俊斌,胡永忠.基于CC2530的ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011,19(16 ):108-111.
[7] Texas Instrument Company. Z-Stack Datasheet[Z].Texas Instrument ,2009.
[8] Sensirion Sensor Company . SHT1x ( SHT10,SHT11,SHT15) humidity and temperature sensor datasheet[Z].Sensirion,2007.
[9] 張艷玲.基于ZigBee技術(shù)的智能家居控制網(wǎng)絡(luò)的研究與設(shè)計(jì)[D].沈陽:東北大學(xué),2009:41-60.
[10] 王殊,閻毓杰,等.無線傳感器網(wǎng)絡(luò)的理論及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2007:3-8.
[11] 陸榮鑑,李品,孫周.SHT10傳感器在溫濕度檢測(cè)系統(tǒng)中的應(yīng)用[J].傳感器與微系統(tǒng), 2012,9(31):136-138.
Design of Soil Temperature and Humidity System Based on ZigBee
YUAN Xindi, CHEN Baogeng
(SchoolofPhysicsandElectronicInformation,GannanNormalUniversity,Ganzhou341000,China)
In order to realize precision irrigation to crops, improve the efficiency of agricultural production, a wireless sensor network system based on ZigBee technology for measuring soil temperature and humidity was described in detail in the paper. The system was composed of enddevice nodes, router nodes and coordinator node. All nodes were designed in hardware based on main chip CC2530 and humidity and temperature multi sensor SHT10. The software was designed based on Z-stack of TI company. The information of soil temperature and humidity was collected by ZigBee enddevice nodes which distributed in the monitoring regions, and wirelessly send to coordinator node which connected with PC via serial port. In the end, the information displayed in the PC, the experimental results show that the the system had good effect .
wireless sensor network; ZigBee node; Z-stack; soil temperature and humidity
2016-03-07
10.13698/j.cnki.cn36-1346/c.2016.06.012
江西省科技支撐計(jì)劃資助項(xiàng)目(20132BBF60066)
袁新娣(1974-),女,江西瑞金人,贛南師范大學(xué)物理與電子信息學(xué)院副教授,研究方向:電子信息與數(shù)據(jù)采集.
http://www.cnki.net/kcms/detail/36.1037.C.20161209.1515.026.html
S126;TN919.72
A
1004-8332(2016)06-0053-04