史興燕,李俊霞
(河南農(nóng)業(yè)職業(yè)學(xué)院電子信息工程系,河南 鄭州 451450)
21世紀(jì)飛速發(fā)展的世界經(jīng)濟(jì)和不斷增長人口,使世界各國面臨的糧食危機(jī)越來越嚴(yán)重。2009年的羅馬世界糧食安全峰會聲明:“為了能夠持續(xù)解決世界糧食安全問題,到2050 年,……,需每年增產(chǎn)4400 萬噸糧食。”[1]也就是說,今后每年需要在現(xiàn)有糧食增長規(guī)模的基礎(chǔ)上再增產(chǎn)38%并再持續(xù)發(fā)展40年。要實現(xiàn)這一目標(biāo),就必須不斷改革農(nóng)藝學(xué)、作物育種學(xué)等傳統(tǒng)技術(shù)[2]。
穩(wěn)定可靠的作物生長環(huán)境是世界糧食增產(chǎn)的基本前提。全球CO2濃度的升高、土地沙漠化和鹽堿化面積的增加等生態(tài)問題正日益侵蝕生產(chǎn)農(nóng)田,并進(jìn)一步導(dǎo)致水土流失、生物多樣性破壞、糧食作物減產(chǎn)等負(fù)面效應(yīng)。如何在可用耕地面積不斷減少、作物生態(tài)環(huán)境日益惡化的情況下,更為有效地降低病蟲害發(fā)生率,調(diào)控作物生長影響因素,實現(xiàn)農(nóng)作物尤其是糧食作物的豐產(chǎn)和增產(chǎn),已成為現(xiàn)代農(nóng)業(yè)亟需解決的一個重要科學(xué)問題[1-3]。
為解決上述問題,本文基于精細(xì)農(nóng)業(yè)的思想和Qt應(yīng)用程序框架,設(shè)計實現(xiàn)了一套農(nóng)田信息遠(yuǎn)程數(shù)字化監(jiān)測系統(tǒng),通過采集溫度、濕度等影響田間作物生長的因素和實時圖像信息,為分析制定科學(xué)的作物田間澆灌、施肥、施藥及異常信息預(yù)警管理平臺提供技術(shù)支撐。
精細(xì)農(nóng)業(yè)[1]是基于信息采集和知識處理的現(xiàn)代農(nóng)業(yè)技術(shù),其本質(zhì)是一種以知識為基礎(chǔ)的農(nóng)業(yè)管理信息體系。該過程可以描述為:在動態(tài)、實時獲取農(nóng)田水、肥、溫度、光照、病蟲害等農(nóng)作物信息的基礎(chǔ)上,分析診斷作物長勢與產(chǎn)量之間的時空差異,指導(dǎo)灌溉、施肥、噴藥時機(jī),提高水、肥、殺蟲劑的單位利用效率,降低環(huán)境污染,從而獲得最佳的經(jīng)濟(jì)效益和生態(tài)效益。
從精細(xì)農(nóng)業(yè)技術(shù)的具體實施過程而言,主要包括農(nóng)田信息獲取、信息管理與分析、決策分析和決策的田間實施4個部分[2]。田間信息的獲取則主要有傳統(tǒng)采集法、田間GPS采集法、智能農(nóng)機(jī)作業(yè)法和多平臺遙感法4種方法[3]??梢姡r(nóng)田信息獲取是精細(xì)農(nóng)業(yè)后續(xù)實施步驟的基礎(chǔ)和重要環(huán)節(jié),將對決策系統(tǒng)的總體實施效果起到?jīng)Q定性因素。
今天,計算機(jī)技術(shù)和“3S”(遙感技術(shù)RS、地理信息系統(tǒng)GIS、全球定位系統(tǒng)GPS)技術(shù)的發(fā)展已使農(nóng)田信息監(jiān)測向數(shù)字化、智能化和網(wǎng)絡(luò)化方向邁進(jìn)。在農(nóng)業(yè)成果的推廣實踐過程證明,為了能夠快速、實時地提供后續(xù)數(shù)字化決策依據(jù),成本低、復(fù)用能力強(qiáng)、實時性好的產(chǎn)品具有較好的實際應(yīng)用,這又使監(jiān)測設(shè)備逐步向基于嵌入式和網(wǎng)絡(luò)技術(shù)的遠(yuǎn)程信息系統(tǒng)發(fā)展。
由于農(nóng)業(yè)田間現(xiàn)場的氣候復(fù)雜多變,這就要求監(jiān)測系統(tǒng)必須能夠適應(yīng)應(yīng)用現(xiàn)場的環(huán)境要求。鑒于以微處理器為控制中心的嵌入式控制系統(tǒng)已在工農(nóng)業(yè)自動化、國防、航天等領(lǐng)域取得了廣泛的應(yīng)用,且具有可遠(yuǎn)程實時監(jiān)控、后期維護(hù)成本低、軟硬件擴(kuò)展性良好等優(yōu)點,本文選用基于ARM9芯片的韓國三星S3C2440嵌入式微處理器作為系統(tǒng)的硬件控制核心,選擇Linux操作系統(tǒng)作為嵌入式系統(tǒng)的軟件開發(fā)平臺;然后,通過外圍電路、攝像頭、溫度傳感器等構(gòu)成信息采集硬件平臺,以從總體上實現(xiàn)軟硬件開發(fā)成本和開發(fā)難度的降低。系統(tǒng)的總體技術(shù)架構(gòu)如圖1所示。
圖1 遠(yuǎn)程監(jiān)測系統(tǒng)的總體技術(shù)架構(gòu)圖
監(jiān)測系統(tǒng)選用飛凌公司的OK系列目標(biāo)板作為硬件開發(fā)平臺,以使監(jiān)測系統(tǒng)能夠擁有較好的穩(wěn)定性、兼容性和數(shù)據(jù)處理能力。如圖2a所示,在硬件系統(tǒng)開發(fā)調(diào)試過程中,其嵌入式服務(wù)器平臺主要由嵌入式微處理器S3C2440、存儲器、電源和時鐘模塊、外圍電路及接口、3.5 in(1 in=2.54 cm)液晶顯示屏(帶觸摸功能)、ZC0301攝像頭和DS18B20溫度傳感器等硬件模塊。各硬件的參數(shù)和主要功能如下:
1)基于S3C2440的飛凌OK2440-Ⅲ目標(biāo)開發(fā)板是系統(tǒng)的控制核心和嵌入式硬件開發(fā)平臺。S3C2440的ARM9處理器主頻400 MHz(可倍頻至533 MHz),板載集成網(wǎng)絡(luò)控制接口和DMA網(wǎng)絡(luò)通道,擁有64 Mbyte的ROM和NAND Flash,并提供SD 卡、USB HOST、IDE 硬盤、LCD觸摸屏和攝像頭接口;5 V電源供電系統(tǒng)。
2)攝像頭采用中芯微ZC0301,它擁有301PLUS快速高性能圖像壓縮主控芯片,可輸出高清晰MJPEG視頻圖像數(shù)據(jù),并有圖像數(shù)據(jù)壓縮(壓縮率可達(dá)6∶1)和傳輸功能;工作電壓3.3 V,電流200 mA,功耗較低。
圖2 檢測系統(tǒng)硬件平臺構(gòu)建
3)溫度傳感器采用Dallas公司的單總線數(shù)字式溫度傳感器DS18B20,具有結(jié)構(gòu)簡單、成本低、操作方便等特點。該傳感器可通過一根I/O數(shù)據(jù)線實現(xiàn)供電和數(shù)據(jù)傳輸兩種功能,抗干擾能力強(qiáng);此外,溫度的轉(zhuǎn)換時間可根據(jù)分辨率自動調(diào)節(jié):分辨率為9位時,轉(zhuǎn)換時間為93.75 ms;10位時為187.5 ms;12位時則可達(dá)750 ms。
在圖2b中,給出了農(nóng)田監(jiān)測系統(tǒng)硬件搭接后在實驗室進(jìn)行開發(fā)測試的工作場景。為了能夠提高溫度、濕度和圖像的采集效率,在實驗室內(nèi)組建了一個微型溫室,通過快速更換“室內(nèi)”空氣的溫度和土壤內(nèi)的水份含量,測試各監(jiān)測設(shè)備的靈敏度并校正其偏差度。
監(jiān)測系統(tǒng)的軟件程序是有效控制硬件平臺中各傳感器和集成設(shè)備的關(guān)鍵。因此,軟件開發(fā)應(yīng)包括兩個步驟[4]:1)移植嵌入式系統(tǒng);2)開發(fā)監(jiān)測設(shè)備的控制程序。
2.3.1 建立嵌入式開發(fā)環(huán)境
通過PC主機(jī)(host)為基于Linux OS的目標(biāo)板(target)上開發(fā)農(nóng)田信息監(jiān)測軟件,因host和target的體系結(jié)構(gòu)不同,需要先為其建立交叉編譯環(huán)境。這一過程可以分為兩步:
1)建立交叉編譯工具鏈。首先需要確定target的平臺名稱(這里是arm-linux-gnu),然后構(gòu)建交叉編譯工具鏈的工作環(huán)境及其包含的目錄等,最后通過分步驟的手工編譯或者腳本編譯即可。
2)為host和target之間建立網(wǎng)絡(luò)文件系統(tǒng)(Networking File System,NFS)。這一步驟中包括對target的網(wǎng)卡設(shè)置、啟動NFS服務(wù)等操作,以實現(xiàn)本地文件可通過網(wǎng)絡(luò)進(jìn)行輸出或者由遠(yuǎn)程計算機(jī)通過mount命令進(jìn)行掛載訪問。
這樣即可實現(xiàn)農(nóng)田監(jiān)測系統(tǒng)在host與host、host與target之間的文件資源共享或下載,為后續(xù)的監(jiān)測數(shù)據(jù)接收和發(fā)送提供底層實現(xiàn)接口。
2.3.2 移植BootLoader
BootLoader是嵌入式系統(tǒng)加電運(yùn)行后的第一段代碼,也是系統(tǒng)的引導(dǎo)加載程序,類似于PC機(jī)的BIOS程序[4]。由于BootLoader具有硬件依賴性,導(dǎo)致不同的BootLoader僅適于不同的硬件體系,故在移植BootLoader時需依據(jù)target中的設(shè)備而在操作系統(tǒng)內(nèi)核中進(jìn)行支持配置,如U-Boot,VIVI,ARMboot等??紤]到目標(biāo)板主要基于三星公司的系列芯片,故而BootLoader選用VIVI。
在監(jiān)測系統(tǒng)中移植BootLoader的步驟主要有:首先,對下載的VIVI源碼包進(jìn)行解壓,修改其Makefile文件和分區(qū)信息,實現(xiàn)設(shè)備信息的配置;然后,通過交叉編譯器完成VIVI的編譯并獲得生成的映像文件;最后,通過host上的JTAG接口和sjf2440.exe工具,將生成的映像文件燒寫到target上。
2.3.3 編譯嵌入式系統(tǒng)內(nèi)核
嵌入式系統(tǒng)的性能很大程度取決于內(nèi)核的功能[4]。由于本文所采用的Linux內(nèi)核具有較好的硬件獨(dú)立性,故可方便地對其內(nèi)核進(jìn)行裁剪和配置,主要包括:1)對CPU、U盤驅(qū)動、串口驅(qū)動、MMC/SD卡驅(qū)動、觸摸屏驅(qū)動、USB攝像頭驅(qū)動、網(wǎng)卡驅(qū)動和YAFFS文件系統(tǒng)等選項的修改配置;2)通過#make dep和#make zImage命令開啟內(nèi)核編譯進(jìn)程;3)獲得Linux內(nèi)核的壓縮映像zImage。
2.3.4 Qt的移植
Qt[5]最初是一個跨平臺的圖形用戶接口(GUI)工具包。由于Qt自身良好的跨平臺特性,現(xiàn)已發(fā)展成類庫、開發(fā)工具和集成開發(fā)環(huán)境(IDE)為一體的應(yīng)用框架,可輕松實現(xiàn)應(yīng)用程序在PC、移動平臺和嵌入式設(shè)備上的“一次編寫,隨處編譯”。
Qt for Embedded Linux(前期稱為 Qtopia)[6]是一個基于Linux的全方位應(yīng)用程序開發(fā)平臺,可方便地為嵌入式設(shè)備提供和創(chuàng)建GUI。通過設(shè)置交叉編譯器的編譯選項和Qt的環(huán)境變量后,即可利用make命令完成Qt的交叉編譯,從而實現(xiàn)Qt的移植。
經(jīng)過上述步驟,全部移植工作就結(jié)束了。但對于target而言,還需加載YAFFS類型的嵌入式文件系統(tǒng)以避免內(nèi)核恐慌[7],并由此實現(xiàn)硬盤、U盤的管理和維護(hù)。最后,再次利用sjf2440.exe工具將文件系統(tǒng)寫入目標(biāo)板,并最終完成整個嵌入式系統(tǒng)平臺的構(gòu)建工作。
本文中,農(nóng)田信息的監(jiān)測主要是指溫度、濕度和圖像數(shù)據(jù)的采集。在軟件算法上,為降低冗余噪聲信息所占用的數(shù)據(jù)傳輸帶寬,在所設(shè)計的采集節(jié)點處,由嵌入式服務(wù)器應(yīng)用程序首先會對數(shù)據(jù)信息進(jìn)行濾波處理:以10個采樣時間片段內(nèi)的采樣值為基準(zhǔn),后續(xù)采樣數(shù)據(jù)與其對比,如果超過該基準(zhǔn)值的2倍,則認(rèn)為是無效采樣值而予以舍棄,并同時調(diào)用重新采用命令進(jìn)行二次采樣;否則,則認(rèn)為該采樣值有效,通過網(wǎng)絡(luò)將采樣數(shù)據(jù)傳回監(jiān)控中心服務(wù)器。
嵌入式目標(biāo)板中已有的Qt應(yīng)用程序開發(fā)環(huán)境為快速開發(fā)處理程序提供了極大便利。在利用上述方法構(gòu)建的嵌入式設(shè)備應(yīng)用程序開發(fā)中,可較好地避免編寫大量代碼而僅實現(xiàn)應(yīng)用程序較少功能的局面。在基于Qt的嵌入式開發(fā)環(huán)境下,要快速處理鍵盤、鼠標(biāo)甚至觸摸屏的輸入事件,可直接調(diào)用Qt類QWSKeyboardHandler的函數(shù)processKeyEvent()、pro-cessKeycode()等或?qū)ζ溆枰灾剌d而快速實現(xiàn)自定義設(shè)備的數(shù)據(jù)輸入或者其他擴(kuò)展功能。
在Qt應(yīng)用程序的開發(fā)方面,可直接基于QtCreator集成開發(fā)環(huán)境實現(xiàn)應(yīng)用程序的開發(fā)。其主要流程如圖3所示。這一過程中用到的工具有:跨平臺的Makefile生成器tmake;元對象編譯器moc;將UI文件生成C++代碼的界面編譯器uic;用戶界面設(shè)計師QDesigner;以及Qt for Embedded Linux模塊中的qvfb,qpe等,它們?yōu)榍度胧狡脚_下開發(fā)各類應(yīng)用程序提供了極大的便利,并使host上開發(fā)的代碼可直接在target上編譯運(yùn)行。
圖3 使用QtCreator IDE開發(fā)應(yīng)用程序流程
利用Qt開發(fā)環(huán)境和上述流程,可以方便地開發(fā)出基于Qt的農(nóng)田信息監(jiān)測系統(tǒng)。圖4給出的是集成了Qt和GIS[8]軟件的系統(tǒng)運(yùn)行效果。
圖4 基于Qt的農(nóng)田信息程序運(yùn)行效果(截圖)
基于三星S3C2440微處理器的飛凌公司ARM9目標(biāo)板為農(nóng)田信息監(jiān)測系統(tǒng)的控制平臺,使用嵌入式Linux操作系統(tǒng)和溫度、濕度傳感器及攝像頭,采集處理了田間作物的基本生長信息,通過有線網(wǎng)絡(luò)實現(xiàn)了數(shù)據(jù)信息的實時傳輸,構(gòu)建了一套遠(yuǎn)程數(shù)字化監(jiān)測系統(tǒng)。
在該系統(tǒng)的初始設(shè)計時期引入Qt應(yīng)用程序框架,不僅有利于設(shè)計出簡單易用的人機(jī)交互界面,來滿足當(dāng)今農(nóng)業(yè)工作人員計算機(jī)水平普遍不高的現(xiàn)實需求,還有利于化解嵌入式設(shè)備事件響應(yīng)處理困難的局面,以充分利用Qt類庫來實現(xiàn)監(jiān)測系統(tǒng)的并發(fā)處理功能和后續(xù)擴(kuò)展兼容能力,為精細(xì)農(nóng)業(yè)在田間實施規(guī)范化施肥、用藥和預(yù)警管理提供科學(xué)依據(jù)。
在系統(tǒng)的下一步開發(fā)中,在保證系統(tǒng)通信穩(wěn)定性的基礎(chǔ)上,將通過重用現(xiàn)有ARM9目標(biāo)板的軟硬件模塊并引入GPRS無線模塊來實現(xiàn)遠(yuǎn)程監(jiān)測信息的實時無線傳輸。
[1]于幫偉,鄧華秋.基于Qt/Embedded的嵌入式數(shù)字監(jiān)控系統(tǒng)控制界面的實現(xiàn)[J]. 電視技術(shù),2011,35(24):25-28.
[2]姚建松,劉飛.數(shù)字農(nóng)業(yè)田間信息獲取技術(shù)研究現(xiàn)狀和發(fā)展趨勢[J].農(nóng)機(jī)化研究,2009,8(8):215-220.
[3]樊豐義.基于嵌入式Linux的農(nóng)業(yè)遠(yuǎn)程監(jiān)測系統(tǒng)的研究[D].咸陽:西北農(nóng)林科技大學(xué),2010.
[4]周春喜,唐軍,金心宇.面向目標(biāo)跟蹤的混合WMSN設(shè)計與實現(xiàn)[J].計算機(jī)工程與應(yīng)用,2011,47(2):52-56.
[5]BLANCHETTE J,SUMMERFIELD M.C++GUI Qt4編程[M].2版.閆鋒欣,曾泉人,張志強(qiáng),譯.北京:電子工業(yè)出版社,2008.
[6]于幫偉,鄧華秋.基于Qt/Embedded的嵌入式數(shù)字監(jiān)控系統(tǒng)控制界面的實現(xiàn)[J]. 電視技術(shù),2011,35(24):25-28.
[7]包乃蘭.基于嵌入式PC/104的礦山監(jiān)測系統(tǒng)設(shè)計與開發(fā)[D].天津:河北工業(yè)大學(xué),2004.
[8]姜代紅,戴磊.Dijkstra算法在嵌入式GIS中的改進(jìn)與研究[J].計算機(jī)工程與應(yīng)用,2011,47(31):209-211.