現代農業將電子、計算機、通信和自動化控制等信息技術融合在一起引入到精細農業生產中。定量的獲取和分析農業環境參數,對關鍵性指標進行分析,有利于實現精細的農業生產控制。農業監測目標具有分散性、多樣性、偏僻等特點,利用傳統的人工或者有線的監測方式在人力、系統成本上都是嚴重的負擔[1]。
無線傳感器網絡(Wireless Sensor Networks,WSN)是由部署在監測區域內大量的廉價微型傳感器節點組成,通過無線通信方式形成的一個多跳的自組織的網絡系統,其目的是協作地感知、采集和處理網絡覆蓋區域中感知對象的信息,并發送給觀察者。
無線傳感器網絡的特點非常適合野外環境下的農田環境參數的監測,本文就是針對監測農田區域的土壤溫濕度的需求,設計了一種基于zigbee的農田大氣溫濕度的監測系統。
傳感器網絡的特點之一即以數據為中心構建面向野外環境的無線網絡,獲取特定區域特定時間段的相關數據,并將數據提供給數據需求者,為其提供數據支撐與服務。
本系統總體架構主要由兩部分組成。一是分布在目標監測區的無線傳感器網絡,二是網絡服務中心的服務器與可視化網絡管理軟件,兩者通過GPRS與IP網絡建立連接,實現實時通信。
目標監測區內無線傳感器網絡由多個采集節點組成,它們能自組織形成網絡并完成相關數據采集與處理。采集得到的數據被匯聚至網關節點,并通過GPRS等遠程無線通信方式發送至服務中心。同時,網關能夠接收來自服務中心的命令,并將其轉發至無線傳感器網絡中,進而完成遠程對該網絡的控制與管理。

圖3.1 無線傳感器網絡節點

圖3.2 SHT10傳感器與CC2430之間通信示意圖

圖3.3 測量工作時序圖
服務中心一方面運行網絡數據管理軟件,完成對傳感網數據進行接收、解析與存儲,并能對監測區域的網絡進行相關控制與管理;該部分采用C/S架構,每個監測區域網關節點均為作為一個客戶端。
傳感器網絡節點由傳感單元、數據處理單元、無線通信單元和供電單元等幾部分組成。圖3.1為無線傳感器網絡節點示意圖。
傳感單元負責監測區域內的信息的采集和數據的轉換;數據處理單元負責控制和協調節點各部分的工作,存儲和處理自身采集的數據以及其他節點收發來的數據;無線通信單元負責與其它傳感器節點進行通信,交換控制信息和收發采集數據;供電單元為傳感器節點提供運行所需的能量。處理器模塊和無線通信模塊采用了TI公司的CC2430芯片,傳感器模塊采用了SHT10溫濕度傳感器。
CC2430芯片在單個芯片上整合了ZigBee射頻(RF)前端、內存和微控制器。使用1個8位MCU(8051),具有128KB可編程閃存和8KB的RAM,還包含模擬數字轉換器、定時器、協同處理器、看門狗定時器、32kHz晶振的休眠模式定時器、上電復位電路、掉電檢測電路,以及21個可編程I/O引腳[2]。

圖4.1 協調器、路由器及終端設備工作流程

