孫書(shū)誠(chéng),郎 朗,蘇長(zhǎng)杰
(安徽工程大學(xué)安徽省電氣傳動(dòng)與控制重點(diǎn)實(shí)驗(yàn)室,安徽蕪湖 241000)
傳統(tǒng)農(nóng)業(yè)設(shè)施環(huán)境監(jiān)測(cè)系統(tǒng)主要采用有線傳感器網(wǎng)絡(luò),它的數(shù)據(jù)傳輸依靠導(dǎo)體介質(zhì),需要鋪設(shè)電纜,由此帶來(lái)布線復(fù)雜、預(yù)設(shè)接口破壞建筑、線路檢測(cè)檢修困難、線路擴(kuò)容困難等一系列和傳輸途徑有關(guān)的弊端,這些問(wèn)題突出表現(xiàn)為有線傳感器網(wǎng)絡(luò)可移動(dòng)性差且日后的維護(hù)保養(yǎng)十分不便。近些年來(lái),隨著移動(dòng)通信技術(shù)的飛速發(fā)展,為建立通暢、可靠的無(wú)線網(wǎng)絡(luò)提供了可能,越來(lái)越多的傳感器網(wǎng)絡(luò)的信息采集和傳輸采用了無(wú)線通信技術(shù)。無(wú)線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)可以有效降低有線方式傳輸信號(hào)對(duì)農(nóng)田環(huán)境的影響,獲取精確的環(huán)境和作物的信息。
在精確獲取環(huán)境和作物信息的同時(shí),往往需要在這些信息上帶有精確的地理坐標(biāo)和時(shí)間標(biāo)簽,這樣采集到的這些信息能更加精確地反映農(nóng)田、作物或畜牧家禽的實(shí)際情況,為作物在農(nóng)田中精準(zhǔn)耕作或畜牧家禽精密喂養(yǎng)提供了數(shù)據(jù)支持。另一方面,多數(shù)的研究成果側(cè)重于傳感器測(cè)得數(shù)據(jù)的遠(yuǎn)程傳輸,無(wú)線傳感器網(wǎng)絡(luò)與Web服務(wù)器的連接或者Web服務(wù)器與互聯(lián)網(wǎng)的連接仍采用有線的連接方式來(lái)實(shí)現(xiàn),其明顯的缺陷是在檢測(cè)區(qū)域比較大、檢測(cè)節(jié)點(diǎn)比較多的情況下,設(shè)備安裝與現(xiàn)場(chǎng)布線顯得繁瑣,可移動(dòng)性較差。
針對(duì)現(xiàn)有系統(tǒng)的不足,為了能獲取無(wú)線傳感器網(wǎng)絡(luò)中更多的信息,同時(shí)為了符合農(nóng)業(yè)監(jiān)測(cè)中地域大、測(cè)點(diǎn)多、時(shí)間久的特點(diǎn),更好地實(shí)現(xiàn)精密農(nóng)業(yè),本文設(shè)計(jì)了一種帶有時(shí)間/地理標(biāo)簽無(wú)線傳感器網(wǎng)絡(luò)的農(nóng)業(yè)環(huán)境遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)系統(tǒng)。
北斗導(dǎo)航定位系統(tǒng)是世界上繼美國(guó)GPS和俄羅斯GLONASS后第3個(gè)投入運(yùn)行的衛(wèi)星導(dǎo)航系統(tǒng),也是世界上第1個(gè)區(qū)域性衛(wèi)星導(dǎo)航系統(tǒng),是可以依賴的衛(wèi)星導(dǎo)航系統(tǒng)[1],對(duì)定位授時(shí)技術(shù)在農(nóng)業(yè)精密耕作中的應(yīng)用至關(guān)重要。ZigBee作為一種新興的無(wú)線通信技術(shù),其低成本、低功耗、自配置和靈活的星型網(wǎng)絡(luò)結(jié)構(gòu)非常適合于無(wú)線傳感器網(wǎng)絡(luò)的組網(wǎng)[2]。在實(shí)際使用無(wú)線傳感器網(wǎng)絡(luò)時(shí),用戶常需要對(duì)相關(guān)節(jié)點(diǎn)數(shù)據(jù)進(jìn)行查詢,即需要將無(wú)線傳感器網(wǎng)絡(luò)的各個(gè)節(jié)點(diǎn)接入外部網(wǎng)絡(luò)。Wireless Fidelity(Wi-Fi)作為一種無(wú)線互聯(lián)網(wǎng)技術(shù),在無(wú)線網(wǎng)絡(luò)信號(hào)覆蓋的有效范圍內(nèi)都可以采用Wi-Fi的方式連入Internet。
基于以上考慮,在本次設(shè)計(jì)中選用“北斗一號(hào)”導(dǎo)航系統(tǒng)為各傳感器節(jié)點(diǎn)提供地理與時(shí)間信息,同時(shí)各傳感器節(jié)點(diǎn)的內(nèi)部組網(wǎng)采用ZigBee無(wú)線通信技術(shù),在此基礎(chǔ)上將無(wú)線傳感器網(wǎng)絡(luò)通過(guò)Wi-Fi技術(shù)接入Internet,實(shí)現(xiàn)傳感器網(wǎng)絡(luò)中數(shù)據(jù)的遠(yuǎn)程傳輸。從邏輯結(jié)構(gòu)上將系統(tǒng)劃分為:安裝在農(nóng)業(yè)環(huán)境現(xiàn)場(chǎng)的無(wú)線傳感器網(wǎng)絡(luò)、基于ARM11的嵌入式無(wú)線網(wǎng)關(guān)和基于Web的數(shù)據(jù)管理與監(jiān)測(cè)部分。系統(tǒng)結(jié)構(gòu)如圖1所示。
無(wú)線傳感器網(wǎng)絡(luò)中的各個(gè)從節(jié)點(diǎn)采用星型連接方式,從節(jié)點(diǎn)用于采集農(nóng)業(yè)環(huán)境現(xiàn)場(chǎng)中的數(shù)據(jù),并通過(guò)北斗衛(wèi)星獲取從節(jié)點(diǎn)處的地理信息(經(jīng)、緯度)和采集現(xiàn)場(chǎng)數(shù)據(jù)的精確時(shí)間,形成帶有時(shí)間/地理標(biāo)簽的數(shù)據(jù)信息,利用ZigBee無(wú)線通信技術(shù)將其發(fā)送到網(wǎng)關(guān)。
基于Web的數(shù)據(jù)管理與監(jiān)測(cè)部分是運(yùn)行在Web服務(wù)器上的一套網(wǎng)絡(luò)應(yīng)用程序。用戶可以通過(guò)任意一種Web瀏覽器對(duì)無(wú)線傳感器網(wǎng)絡(luò)中的任意數(shù)據(jù)進(jìn)行接收和監(jiān)測(cè),極大地方便了用戶的操作,實(shí)現(xiàn)對(duì)無(wú)線傳感器網(wǎng)絡(luò)的遠(yuǎn)程訪問(wèn)。
圖1 帶時(shí)間/地理標(biāo)簽的無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)
網(wǎng)關(guān)硬件電路主要由控制器模塊(S3C6410)、JTAG調(diào)試接口、通信模塊(ZigBee模塊和Wi-Fi模塊)和其他外圍設(shè)備等組成,網(wǎng)關(guān)硬件電路結(jié)構(gòu)框圖如圖2所示。
圖2 網(wǎng)關(guān)硬件電路結(jié)構(gòu)框圖
設(shè)計(jì)的無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)采用以ARM1176ZJF為核心的32位 RISC微處理器S3C6410作為主控制器[3],該處理器集成了LCD控制器、USB Host、NAND控制器、BUS控制器、中斷控制、功率控制、存儲(chǔ)控制、UART、SPI和GPIO等豐富的外圍資源,通過(guò)外擴(kuò)存儲(chǔ)器、串口、USB接口和JTAG調(diào)試接口等構(gòu)成硬件平臺(tái)。在ARM11處理器中移植Web服務(wù)器,負(fù)責(zé)對(duì)整個(gè)無(wú)線傳感器網(wǎng)絡(luò)的管理以及遠(yuǎn)程監(jiān)控。
S3C6410 芯片選用 UART0(TxD0、RxD0、nRTS0、nCTS0引腳)與ZigBee模塊(協(xié)調(diào)器)的串口連接引腳,設(shè)置相應(yīng)波特率后實(shí)現(xiàn)數(shù)據(jù)傳輸。
Wi-Fi模塊采用威盛的VT6656芯片實(shí)現(xiàn)網(wǎng)關(guān)與Internet的連接,S3C6410芯片與Wi-Fi模塊通過(guò)標(biāo)準(zhǔn)的USB2.0接口相連。
網(wǎng)關(guān)軟件主要由底層驅(qū)動(dòng)層、操作系統(tǒng)層、網(wǎng)絡(luò)協(xié)議層與應(yīng)用程序?qū)?部分構(gòu)成。其中:底層驅(qū)動(dòng)層描述網(wǎng)關(guān)節(jié)點(diǎn)中硬件設(shè)備ZigBee模塊和Wi-Fi模塊的驅(qū)動(dòng);操作系統(tǒng)層在控制器S3C6410移植了Linux操作系統(tǒng);網(wǎng)絡(luò)協(xié)議層在移植ZigBee和Wi-Fi協(xié)議棧的基礎(chǔ)上實(shí)現(xiàn)ZigBee和Wi-Fi協(xié)議互相轉(zhuǎn)換工作;應(yīng)用程序?qū)釉贚inux操作系統(tǒng)上開(kāi)發(fā)了可以接收用戶查詢請(qǐng)求的Web服務(wù)器。網(wǎng)關(guān)軟件體系結(jié)構(gòu)如圖3所示。
圖3 網(wǎng)關(guān)軟件體系結(jié)構(gòu)
實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的軟件平臺(tái)首先需要在其控制模塊S3C6410及其擴(kuò)展芯片上移植Linux操作系統(tǒng)。利用操作系統(tǒng)開(kāi)發(fā)可以接收用戶查詢請(qǐng)求的Boa Web Server,服務(wù)器在解析請(qǐng)求后調(diào)用相應(yīng)的CGI程序,再將CGI程序執(zhí)行的結(jié)果發(fā)送給瀏覽器。由于網(wǎng)關(guān)與ZigBee協(xié)調(diào)器的通信采用串口進(jìn)行,需要在Linux操作系統(tǒng)中開(kāi)發(fā)串口驅(qū)動(dòng)[4]。S3C6410相關(guān)的軟件平臺(tái)模塊如圖4所示。
圖4 基于ARM11的軟件平臺(tái)模塊
1)Boa服務(wù)器在基于S3C6410嵌入式Linux平臺(tái)上的配置
Boa是一個(gè)單線程的Web服務(wù)器,依次完成用戶的請(qǐng)求,且源代碼開(kāi)放,可通過(guò)互聯(lián)網(wǎng)免費(fèi)下載,適合應(yīng)用在嵌入式系統(tǒng)中[5]。
Boa Web Server編譯、安裝、配置流程:
①?gòu)膆ttp://www.boa.org官方網(wǎng)站上下載Boa源碼,并進(jìn)行解壓縮:#tar xzf boa-0.94.13.tar.gz,進(jìn)入/src 目錄。
②生成Makefile文件。
③修改Makefile文件,將其修改為CC=armlinux-gcc、CPP=arm-linux-g++ 。
④運(yùn)行make進(jìn)行編譯,即可生成Boa可執(zhí)行文件。
⑤編制配置文件。在Linux操作系統(tǒng)下,應(yīng)用程序的配置都是以配置文件的形式提供的,Boa的配置文件 boa.conf和 mime.types放置在目標(biāo)板/home/httpd/目錄下。
一個(gè)典型的boa.conf文件格式為:
DocumentRoot/home/httpd
ScriptAlias/cgi-bin//home/httpd/cgi-bin/
ScriptAlias/index.html/home/httpd/index.html
它指定了HTML頁(yè)面放到/home/httpd/html目錄下。
⑥編譯燒寫(xiě)內(nèi)核。將重新編譯的內(nèi)核燒寫(xiě)入內(nèi)核,可以通過(guò)Web瀏覽器訪問(wèn)Web服務(wù)器。例如,輸入平臺(tái)的 IP 地址 http://192.168.0.100,即可訪問(wèn)到自己做的網(wǎng)頁(yè)index.html。
2)CGI應(yīng)用程序的實(shí)現(xiàn)
用戶使用Web瀏覽器和Web服務(wù)器進(jìn)行通信,向服務(wù)器端發(fā)出HTTP請(qǐng)求。服務(wù)器響應(yīng)用戶的請(qǐng)求,分析瀏覽器請(qǐng)求的資源,發(fā)現(xiàn)是一個(gè)CG I程序,于是開(kāi)始引導(dǎo)到指定位置的CG I程序。用戶通過(guò)驗(yàn)證程序輸入用戶名和密碼后,確認(rèn)通過(guò),執(zhí)行后續(xù)的CGI應(yīng)用程序;沒(méi)有通過(guò),提示出錯(cuò)頁(yè)面,避免了非法用戶獲取監(jiān)測(cè)數(shù)據(jù)。
通過(guò)驗(yàn)證后,可根據(jù)用戶端發(fā)出的請(qǐng)求,分別查詢和分析數(shù)據(jù)庫(kù)中存儲(chǔ)的無(wú)線傳感器網(wǎng)絡(luò)檢測(cè)到的數(shù)據(jù)。數(shù)據(jù)查詢程序?qū)崿F(xiàn)上傳數(shù)據(jù)流的遠(yuǎn)程瀏覽,提供當(dāng)前數(shù)據(jù)查詢、歷史數(shù)據(jù)查詢。數(shù)據(jù)分析程序?qū)崿F(xiàn)上傳數(shù)據(jù)流的解析,根據(jù)用戶預(yù)先設(shè)定的預(yù)警值與當(dāng)前的查詢數(shù)據(jù)進(jìn)行分析比對(duì),若超出預(yù)警值,可實(shí)現(xiàn)報(bào)警。數(shù)據(jù)查詢和分析的結(jié)果以信息流的方式傳回給Boa服務(wù)器,服務(wù)器將信息流轉(zhuǎn)換傳遞給瀏覽器,作為用戶所需的輸出結(jié)果。
數(shù)據(jù)交換程序提供通過(guò)串行驅(qū)動(dòng)訪問(wèn)串行通信線路的功能,實(shí)現(xiàn)與ZigBee協(xié)調(diào)器的數(shù)據(jù)通信。CGI應(yīng)用程序編寫(xiě)好放到/home/httpd/cgi-bin目錄下供調(diào)用,并在內(nèi)核編譯時(shí)加入,實(shí)現(xiàn)了動(dòng)態(tài)Web技術(shù)。
在實(shí)驗(yàn)室內(nèi)按系統(tǒng)的組成部分進(jìn)行分步驟軟、硬件開(kāi)發(fā)和測(cè)試,并以此為基礎(chǔ)進(jìn)行集成組裝,當(dāng)綜合性能指標(biāo)達(dá)到設(shè)計(jì)要求時(shí),安裝到實(shí)際生產(chǎn)場(chǎng)地進(jìn)行測(cè)試和應(yīng)用。結(jié)果表明,系統(tǒng)總體性能達(dá)到了預(yù)期設(shè)計(jì)目標(biāo),尤其在簡(jiǎn)化設(shè)備安裝布線、提高系統(tǒng)移動(dòng)性和便捷性等方面效果十分顯著。
按照測(cè)試要求,傳感器網(wǎng)絡(luò)中安裝了1個(gè)Zig-Bee協(xié)調(diào)器和2個(gè)完整功能節(jié)點(diǎn),每個(gè)完整功能節(jié)點(diǎn)上攜帶3個(gè)部分功能節(jié)點(diǎn),每個(gè)部分功能節(jié)點(diǎn)安裝的傳感器類型包括空氣溫度、濕度和土壤溫度、濕度。無(wú)線傳感器網(wǎng)絡(luò)組建后,傳感器每隔1 h采集上述4種農(nóng)田環(huán)境參數(shù),傳輸至基于嵌入式的網(wǎng)關(guān),對(duì)數(shù)據(jù)進(jìn)行相應(yīng)處理,并通過(guò)Web瀏覽器及時(shí)顯示各個(gè)節(jié)點(diǎn)的農(nóng)田信息,如圖5、圖6、表1所示。采集到的這些信息能更加精確地反應(yīng)農(nóng)田的實(shí)際情況,為農(nóng)業(yè)的進(jìn)一步精準(zhǔn)耕作提供了數(shù)據(jù)支持。同時(shí),各農(nóng)業(yè)專家也可以通過(guò)瀏覽器登錄監(jiān)測(cè)系統(tǒng),結(jié)合專家的管理經(jīng)驗(yàn)和栽培知識(shí),提供遠(yuǎn)程咨詢和信息服務(wù),使得專家的技術(shù)資源得以更廣泛的應(yīng)用,進(jìn)而提升農(nóng)業(yè)生產(chǎn)水平,促進(jìn)農(nóng)業(yè)的信息化建設(shè)。
圖5 Web瀏覽器登陸界面
圖6 Web瀏覽器實(shí)時(shí)數(shù)據(jù)查詢界面
表1 傳感器節(jié)點(diǎn)采集信息
主要介紹了帶有時(shí)間/地理標(biāo)簽的無(wú)線傳感器網(wǎng)絡(luò)在農(nóng)業(yè)環(huán)境遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)系統(tǒng)中實(shí)現(xiàn)的基本原理、硬件各模塊的設(shè)計(jì)方案、軟件開(kāi)發(fā)的主要流程以及應(yīng)用檢驗(yàn)效果。利用無(wú)線傳感器網(wǎng)絡(luò)分布式的特點(diǎn),大幅度改善了系統(tǒng)可移動(dòng)性和組網(wǎng)靈活性。利用Wi-Fi、ZigBee協(xié)調(diào)器和嵌入式Web服務(wù)器設(shè)計(jì)的網(wǎng)關(guān)實(shí)現(xiàn)了全網(wǎng)無(wú)縫連接,同時(shí)克服了傳統(tǒng)網(wǎng)關(guān)構(gòu)架下ZigBee傳輸速率較低的瓶頸,使得用戶通過(guò)Web瀏覽器實(shí)現(xiàn)對(duì)農(nóng)業(yè)耕作現(xiàn)場(chǎng)環(huán)境數(shù)據(jù)的瀏覽和分析。無(wú)論身在何處,只要通過(guò)計(jì)算機(jī)均可隨時(shí)了解各種環(huán)境因子的空間分布與變化,隨時(shí)監(jiān)測(cè)作物各生長(zhǎng)階段的環(huán)境情況。
[1]陳孟元,陳躍東.基于高精度晶振同步北斗1pps的同步相量測(cè)量裝置時(shí)鐘源研究[J].電力自動(dòng)化設(shè)備,2011,31(9):111 -114.
[2]韓華峰,杜克明,孫忠富,等.基于ZigBee網(wǎng)絡(luò)的溫室環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)與應(yīng)用[J].農(nóng)業(yè)工程學(xué)報(bào),2009,25(7):158-163.
[3]滿莎,楊恢先,彭友,等.基于ARM9的嵌入式無(wú)線智能家居網(wǎng)關(guān)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2010,30(9):2541-2544.
[4]李勇.CGI在嵌入式Web服務(wù)器中的應(yīng)用和實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(10 -3):110 -111,184.
[5]羅淳榕,秦現(xiàn)生,馬新剛.基于CGI的嵌入式遠(yuǎn)程控制系統(tǒng)[J].測(cè)控技術(shù),2006,25(8):50-52.
[6]余成波,張一萌,張進(jìn),等.基于ZigBee的糧庫(kù)環(huán)境監(jiān)測(cè)系統(tǒng)[J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué)版,2010(10):51-55.
[7]楊毅,羅德超.多尺度分析技術(shù)在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位中的應(yīng)用[J].四川兵工學(xué)報(bào),2010(4):93-96.
[8]毛冬冬,王超.無(wú)線傳感器網(wǎng)絡(luò)的目標(biāo)跟蹤算法[J].壓電與聲光,2011(6):993-995.
[9]陶紅艷.無(wú)線傳感器網(wǎng)絡(luò)動(dòng)態(tài)分簇路由BWAS的算法研究[J].壓電與聲光,2011(1):155-160.