孫書誠,郎 朗,蘇長杰
(安徽工程大學安徽省電氣傳動與控制重點實驗室,安徽蕪湖 241000)
傳統(tǒng)農業(yè)設施環(huán)境監(jiān)測系統(tǒng)主要采用有線傳感器網絡,它的數(shù)據(jù)傳輸依靠導體介質,需要鋪設電纜,由此帶來布線復雜、預設接口破壞建筑、線路檢測檢修困難、線路擴容困難等一系列和傳輸途徑有關的弊端,這些問題突出表現(xiàn)為有線傳感器網絡可移動性差且日后的維護保養(yǎng)十分不便。近些年來,隨著移動通信技術的飛速發(fā)展,為建立通暢、可靠的無線網絡提供了可能,越來越多的傳感器網絡的信息采集和傳輸采用了無線通信技術。無線傳感器網絡(wireless sensor network,WSN)可以有效降低有線方式傳輸信號對農田環(huán)境的影響,獲取精確的環(huán)境和作物的信息。
在精確獲取環(huán)境和作物信息的同時,往往需要在這些信息上帶有精確的地理坐標和時間標簽,這樣采集到的這些信息能更加精確地反映農田、作物或畜牧家禽的實際情況,為作物在農田中精準耕作或畜牧家禽精密喂養(yǎng)提供了數(shù)據(jù)支持。另一方面,多數(shù)的研究成果側重于傳感器測得數(shù)據(jù)的遠程傳輸,無線傳感器網絡與Web服務器的連接或者Web服務器與互聯(lián)網的連接仍采用有線的連接方式來實現(xiàn),其明顯的缺陷是在檢測區(qū)域比較大、檢測節(jié)點比較多的情況下,設備安裝與現(xiàn)場布線顯得繁瑣,可移動性較差。
針對現(xiàn)有系統(tǒng)的不足,為了能獲取無線傳感器網絡中更多的信息,同時為了符合農業(yè)監(jiān)測中地域大、測點多、時間久的特點,更好地實現(xiàn)精密農業(yè),本文設計了一種帶有時間/地理標簽無線傳感器網絡的農業(yè)環(huán)境遠程實時監(jiān)測系統(tǒng)。
北斗導航定位系統(tǒng)是世界上繼美國GPS和俄羅斯GLONASS后第3個投入運行的衛(wèi)星導航系統(tǒng),也是世界上第1個區(qū)域性衛(wèi)星導航系統(tǒng),是可以依賴的衛(wèi)星導航系統(tǒng)[1],對定位授時技術在農業(yè)精密耕作中的應用至關重要。ZigBee作為一種新興的無線通信技術,其低成本、低功耗、自配置和靈活的星型網絡結構非常適合于無線傳感器網絡的組網[2]。在實際使用無線傳感器網絡時,用戶常需要對相關節(jié)點數(shù)據(jù)進行查詢,即需要將無線傳感器網絡的各個節(jié)點接入外部網絡。Wireless Fidelity(Wi-Fi)作為一種無線互聯(lián)網技術,在無線網絡信號覆蓋的有效范圍內都可以采用Wi-Fi的方式連入Internet。
基于以上考慮,在本次設計中選用“北斗一號”導航系統(tǒng)為各傳感器節(jié)點提供地理與時間信息,同時各傳感器節(jié)點的內部組網采用ZigBee無線通信技術,在此基礎上將無線傳感器網絡通過Wi-Fi技術接入Internet,實現(xiàn)傳感器網絡中數(shù)據(jù)的遠程傳輸。從邏輯結構上將系統(tǒng)劃分為:安裝在農業(yè)環(huán)境現(xiàn)場的無線傳感器網絡、基于ARM11的嵌入式無線網關和基于Web的數(shù)據(jù)管理與監(jiān)測部分。系統(tǒng)結構如圖1所示。
無線傳感器網絡中的各個從節(jié)點采用星型連接方式,從節(jié)點用于采集農業(yè)環(huán)境現(xiàn)場中的數(shù)據(jù),并通過北斗衛(wèi)星獲取從節(jié)點處的地理信息(經、緯度)和采集現(xiàn)場數(shù)據(jù)的精確時間,形成帶有時間/地理標簽的數(shù)據(jù)信息,利用ZigBee無線通信技術將其發(fā)送到網關。
基于Web的數(shù)據(jù)管理與監(jiān)測部分是運行在Web服務器上的一套網絡應用程序。用戶可以通過任意一種Web瀏覽器對無線傳感器網絡中的任意數(shù)據(jù)進行接收和監(jiān)測,極大地方便了用戶的操作,實現(xiàn)對無線傳感器網絡的遠程訪問。

圖1 帶時間/地理標簽的無線傳感器網絡系統(tǒng)結構
網關硬件電路主要由控制器模塊(S3C6410)、JTAG調試接口、通信模塊(ZigBee模塊和Wi-Fi模塊)和其他外圍設備等組成,網關硬件電路結構框圖如圖2所示。