圖4.2 Z-Stack OSAL任務調度與處理流程圖
大氣溫濕度傳感器采用瑞士Sensirion公司的數字化溫濕度傳感器SHT10。該傳感器由1個電容式聚合體測濕元件和1個能隙式測溫元件組成,并與1個14位A/D轉換器以及1個2-wire數字接口在單芯片中無縫結合。
SHT10傳感器與CC2430之間通過I2C接口進行通信,如圖3.2所示。
測量工作時序圖如圖3.3所示。
3.4.1 啟動傳感器
首先,選擇供電電壓后將傳感器通電,上電速率不能低于1V/ms。通電后傳感器需要11ms進入休眠狀態,在此之前不允許對傳感器發送任何命令。
3.4.2 發送命令
用一組“啟動傳輸”時序,來完成數據傳輸的初始化。它包括:當SCK時鐘高電平時DATA翻轉為低電平,緊接著SCK變為低電平,隨后是在SCK時鐘高電平時DATA翻轉為高電平。后續命令包含三個地址位(目前只支持000”),和五個命令位。SHT1x會以下述方式表示已正確地接收到指令:在第8個SCK時鐘的下降沿之后,將DATA下拉為低電平(ACK位)。在第9個SCK時鐘的下降沿之后,釋放DATA(恢復高電平)。
3.4.3 溫濕度測量
發布一組測量命令后,控制器要等待測量結束。這個過程需要大約20/80/320ms,分別對應8/12/14bit測量。SHT1x通過下拉DATA至低電平并進入空閑模式,表示測量的結束。控制器在再次觸發SCK時鐘前,必須等待這個“數據備妥”信號來讀出數據。檢測數據可以先被存儲,這樣控制器可以繼續執行其它任務在需要時再讀出數據。接著傳輸2個字節的測量數據和1個字節的CRC奇偶校驗(可選擇讀取)。uC需要通過下拉DATA為低電平,以確認每個字節。所有的數據從MSB開始,右值有效。在收到CRC的確認位之后,表明通訊結束。
3.4.4 通訊復位時序
如果與SHT1x通訊中斷,可通過下列信號時序復位:當DATA保持高電平時,觸發SCK時鐘9次或更多,接著發送一個“傳輸啟動”時序。這些時序只復位串口,狀態寄存器內容仍然保留。
ZigBee網絡中,設備分為協調器、路由器和終端設備。協調器主要功能是建立ZigBee網絡,當網絡建立完成后,協調器退化為普通路由器,另外協調器還可以用于配置網絡安全及應用層設備綁定。路由器執行路由功能,主要包括:允許其他設備加入網絡;支持多跳網絡;存儲 子節點處于休眠狀態的消息。終端設備僅需完成對數據采集,可周期休眠與喚醒,以降低系統能耗。三者主要工作流程如圖4.1所示。

