廖建尚
摘 要:通過分析ZigBee協議,利用物聯網架構,完成了基于CC2530和ZigBee的智能農業溫濕度采集系統的硬件和軟件設計,實現了節點數據采集、網絡模塊設計和數據封裝設計,實現了農業大棚的溫度、濕度環境信息的采集,達到了良好效果,從而為實現智能農業溫室大棚的環境信息采集提供了一種科學方法。
關鍵詞:ZigBee;物聯網;智能農業;溫濕度采集
中圖分類號:TP391 文獻標識碼:A 文章編號:2095-1302(2015)08-00-05
0 引 言
我國目前農村務農人數正在不斷減少,原先的個體小規模種植模式也將會向大規模種植管理模式轉變,實現由少數人完成農業生產任務,這種發展趨勢必然要由科學技術來承載。因此提高效率,減少傳統的人員操作是對未來農業發展的要求[1-3]。農業的智能化、自動化也是未來農業的發展方向。我國農業主要呈現以下幾個方面的現狀[4]:
(1)農業的信息化、智能化程度低。我國現在大部分地方依然是靠傳統的人力農業生產,科技在農業方面的應用水平也較低。農業的發展急需科技方面的資金、技術,因此需要科研人員在農業的信息化、智能化方面進行更多的科研投入。
(2)隨著經濟社會的發展,務工人數增多,導致農村務農人數減少,出現土地荒廢的情況,這也決定了今后農業生產活動必將由少數人來完成。
(3)我國是一個農業大國,對農作物產品的需求也是極其龐大的,而受季節影響,農作物的生產只能按季種植。因此,農業大棚的產生與應用,促進了農作物的年產量,減小了季節對作物生長的限制。農業大棚的數量在大規模增加,農業大棚目前信息化、智能化程度低,大部分管理工作仍需人工完成。
本文采用 ZigBee 無線傳輸技術構建無線傳感網絡,研究應用物聯網和云平臺技術實時收集農業大棚的環境信息,如空氣溫度、空氣濕度等,并根據需要進行實時控制,農業環境信息可以幫助專業機構對數據進行分析、整理、融合,并對災害進行預測。利用物聯網技術在農業上的應用,可以促進科學種植,提高產品綜合效益,進一步實現農業生產的自動化和信息化。
1 ZigBee協議
基于IEEE 802.15.4標準的ZigBee技術是一種近距離低復雜度低功耗低速率低成本的雙向無線通訊技術,目前廣泛應用到了物聯網、家庭自動化、家庭安防、工業與環境控制等領域[5]。
ZigBee網絡中存在三種邏輯設備類型:協調器(Coordinator),路由器(Router)和終端設備(End-Device)。一個ZigBee網絡由一個協調器、多個路由器和多個終端設備組成。
1.1 ZigBee協議的實現
1.1.1 協調器(Coordinator)
協調器負責啟動整個網絡,它也是網絡的第一個設備。協調器選擇一個信道和一個網絡ID(PAN ID,即Personal Area Network ID),隨后啟動整個網絡。協調器的角色主要涉及啟動和配置網絡,一旦這些工作都完成后,協調器就類似一個路由器。
1.1.2 路由器(Router)
路由器的功能主要是允許其他終端設備加入網絡,在進行數據收發之前,必須加入一個由協調器啟動的ZigBee網絡,加入網絡后,允許路由和終端節點加入,可以對網絡中的數據進行路由 ,必須常電供電,不能進入睡眠模式,可以為睡眠的終端節點保留數據,至其喚醒后獲取。
1.1.3 終端設備(End-Device)
終端設備用于數據采集或者執行控制任務,在進行數據收發之前,必須加入一個由協調器啟動的ZigBee網絡,不能允許其他設備加入,必須通過其父節點收發數據,不能對網絡中的數據進行路由,可由電池供電,進入睡眠模式。
1.2 ZigBee協議的實現
ZigBee協議有物理層、MAC層、應用層、網絡層組成,如圖2所示,物理層通過物理層數據服務接入點(PD-SAP)提供物理層數據服務;MAC層提供特定服務會聚子層和物理層之間的接口,通過MAC公共部分子層的數據SAP提供MAC數據服務;應用層支持子層提供了網絡層和應用層之間的接口,功能是通過ZDO和定義的應用對象都可以使用的一組服務來實現;網絡層提供的服務包括配置新設備、創建新網絡、設備請求加入/離開網絡和ZigBee協調器或路由器請求設備離開網絡、尋址、近鄰發現、路由發現、接收控制等功能。
1.2.1 Z-Stack
Z-Stack[6,7]是TI公司開發的開源ZigBee協議棧,Stack協議棧中提供了一個名為操作系統抽象層OSAL的協議棧調度程序, Z-Stack協議棧操作的具體實現細節都被封裝在庫代碼中,開發者直接調用API,無需知道協議棧的實現過程。Z-Stack采用分層的軟件結構定義了通信硬件和軟件在每個分層里怎樣協調工作,協議棧的各層相對獨立,每一層都提供相應的服務,設計者只關心與他的工作直接相關的那些層的協議,為設計帶來極大的方便,協議棧的每個工程都包含用戶應用層、硬件抽樣層、物理層、網絡層、操作系統抽樣層和設備對象層等目錄文件。
任務的執行通過系統消息進行調用,在初始化函數osalInitTasks中對任務進行初始化,為每一個任務分配一個ID號,任務保存在tasksArr[]數組,通過循環查詢獲取相應的ID號進入對應的任務處理程序,本課題研究采用的是SampleApp_ProcessEvent這個任務。
1.2.2 Z-Stack協調器、終端和路由器的聯網過程
首先,ZigBee協調器上電以后,周期發送空的數據包,在允許通道內搜索其他ZigBee協調器,并基于每個允許通道中所檢測到的通道能量及網絡號,選擇惟一的16位PAN ID,建立自己的網絡[4]。一旦一個新網絡被建立,ZigBee路由器與終端設備就可以加入到網絡中了。而終端設備上電以后,重復發送信標請求,要求加入到最近的網絡中。當協調器發現終端設備發出的信標請求,則響應一個超幀結構,用于設備間的同步,一旦同步成功,則實現圖5中的關聯過程,由終端設備向協調器發送關聯請求,協調器同意則回應終端設備并自動分配16位的短地址,至此,兩者組網成功[7]。
2 硬件設計
為了使用Z-Stack無線通信協議,本研究的硬件模塊用CC2530實現,TI公司已經在CC2530集成了ZigBee系統,CC2530設備使用8051CPU內核[8]。它有三個不同的存儲器訪問總線(SFR、DATA和CODE/XDATA),以單周期訪問SFR、DATA和主SRAM。它還包括一個調試接口和一個18輸入輸出的擴展中斷單元,CC2530提供了一2.4 GHz的IEEE802.15.4兼容無線收發器。RF內核控制模擬無線模塊。
DHT11數據通信是單總線協議,只要一根數據線就可以完成數據通信,接法簡單,除去兩個電源接口后,將其數據接口接入CC2530的一個GPIO口,本設計將數據接口接入CC2530的P1_0。
3 軟件設計
結合ZigBee的協議,將軟件設計分成節點數據采集模塊、節點監測模塊、協調器網絡通信模塊,數據采集模塊主要完成DHT11的溫濕度采集;節點監測模塊負責將節點數據發送到協調器;協調器的網絡模塊設計負責將收集的數據發送到云終端服務器。
3.1 節點數據采集模塊設計
采集濕度和溫度DHT11與CC2530之間能采用簡單的單總線進行通信[8],僅僅需要一個口數據格式采用單總線格式,即單個數據引腳端口完成輸入輸出雙向傳輸,其數據包由5個字節組成,數據分小數部分和整數部分,一次完整的數據傳輸為40位,具體的數據格式為: 8位濕度整數數據+8位濕度小數數據+8位溫度整數數據+8位溫度小數數據+8位校驗和,校驗和數據等于“8 b濕度整數數據+8 b濕度小數數據+8 b溫度整數數據+8 b溫度小數數據”等于結果的末8位。
根據0時序和1時序圖可知,其區別在于總線拉低50 μs后,自動拉高,這時候延時大約30 μs,判斷是否高電平,如果總線拉低了,則表示為數字0;如果總線還是高電平,則表示數字1。圖4所示識別0和1信號的程序及代碼。
數據由5個字節組成,數據分小數部分和整數部分,根據0和1時序圖,每個字節有8位組成,即每次循環讀取8位,共讀5次,實現流程和代碼如圖5所示。
圖6是CC2530讀取DHT11數據的時序圖。根據圖6,設計的讀取數據流程如下:
(1)拉低總線,通過設計連接的IO口將其拉低;(2)延時18 ms,拉高總線;(3)延時40 us,等待總線拉低,如果總線拉低,說明DHT11有響應信號;(4)將總線拉高,開始輸出數據;(5)讀取濕度整數部分;(6)讀取濕度小數部分;(7)讀取溫度整數部分;(8)讀取溫度小數部分;(9)讀取校驗位;(10)數據讀取后,拉高總線。
DHT11的數據接口設計后,通過調用DHT11_read接口,把溫度和濕度值讀取出來。
3.2 網絡模塊設計
3.2.1 終端監測模塊的網絡模塊設計
ZigBee設備有兩種類型的地址。一種是64位IEEE地址,即MAC地址,稱為長地址,可以利用NLME_GetExtAddr()獲取,或者是直接從地址中讀取;另一種是16位網絡地址,稱為短地址,可以使用NLME_GetShortAddr()獲得。64位地址是全球唯一的地址,由IEEE來維護和分配。16位網絡地址是當設備加入網絡后分配的。它在網絡中是唯一的,用來在網絡中鑒別設備和發送數據。
終端和協調器聯網成功后,每片CC2530擁有唯一的MAC地址,在識別無線網絡中,將MAC地址發送給協調器進行注冊,終端設備主動發送CC2530的MAC地址給協調器進行登記,注冊后就可以進行數據發送和接收,設備終端的實現代碼如下:
3.2.2 協調器的網絡模塊設計
協調器通過識別終端發來的數據包進行分析,首先確認MAC地址,第一次MAC地址保存,以后接收數據,只要是存在的MAC地址,則更新其短地址,更新后就可以接收數據。
3.3 數據封裝設計
數據封裝的目的是為了更好地完成終端和協調器的通信,采用合適的通信協議,可以簡化軟件設。
設計發送數據包為可變長的,0~7位為MAC地址,用來確認是哪個模塊的數據,第8位數值為1是數據采集傳感器采集信息,如溫濕度傳感器,2是控制設備命令,如電機控制命令,第9位存儲溫度值,第10位存儲濕度值,第10位為數據包結束標志。在協調器和節點終端都遵循同樣的通信協議分析與控制。
3.3.1 節點采集數據封裝設計
根據通信協議,將獲取的溫度和濕度相應封裝,通過函數AF_DataRequest(),將數據Send _Data發送給協調器。
3.3.2 協調器接收數據和轉發設計
傳輸部分設計為每一個終端節點配置一個唯一的設備編號并且運用設備編號為每一個終端配置一個唯一的協調器接收上位機的命令,包括兩種格式:一種不帶設備編號參數,即需要所有終端節點響應處理;一種是帶設備編號參數,僅需該設備編號的終端節點響應,協調器收到上位機或者服務器的命令時會做出相應的判斷,在接收數據過程中獲取MY_CLUSTERID,進行查詢。
4 結 語
本文利用物聯網知識,采用一種基于CC2530和DHT11的實現方法,完成了溫濕度數據的采集,應用于智能農業大棚,取得了良好效果,為進一步農業自動化提供了一個科學方法,為解決我國目前農村務農人數減少,實現大規模種植管理模式轉變提供了一種實現方式。
參考文獻
[1]何華斌.福建農業大棚的低成本棚聯網構建方案[J].閩江學院學報,2014(5):81-87.
[2]齊莉.物聯網農業智能測控系統的特點、優勢及其在溫室大棚的應用[J].安徽農業科學,2011,39(30):18989-18992.
[3]張鈺玲.農業大棚智能控制系統設計與研究[J].微計算機信息,2009,25(3):52-53.
[4]張小偉.基于物聯網技術的農業大棚監控系統研究[D].西安:陜西科技大學,2014
[5] A True System-on-Chip Solution for 2.4-GHz IEEE 802.15.4 and ZigBee Applications[EB/OL].http://www.ti.com.cn/cn/lit/ds/symlink/cc2530.pdf
[6] Texas Instruments.Z-Stack developers guide[M].California USA:Texas Instruments,2015
[7]ZigBee Alliance.ZigBee Speciafication[S].USA:ZigBee Alliance,2008.
[8]Texas Instruments.Z-Stack users guide for smart RF05EB and CC2530[M].California USA:Texas Instruments,2011.
[9] DHT11 Humidity & Temperature Sensor [EB/OL].http://www.micro4you.com/files/sensor/DHT11.pdf