《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 微波|射頻 > 設(shè)計(jì)應(yīng)用 > 基于無(wú)線傳感網(wǎng)絡(luò)的智能溫室大棚監(jiān)控系統(tǒng)
基于無(wú)線傳感網(wǎng)絡(luò)的智能溫室大棚監(jiān)控系統(tǒng)
來(lái)源:電子技術(shù)應(yīng)用2012年第2期
曹 新, 董 瑋, 譚一酉
大連東軟信息學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系, 遼寧 大連 116023
摘要: 針對(duì)傳統(tǒng)人工采集費(fèi)時(shí)費(fèi)力和有線監(jiān)控布線復(fù)雜、維護(hù)困難的局限性,將傳感器與ZigBee無(wú)線網(wǎng)絡(luò)技術(shù)相結(jié)合,提出了無(wú)線傳感網(wǎng)絡(luò)的智能溫室大棚監(jiān)控系統(tǒng)的設(shè)計(jì)方案。該系統(tǒng)利用ZigBee技術(shù)實(shí)現(xiàn)對(duì)采集數(shù)據(jù)及信息的無(wú)線收發(fā),通過(guò)公共網(wǎng)關(guān)接口CGI將數(shù)據(jù)和控制信息傳送到互聯(lián)網(wǎng)。操作人員可從遠(yuǎn)距離的PC機(jī)上實(shí)時(shí)查看數(shù)據(jù)、實(shí)施控制,從而實(shí)現(xiàn)了真正意義的遠(yuǎn)程監(jiān)控。
中圖分類號(hào): TP274+.5
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)02-0084-04
Intelligent greenhouse control system based on wireless sensor network
Cao Xin, Dong Wei, Tan Yiyou
Computer Science and Technical Department, Dalian Neusoft Institue of Information, Dalian 116023, China
Abstract: In view of the limitations which the traditional manual collection is time-consuming and cable monitoring is complicated arrangement and difficult maintenance, a design scheme of intelligent greenhouse monitoring system based on wireless sensor network is proposed and implemented, which combines sensors and ZigBee wireless network technology. The system uses ZigBee technology to realize the wireless transceiver of collection data and information, transmits the data and control information to the Internet by using the common gateway interface CGI, the operator from the remote PC machine can view real-time data, to implement control, thus to realize a true meaning of the remote monitoring.
Key words : ZigBee; wireless network; sensor; greenhouse control; CGI

    溫室控制技術(shù)隨著溫室農(nóng)業(yè)的發(fā)展應(yīng)運(yùn)而生,傳統(tǒng)的人工檢測(cè)和控制方法費(fèi)時(shí)費(fèi)力,計(jì)算機(jī)的采用代表著它發(fā)展的逐步成熟;有線傳輸面臨著布線復(fù)雜、維護(hù)和更新升級(jí)困難,而無(wú)線傳感網(wǎng)絡(luò)技術(shù)的誕生給它帶來(lái)了一場(chǎng)全新的革命。

    本文提出了一種基于ZigBee無(wú)線網(wǎng)絡(luò)技術(shù)的智能溫室大棚監(jiān)控系統(tǒng)設(shè)計(jì)方案,通過(guò)對(duì)影響植物生長(zhǎng)的光照、濕度、溫度等幾個(gè)重要因素進(jìn)行實(shí)時(shí)的智能化監(jiān)測(cè)和控制,同時(shí)還可以通過(guò)手機(jī)短信通知農(nóng)戶。文中重點(diǎn)介紹了基于ZStack的應(yīng)用程序開發(fā),實(shí)現(xiàn)了對(duì)溫室內(nèi)多種信息的遠(yuǎn)程監(jiān)測(cè)、處理和控制。