圖5.1 Linux套接字通信流程
Z-Stack的核心是任務系統。協議棧為每個模塊定義一個任務,用于處理模塊內部的所有事件。所有任務均在OSAL初始化時被添加到任務列表,不同任務具有不同優先級,高優先級任務會被操作系統優先調度和執行。通過輪轉查詢的調度方式,OSAL完成各模塊定義的所有功能。
在Z-Stack中,任務由函數osalInitTasks初始化,并通過tasksArr指 向任務的處理函數。根據任務優先級,二者需依次添加MAC、NWK、HAL、APS、ZDO和用戶自定義任務App。操作系統任務調度和處理流程如4.2所示。
傳感器的數據采集任務就可以當作應用層任務,我們需要編寫任務初始化函數和任務處理函數,每當采集周期到來時,我們進行一次采集,也就是對SHT10的一次讀寫操作,然后將數據打包發送到協調器,協調器將數據發送給網關,網關通過GPRS將數據發送給遠端的服務器。
傳感器終端節點采用星形網絡拓撲結構,該結構由一個協調器和多個終端傳感節點構成。終端節點只能與協調器直接進行通信,各個終端之間不需直接進行通信。對于終端節點,其流程較簡單,設置好定時器中斷,每隔一定時間讀取傳感器數據,并將其發送至相鄰的協調節點,發送完后便進入待機狀態,直到定時中斷的再次到來[3]。
網關節點是指完成無線傳感器網絡與外部(如因特網中的服務器,便攜設備)數據交互的節點,一方面,能將傳感器網絡匯聚的數據轉發至外部服務器;另一方面,能接收并解析外部數據,將其送至傳感器網絡。網關節點同時歸屬于各異構網絡。
網關由ARM+GPRS模塊+CC2430組成,CC2430作為zigbee網絡的協調器與傳感器節點通信,并收發數據的命令,GPRS模塊作為TCP/IP網絡的接入點,與服務器進行通信[4]。
GPRS設備先與GSM基站通信,接著GPRS分組被基站發送到SGSN,(與電路交換式數據呼叫不同,電路交換式是通過移動交換中心(MSC)連接到語音網絡上)。接著SGSN與GGSN進行通信;GGSN對分組進行響應的處理,再發送到目的網絡。來自Internet,標識有移動臺地址的IP包,由GGSN接受,再轉發到SGSN,繼而傳送到移動臺上。
Socket是一個通用的網絡編程接口,它描述了一個連接的一個端點,提供網絡應用程序中所用到的網絡地址和端口號信息,對所包含的數據量沒有限制。如5.1所示,一個連接的建立開始于TCP客戶機創建一個套接字,然后調用Connect函數啟動TCP協議的三握手操作,并與遠程服務器建立連接。在服務器方面,當套接字建立以后,調用函數bind綁定自己的公認端口號,然后調用函數listen準備接收客戶端請求,最后調用函accept完成接收,這樣一次通信宣告結束如圖5.1所示。
數據服務器主要負責WSN數據的接收、解析、存儲和顯示,同時它也作為WSN的管理和控制者通過發送命令可以對WSN進行配置,例如節點的休眠和喚醒、改變采樣周期等。
本軟件基于QT設計,監聽服務器IP端口的數據,并對接收到的數據作出處理。軟件主要包括實時數據解析與顯示、實時網絡拓撲結構顯示、監測量變化曲線、網絡行為控制以及數據庫等部分。
該部分的功能是以列表的形式將接收到的數據解析并根據相數據類型將傳感信息實時顯示出來。這些信息包括節點硬件ID、節點工作狀態、網絡地址、父設備地址、空氣溫度、空氣濕度等信息。用戶可以選擇某條數據查看詳細信息。
節點發送數據幀中包含設備及其父設備網絡地址,結合ZigBee協議規范中分布式網絡地址分配方式,即可獲取整個網絡的拓撲結構。軟件設計中建立節點拓撲數據庫,將接收數據中的新節點拓撲信息加入其中;另外,設置節點超時時間,即當一定時間內未收到該節點數據時,認為該節點已失效,將其從拓撲數據庫中刪除。因此,拓撲數據庫中會一直保持準實時的網絡拓撲,據此可畫出網絡拓撲架構。
傳感器網絡以數據為中心,該系統構建目的亦是獲取相關傳感數據,為多尺度協同觀測提供數據支撐。因此,數據庫是本軟件核心。軟件使用MySQL數據庫,接收到的數據通過校驗并解析后存儲至其中。
該部分主要功能是通過與現場網關已建立的TCP連接,通過發送相關指令控制傳感器網絡采樣頻率、采樣精度等。目前該部分功能是通過用戶輸入相關控制指令手動發送運行。
本文針對農田大氣溫濕度監測需求,提出了基于無線傳感器網絡的監測方案,給出了傳感器網絡設計、網關節點設計和數據服務器的設計實現,實驗結果表明,本方案能夠滿足長時間、低功耗、高可靠性等觀測需求,在滑坡監測等環境監測領域,有著良好的應用前景。
[1]江朝輝,焦俊,潘煒,李紹穩.基于Zigbee的農業通用無線監測系統設計[J].安徽農業科學,2010,38(6):3149-3151.
[2]尹應鵬,李平舟,郭志華.基于CC2430的Zigbee無線數傳模塊的設計和實現[J].電子元器件應用,2008,10(4):18-21.
[3]劉廣林,汪秉文,唐旋來.基于ZigBee無線傳感器網絡的農業環境監測系統設計[J].計算機與數字工程,2010,38(10):57-60.
[4]鞏浩,屈玉貴.基于短距無線通信與3G的無線集中抄表系統[J].計算機工程,2011(1):290-292.