圖2 網關硬件電路結構框圖
設計的無線傳感器網絡網關采用以ARM1176ZJF為核心的32位 RISC微處理器S3C6410作為主控制器[3],該處理器集成了LCD控制器、USB Host、NAND控制器、BUS控制器、中斷控制、功率控制、存儲控制、UART、SPI和GPIO等豐富的外圍資源,通過外擴存儲器、串口、USB接口和JTAG調試接口等構成硬件平臺。在ARM11處理器中移植Web服務器,負責對整個無線傳感器網絡的管理以及遠程監(jiān)控。
S3C6410 芯片選用 UART0(TxD0、RxD0、nRTS0、nCTS0引腳)與ZigBee模塊(協(xié)調器)的串口連接引腳,設置相應波特率后實現(xiàn)數(shù)據(jù)傳輸。
Wi-Fi模塊采用威盛的VT6656芯片實現(xiàn)網關與Internet的連接,S3C6410芯片與Wi-Fi模塊通過標準的USB2.0接口相連。
網關軟件主要由底層驅動層、操作系統(tǒng)層、網絡協(xié)議層與應用程序層4部分構成。其中:底層驅動層描述網關節(jié)點中硬件設備ZigBee模塊和Wi-Fi模塊的驅動;操作系統(tǒng)層在控制器S3C6410移植了Linux操作系統(tǒng);網絡協(xié)議層在移植ZigBee和Wi-Fi協(xié)議棧的基礎上實現(xiàn)ZigBee和Wi-Fi協(xié)議互相轉換工作;應用程序層在Linux操作系統(tǒng)上開發(fā)了可以接收用戶查詢請求的Web服務器。網關軟件體系結構如圖3所示。

圖3 網關軟件體系結構
實現(xiàn)無線傳感器網絡網關的軟件平臺首先需要在其控制模塊S3C6410及其擴展芯片上移植Linux操作系統(tǒng)。利用操作系統(tǒng)開發(fā)可以接收用戶查詢請求的Boa Web Server,服務器在解析請求后調用相應的CGI程序,再將CGI程序執(zhí)行的結果發(fā)送給瀏覽器。由于網關與ZigBee協(xié)調器的通信采用串口進行,需要在Linux操作系統(tǒng)中開發(fā)串口驅動[4]。S3C6410相關的軟件平臺模塊如圖4所示。

圖4 基于ARM11的軟件平臺模塊
1)Boa服務器在基于S3C6410嵌入式Linux平臺上的配置
Boa是一個單線程的Web服務器,依次完成用戶的請求,且源代碼開放,可通過互聯(lián)網免費下載,適合應用在嵌入式系統(tǒng)中[5]。
Boa Web Server編譯、安裝、配置流程:
①從http://www.boa.org官方網站上下載Boa源碼,并進行解壓縮:#tar xzf boa-0.94.13.tar.gz,進入/src 目錄。
②生成Makefile文件。
③修改Makefile文件,將其修改為CC=armlinux-gcc、CPP=arm-linux-g++ 。
④運行make進行編譯,即可生成Boa可執(zhí)行文件。
⑤編制配置文件。在Linux操作系統(tǒng)下,應用程序的配置都是以配置文件的形式提供的,Boa的配置文件 boa.conf和 mime.types放置在目標板/home/httpd/目錄下。
一個典型的boa.conf文件格式為:
DocumentRoot/home/httpd
ScriptAlias/cgi-bin//home/httpd/cgi-bin/
ScriptAlias/index.html/home/httpd/index.html
它指定了HTML頁面放到/home/httpd/html目錄下。
⑥編譯燒寫內核。將重新編譯的內核燒寫入內核,可以通過Web瀏覽器訪問Web服務器。例如,輸入平臺的 IP 地址 http://192.168.0.100,即可訪問到自己做的網頁index.html。
2)CGI應用程序的實現(xiàn)
用戶使用Web瀏覽器和Web服務器進行通信,向服務器端發(fā)出HTTP請求。服務器響應用戶的請求,分析瀏覽器請求的資源,發(fā)現(xiàn)是一個CG I程序,于是開始引導到指定位置的CG I程序。用戶通過驗證程序輸入用戶名和密碼后,確認通過,執(zhí)行后續(xù)的CGI應用程序;沒有通過,提示出錯頁面,避免了非法用戶獲取監(jiān)測數(shù)據(jù)。
通過驗證后,可根據(jù)用戶端發(fā)出的請求,分別查詢和分析數(shù)據(jù)庫中存儲的無線傳感器網絡檢測到的數(shù)據(jù)。數(shù)據(jù)查詢程序實現(xiàn)上傳數(shù)據(jù)流的遠程瀏覽,提供當前數(shù)據(jù)查詢、歷史數(shù)據(jù)查詢。數(shù)據(jù)分析程序實現(xiàn)上傳數(shù)據(jù)流的解析,根據(jù)用戶預先設定的預警值與當前的查詢數(shù)據(jù)進行分析比對,若超出預警值,可實現(xiàn)報警。數(shù)據(jù)查詢和分析的結果以信息流的方式傳回給Boa服務器,服務器將信息流轉換傳遞給瀏覽器,作為用戶所需的輸出結果。
數(shù)據(jù)交換程序提供通過串行驅動訪問串行通信線路的功能,實現(xiàn)與ZigBee協(xié)調器的數(shù)據(jù)通信。CGI應用程序編寫好放到/home/httpd/cgi-bin目錄下供調用,并在內核編譯時加入,實現(xiàn)了動態(tài)Web技術。
在實驗室內按系統(tǒng)的組成部分進行分步驟軟、硬件開發(fā)和測試,并以此為基礎進行集成組裝,當綜合性能指標達到設計要求時,安裝到實際生產場地進行測試和應用。結果表明,系統(tǒng)總體性能達到了預期設計目標,尤其在簡化設備安裝布線、提高系統(tǒng)移動性和便捷性等方面效果十分顯著。
按照測試要求,傳感器網絡中安裝了1個Zig-Bee協(xié)調器和2個完整功能節(jié)點,每個完整功能節(jié)點上攜帶3個部分功能節(jié)點,每個部分功能節(jié)點安裝的傳感器類型包括空氣溫度、濕度和土壤溫度、濕度。無線傳感器網絡組建后,傳感器每隔1 h采集上述4種農田環(huán)境參數(shù),傳輸至基于嵌入式的網關,對數(shù)據(jù)進行相應處理,并通過Web瀏覽器及時顯示各個節(jié)點的農田信息,如圖5、圖6、表1所示。采集到的這些信息能更加精確地反應農田的實際情況,為農業(yè)的進一步精準耕作提供了數(shù)據(jù)支持。同時,各農業(yè)專家也可以通過瀏覽器登錄監(jiān)測系統(tǒng),結合專家的管理經驗和栽培知識,提供遠程咨詢和信息服務,使得專家的技術資源得以更廣泛的應用,進而提升農業(yè)生產水平,促進農業(yè)的信息化建設。