1 ZigBee無(wú)線網(wǎng)絡(luò)技術(shù)
    ZigBee是一種新興的短距離、低速率無(wú)線網(wǎng)絡(luò)技術(shù)[1]。它是建立在IEEE 802.15.4[2]標(biāo)準(zhǔn)之上的,IEEE 規(guī)定了ZigBee的物理層和媒體接入控制層,網(wǎng)絡(luò)層、應(yīng)用支持子層和高層應(yīng)用規(guī)范由ZigBee聯(lián)盟制定。ZigBee協(xié)議規(guī)定了三個(gè)可用頻段868 MHz、915 MHz和2.4 GHz,分別提供1個(gè)、10個(gè)和16個(gè)共計(jì)27個(gè)信道。其中2.4 GHz為全球通用頻段,傳輸速率達(dá)250 kb/s[3]。
2 系統(tǒng)總體設(shè)計(jì)
2.1 系統(tǒng)結(jié)構(gòu)

    以自動(dòng)控制原理為理論基礎(chǔ),應(yīng)用傳感器與執(zhí)行器件構(gòu)成閉環(huán)控制系統(tǒng)。傳感器節(jié)點(diǎn)配有傳感器感知植物的生長(zhǎng)環(huán)境,控制節(jié)點(diǎn)配有執(zhí)行器件控制執(zhí)行器件改善植物生長(zhǎng)環(huán)境。傳感器節(jié)點(diǎn)與控制節(jié)點(diǎn)相互配合,共同為植物提供適宜的生長(zhǎng)環(huán)境。
    本系統(tǒng)由無(wú)線傳感器網(wǎng)絡(luò)、網(wǎng)關(guān)和主控中心組成。無(wú)線傳感器網(wǎng)絡(luò)是物聯(lián)網(wǎng)的神經(jīng)末梢,負(fù)責(zé)感知環(huán)境的變化,并將數(shù)據(jù)通過(guò)網(wǎng)關(guān)傳輸?shù)交ヂ?lián)網(wǎng)。系統(tǒng)結(jié)構(gòu)如圖1所示。

 

 

2.2 網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)
    網(wǎng)關(guān)是互聯(lián)網(wǎng)與無(wú)線傳感器網(wǎng)絡(luò)之間的數(shù)據(jù)通信橋梁。本方案提供了三種網(wǎng)關(guān)接入方式:本地訪問(wèn)、手機(jī)訪問(wèn)和互聯(lián)網(wǎng)訪問(wèn)。網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)如圖2所示。
2.3 傳感器網(wǎng)絡(luò)結(jié)構(gòu)
    ZigBee網(wǎng)絡(luò)存在三種邏輯設(shè)備類型,即協(xié)調(diào)器、路由器、終端設(shè)備,并且在一個(gè)ZigBee網(wǎng)絡(luò)中有且只有一個(gè)協(xié)調(diào)器。當(dāng)協(xié)調(diào)器被激活后,它就會(huì)建立一個(gè)自己的網(wǎng)絡(luò)。本方案采用的是星型網(wǎng)絡(luò),在星型網(wǎng)絡(luò)結(jié)構(gòu)中有一個(gè)唯一的PAN主協(xié)調(diào)器,通過(guò)選擇一個(gè)PAN標(biāo)識(shí)符確保網(wǎng)絡(luò)的唯一性。路由或終端都可以加入到這個(gè)網(wǎng)絡(luò)中來(lái)。系統(tǒng)的傳感器網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。

3 硬件設(shè)計(jì)
    本系統(tǒng)硬件主要包括三部分,其中無(wú)線傳感器網(wǎng)絡(luò)核心是基于TI公司的CC2430開發(fā)的無(wú)線模塊;網(wǎng)關(guān)是基于ARM微處理器的嵌入式平臺(tái);主控中心是PC機(jī)。
3.1 ZigBee協(xié)調(diào)器節(jié)點(diǎn)硬件設(shè)計(jì)
 ZigBee協(xié)調(diào)器節(jié)點(diǎn)由無(wú)線收發(fā)器CC2430、射頻天線RF、電源模塊、晶振模塊、串口模塊和LED指示燈組成[4],功能模塊如圖4所示。RF的輸入/輸出是高阻和差動(dòng)的,用于RF口最合適的差動(dòng)負(fù)載是(115+180 Ω)。當(dāng)使用不平衡天線時(shí)為了優(yōu)化性能,應(yīng)當(dāng)使用不平衡變壓器。由于CC2430的工作電壓為3.3 V,所以要用電壓轉(zhuǎn)換模塊把5 V降到3.3 V。CC2430可以同時(shí)接32 MHz和32.768 kHz的兩種頻率的晶振電路,以滿足不同的要求。串口模塊用于ZigBee協(xié)調(diào)器將無(wú)線接收的數(shù)據(jù)信息傳送給網(wǎng)關(guān),同時(shí)接收網(wǎng)關(guān)傳送過(guò)來(lái)的控制命令。LED指示燈用于顯示網(wǎng)絡(luò)連接狀態(tài)。

3.2 傳感器節(jié)點(diǎn)硬件設(shè)計(jì)
    無(wú)線傳感器節(jié)點(diǎn)由各種數(shù)據(jù)采集模塊、CC2430數(shù)據(jù)傳輸模塊、電源模塊和外部數(shù)據(jù)存儲(chǔ)等功能模塊組成,功能模塊如圖5所示。數(shù)據(jù)采集模塊負(fù)責(zé)采集監(jiān)測(cè)區(qū)域的溫度、濕度、光照強(qiáng)度等信息并完成數(shù)據(jù)轉(zhuǎn)換;CC2430數(shù)據(jù)傳輸模塊負(fù)責(zé)與路由節(jié)點(diǎn)進(jìn)行無(wú)線數(shù)據(jù)交換、傳輸采集數(shù)據(jù)、接收控制命令。外部數(shù)據(jù)存儲(chǔ)模塊用來(lái)保存?zhèn)鞲衅鞴?jié)點(diǎn)采集的數(shù)據(jù)。電源管理模塊采用兩節(jié)5號(hào)干電池。LED指示燈顯示加入或退出網(wǎng)絡(luò)的狀態(tài)。

    路由器節(jié)點(diǎn)的主要任務(wù)是將不同區(qū)域的數(shù)據(jù)從傳感器節(jié)點(diǎn)路由到協(xié)調(diào)器節(jié)點(diǎn),因此電路比較簡(jiǎn)單不再贅述。
4 軟件設(shè)計(jì)
    本系統(tǒng)采用的開發(fā)環(huán)境是IAR7,系統(tǒng)軟件是基于TI公司的Z-Stack 2006協(xié)議棧開發(fā)。從系統(tǒng)結(jié)構(gòu)中可以看出本系統(tǒng)軟件設(shè)計(jì)包括三大部分:無(wú)線傳感器網(wǎng)絡(luò)基于Z-Stack的應(yīng)用程序開發(fā);網(wǎng)關(guān)基于Qt的應(yīng)用程序開發(fā);主控中心Web應(yīng)用程序開發(fā)本文著重實(shí)現(xiàn)基于Z-Stack的應(yīng)用程序開發(fā)。