圖5 Web瀏覽器登陸界面

圖6 Web瀏覽器實時數(shù)據(jù)查詢界面

表1 傳感器節(jié)點采集信息
主要介紹了帶有時間/地理標簽的無線傳感器網絡在農業(yè)環(huán)境遠程實時監(jiān)測系統(tǒng)中實現(xiàn)的基本原理、硬件各模塊的設計方案、軟件開發(fā)的主要流程以及應用檢驗效果。利用無線傳感器網絡分布式的特點,大幅度改善了系統(tǒng)可移動性和組網靈活性。利用Wi-Fi、ZigBee協(xié)調器和嵌入式Web服務器設計的網關實現(xiàn)了全網無縫連接,同時克服了傳統(tǒng)網關構架下ZigBee傳輸速率較低的瓶頸,使得用戶通過Web瀏覽器實現(xiàn)對農業(yè)耕作現(xiàn)場環(huán)境數(shù)據(jù)的瀏覽和分析。無論身在何處,只要通過計算機均可隨時了解各種環(huán)境因子的空間分布與變化,隨時監(jiān)測作物各生長階段的環(huán)境情況。
[1]陳孟元,陳躍東.基于高精度晶振同步北斗1pps的同步相量測量裝置時鐘源研究[J].電力自動化設備,2011,31(9):111 -114.
[2]韓華峰,杜克明,孫忠富,等.基于ZigBee網絡的溫室環(huán)境遠程監(jiān)控系統(tǒng)設計與應用[J].農業(yè)工程學報,2009,25(7):158-163.
[3]滿莎,楊恢先,彭友,等.基于ARM9的嵌入式無線智能家居網關設計[J].計算機應用,2010,30(9):2541-2544.
[4]李勇.CGI在嵌入式Web服務器中的應用和實現(xiàn)[J].微計算機信息,2008,24(10 -3):110 -111,184.
[5]羅淳榕,秦現(xiàn)生,馬新剛.基于CGI的嵌入式遠程控制系統(tǒng)[J].測控技術,2006,25(8):50-52.
[6]余成波,張一萌,張進,等.基于ZigBee的糧庫環(huán)境監(jiān)測系統(tǒng)[J].重慶理工大學學報:自然科學版,2010(10):51-55.
[7]楊毅,羅德超.多尺度分析技術在無線傳感器網絡節(jié)點定位中的應用[J].四川兵工學報,2010(4):93-96.
[8]毛冬冬,王超.無線傳感器網絡的目標跟蹤算法[J].壓電與聲光,2011(6):993-995.
[9]陶紅艷.無線傳感器網絡動態(tài)分簇路由BWAS的算法研究[J].壓電與聲光,2011(1):155-160.