4.1 ZigBee協(xié)議棧
    ZigBee協(xié)議棧由一組子層構(gòu)成,每一層向它的上層提供數(shù)據(jù)和管理服務(wù),分別為物理層(PHY)、媒體訪問(wèn)控制層(MAC)、網(wǎng)絡(luò)層(NWK)和應(yīng)用層(ADL),應(yīng)用層又分為:應(yīng)用支持子層(APS)、ZigBee設(shè)備對(duì)象(ZDO)和由制造商制定的應(yīng)用對(duì)象[2,4-5]。
    實(shí)際開發(fā)中根據(jù)需要將協(xié)議棧的層次又做了細(xì)化。Z-Stack中的硬件抽象層HAL提供各種硬件模塊的驅(qū)動(dòng),基于HAL之上是操作系統(tǒng)抽象層OSAL。OSAL實(shí)現(xiàn)了一個(gè)易用的操作系統(tǒng)平臺(tái),以實(shí)現(xiàn)多任務(wù)為核心的系統(tǒng)資源管理機(jī)制。Z-Stack 采用操作系統(tǒng)的思想來(lái)構(gòu)建,采用事件輪循機(jī)制,當(dāng)各個(gè)層初始化完成后,系統(tǒng)將會(huì)進(jìn)入低功耗模式,當(dāng)有事件發(fā)生時(shí),系統(tǒng)立刻被喚醒,并轉(zhuǎn)而進(jìn)入中斷處理事件,處理完成后再次進(jìn)入低功耗模式,減少功耗。OSAL把優(yōu)先級(jí)放在了最重要的地位。當(dāng)在處理的任務(wù)中有兩個(gè)以上事件待處理,處理完一件后,也要去查詢優(yōu)先級(jí)更高的任務(wù)。賦予優(yōu)先級(jí)高的任務(wù)最大的權(quán)利,盡可能保證高優(yōu)先級(jí)任務(wù)的每一個(gè)事件都能得到最及時(shí)的處理。
4.2 無(wú)線傳感網(wǎng)軟件平臺(tái)搭建
    操作系統(tǒng)是通過(guò)調(diào)度各項(xiàng)任務(wù)來(lái)使整個(gè)系統(tǒng)協(xié)調(diào)運(yùn)作起來(lái)的。對(duì)不同類型設(shè)備的處理作為一個(gè)任務(wù),把新建的任務(wù)添加到系統(tǒng)中,操作系統(tǒng)便會(huì)把新任務(wù)與協(xié)議棧融合到一起,使系統(tǒng)具備新的功能,即完成了無(wú)線傳感器網(wǎng)絡(luò)軟件平臺(tái)的搭建。
    (1) 建立任務(wù):任務(wù)初始化函數(shù)的建立
    任務(wù)初始化函數(shù)要做兩件事,首先是為任務(wù)獲取系統(tǒng)分配的任務(wù)ID,最后是初始化運(yùn)行任務(wù)所需的硬件資源及變量。
    任務(wù)初始化函數(shù)的格式為:
    XXX_Init(unsigned char task_id)
        {
    XXX_TaskID = task_id;
      初始化任務(wù)運(yùn)行所需的硬件資源及變量。
    }
    其中“XXX”表示任務(wù)的名稱。“XXX_TaskID”是用戶自己定義的變量,用于存儲(chǔ)任務(wù)的ID號(hào)。  
    (2) 建立任務(wù):任務(wù)事件處理函數(shù)的建立
     對(duì)模塊的各種外部變化操作系統(tǒng)以事件的方式來(lái)處理,不同的宏定義代表不同事件,比如:KEY_CHANGE為按鍵事件;ZDO_STATE_CHANGE為網(wǎng)絡(luò)狀態(tài)變化事件;AF_INCOMING_MSG_CMD表示接收到其他節(jié)點(diǎn)發(fā)送來(lái)的數(shù)據(jù),該事件為無(wú)線處理的重要事件。
     任務(wù)事件處理函數(shù)原型為:uint16 Sample_ProcessEvent( uint8 task_id, uint16 events );形參task_id 為任務(wù) ID號(hào),events為事件代號(hào)。
    (3) 添加任務(wù)
    所有的任務(wù)添加都是在應(yīng)用層App/OSAL_SampleApp.c中通過(guò)osalTaskAdd()函數(shù)添加一個(gè)OSAL任務(wù),函數(shù)原型為:
     void osalTaskAdd(const pTaskInitFn pfninit,
  const pTaskEventHandlerFn pfnEventProcessor,
  const byte taskPriority)
  參數(shù)1:pfnInit(指向任務(wù)初始化函數(shù)的指針);
  參數(shù)2:pfnEventProcessor(指向任務(wù)事件處理函數(shù)的指針);
  參數(shù)3:taskPriority(任務(wù)優(yōu)先級(jí))。
4.3 ZigBee網(wǎng)絡(luò)通信設(shè)置與組網(wǎng)
4.3.1 網(wǎng)絡(luò)通信設(shè)置

  在Tools/f8wConfig.cfg配置文件中定義了工程相關(guān)的網(wǎng)絡(luò)通信設(shè)置。其中比較重要的是ZigBee通信相關(guān)的信道通道的設(shè)置和PAN ID的設(shè)置。用戶可以通過(guò)更改該文件中的相關(guān)宏定義來(lái)控制 ZigBee網(wǎng)絡(luò)的通道和PAN ID,以此來(lái)解決多個(gè)ZigBee網(wǎng)絡(luò)的沖突問(wèn)題。信道是數(shù)據(jù)在物理層傳輸時(shí)使用的通道;PIN ID為ZigBee網(wǎng)絡(luò)的標(biāo)示符,用來(lái)區(qū)別不同的網(wǎng)絡(luò)。
    除此之外,在啟動(dòng)網(wǎng)絡(luò)前還需要修改模塊的物理地址。在ZigBee網(wǎng)絡(luò)中,無(wú)論是協(xié)調(diào)器還是路由器或終端節(jié)點(diǎn),每個(gè)模塊都有自己唯一的64位物理地址。物理地址的修改有兩種方式,一種是通過(guò)Zmain/Zmain.c中的zmain_ext_addr()函數(shù)設(shè)置;另一種是使用ChipconFlashProgrammer軟件。默認(rèn)地址0xFF FF FF FF FF FF FF FF為無(wú)效的,除此之外都是有效的,且保證在網(wǎng)絡(luò)中的唯一性即可。
4.3.2 網(wǎng)絡(luò)組建
    (1) 協(xié)調(diào)器格式化網(wǎng)絡(luò)
 協(xié)調(diào)器將掃描DEFAULT_CHANLIST指定的通道,最后在其中之一上形成網(wǎng)絡(luò)。如果ZDAPP_CONFIG_PAN_
ID被定義為0xFFFF,則協(xié)調(diào)器將根據(jù)自身的IEEE地址建立一個(gè)隨機(jī)的PAN ID。如果ZDAPP_CONFIG_PAN_ID沒(méi)有被定義為0xFFFF,則協(xié)調(diào)器建立網(wǎng)絡(luò)的PAN ID將由ZDAPP_CONFIG_PAN_ID指定, 通常這個(gè)值介于0~0x3FFF。
    (2) 路由器和終端設(shè)備加入網(wǎng)絡(luò)
    路由器和終端設(shè)備啟動(dòng)后,將掃描DEFAULT_CHANLIST指定的頻道。如果ZDAPP_CONFIG_PAN_ID沒(méi)有被定義為0xFFFF,則路由器或終端將強(qiáng)制加入ZDAPP_CONFIG_PAN_ID定義的網(wǎng)絡(luò)。反之隨機(jī)加入網(wǎng)絡(luò)。
4.4 數(shù)據(jù)傳輸
    本系統(tǒng)中涉及的數(shù)據(jù)傳輸方式有兩種:無(wú)線收發(fā)和串口收發(fā)。其中節(jié)點(diǎn)向協(xié)調(diào)器發(fā)送采集信息、協(xié)調(diào)器向控制節(jié)點(diǎn)發(fā)送控制信息是通過(guò)無(wú)線收發(fā)實(shí)現(xiàn)的;協(xié)調(diào)器將采集信息傳送給網(wǎng)關(guān)、網(wǎng)關(guān)向協(xié)調(diào)器發(fā)送控制命令是通過(guò)串口收發(fā)實(shí)現(xiàn)的。
4.4.1 無(wú)線數(shù)據(jù)收發(fā)
    (1) 無(wú)線發(fā)送
     系統(tǒng)中采用短地址方式發(fā)送數(shù)據(jù),數(shù)據(jù)以幀格式傳輸。在發(fā)送前按照協(xié)議規(guī)定的幀形式構(gòu)建數(shù)據(jù)幀,然后調(diào)用無(wú)線發(fā)送函數(shù)。函數(shù)原型為:uint8 SendData(uint8 *buf, uint16 addr, uint8 Leng);buf為發(fā)送數(shù)據(jù)指針;addr為目的地址;Leng發(fā)送數(shù)據(jù)長(zhǎng)度。
    (2) 無(wú)線接收
     對(duì)于無(wú)線接收并沒(méi)有像發(fā)送一樣單獨(dú)地處理函數(shù),而是在任務(wù)處理函數(shù)中通過(guò)處理無(wú)線接收數(shù)據(jù)事件來(lái)完成處理的,具體函數(shù)如下:
     uint16 SampleApp_ProcessEvent(uint8 task_id, uint16 events)
{
    switch ( MSGpkt->hdr.event )
     {
     case AF_INCOMING_MSG_CMD: SampleApp_Message
        (MSGpkt);
     break;
     }
}
    其中AF_INCOMING_MSG_CMD為無(wú)線接收事件宏定義,SampleApp_MessageMSGCB()函數(shù)為具體接收事件的處理函數(shù)。
4.4.2 串口數(shù)據(jù)收發(fā)
    系統(tǒng)中所用的串口為無(wú)線芯片CC2430自帶資源,通過(guò)自定義串口收發(fā)函數(shù)來(lái)使用該資源,從而實(shí)現(xiàn)網(wǎng)關(guān)與協(xié)調(diào)器節(jié)點(diǎn)數(shù)據(jù)傳輸。
 串口發(fā)送函數(shù)原型為:
 void UartTX_Send_String(char *Data,int len);
 串口接收函數(shù)原型為:
 char UartRX_Receive_Char (void);
   伴隨著物聯(lián)網(wǎng)概念的普及,基于ZigBee的無(wú)線傳感器網(wǎng)絡(luò)技術(shù)得到越來(lái)越廣泛的應(yīng)用。本文將ZigBee網(wǎng)絡(luò)技術(shù)應(yīng)用于溫室監(jiān)控系統(tǒng)中,介紹了系統(tǒng)總體架構(gòu)和無(wú)線傳感器網(wǎng)絡(luò)部分的軟、硬件設(shè)計(jì)及實(shí)現(xiàn)過(guò)程,重點(diǎn)介紹了無(wú)線網(wǎng)絡(luò)的構(gòu)建與數(shù)據(jù)傳輸。與網(wǎng)關(guān)及上層應(yīng)用程序整合后該系統(tǒng)能實(shí)時(shí)、準(zhǔn)確地測(cè)量并顯示溫室內(nèi)各點(diǎn)的數(shù)據(jù)信息,使管理者能夠及時(shí)了解農(nóng)作物的生長(zhǎng)環(huán)境,從而及時(shí)、有效地采取措施,在保證作物健康成長(zhǎng)的前提下提高產(chǎn)量、增加收益。如果更換采集節(jié)點(diǎn)的傳感器,則該監(jiān)控系統(tǒng)可以應(yīng)用于不同的場(chǎng)合具有廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1] 李文仲,段朝玉.ZigBee無(wú)線網(wǎng)絡(luò)技術(shù)入門與實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2007.
[2] IEEE 802.15.4-2003Std: Wireless Medium Access Control (MAC) and Physical Layer(PHY) Specifications for  Low-Rate Wireless Personal Area Networks(LR- WPANs)[2010-08]. http://www.ieee802.org/.
[3] 任秀麗,于海斌. ZigBee無(wú)線通信協(xié)議實(shí)現(xiàn)技術(shù)的研究[J]. 計(jì)算機(jī)工程與應(yīng)用,2007,43(6):143-145.
[4] 蔡文晶, 秦會(huì)斌. 基于ZigBee精簡(jiǎn)協(xié)議的無(wú)線數(shù)據(jù)采集系統(tǒng)[J].機(jī)電工程, 2011,28(2):224-226.
[5] Suggestions for the improvement of the IEEE 802.15.4 standard. [2010-08]. http://www.ieee.org.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。