關(guān)蓓蓓,田立國,李 猛,劉 剛,武 海,程曉亮,陳高麗
(天津職業(yè)技術(shù)師范大學(xué),天津市信息傳感與智能控制重點(diǎn)實(shí)驗(yàn)室,天津 300222)
精準(zhǔn)農(nóng)業(yè)的基本涵義是根據(jù)作物生長的環(huán)境狀況,調(diào)節(jié)對作物的投入,以最少的投入達(dá)到同等收入或更高的收入,并改善環(huán)境[1]。作物生長環(huán)境是一個復(fù)雜的生態(tài)系統(tǒng),包括溫度、濕度、光照、CO2濃度、風(fēng)速等多種環(huán)境因子,動態(tài)、實(shí)時、精確的作物生長微環(huán)境信息對現(xiàn)代農(nóng)業(yè)特別是精準(zhǔn)農(nóng)業(yè)的發(fā)展越來越重要。
傳統(tǒng)作物生長環(huán)境信息采集工程中,一般都是利用各種測量儀表人工在現(xiàn)場逐項(xiàng)進(jìn)行數(shù)據(jù)采集,所運(yùn)用的采集裝置也是以單片機(jī)為核心的簡易裝置,不僅存儲容量小,而且采集到的數(shù)據(jù)精確度低。本文基于μC/OS-Ⅱ嵌入式系統(tǒng)、多種傳感器、液晶顯示技術(shù)以及大容量信息管理技術(shù)等,設(shè)計(jì)出新型的作物生長環(huán)境信息采集裝置[2]。該裝置能夠獲取基于植物生長柜環(huán)境下影響作物生長的各種環(huán)境參數(shù)以及多種實(shí)時動態(tài)微環(huán)境信息,繼而進(jìn)行相應(yīng)的數(shù)據(jù)處理、存儲、傳輸及顯示,為精準(zhǔn)農(nóng)業(yè)的實(shí)施提供數(shù)據(jù)支持。
在植物生長柜內(nèi),影響作物生長的環(huán)境信息主要包括溫度、濕度、光照、CO2濃度、風(fēng)速等,這些信息對作物的生長起著重要的作用。作物生長環(huán)境信息采集裝置主要完成對作物生長微環(huán)境信息的采集、預(yù)處理采樣以及數(shù)據(jù)傳輸3項(xiàng)基本功能。本文依據(jù)植物生長柜內(nèi)環(huán)境信息獲取過程中高密度、高準(zhǔn)確度、低成本和低功耗等特點(diǎn),設(shè)計(jì)了一套基于μC/OS的作物生長環(huán)境信息采集裝置,該裝置以嵌入式處理器STM32F103VE為核心,配置相應(yīng)的傳感器模塊、數(shù)據(jù)傳輸模塊、液晶顯示模塊以及電源模塊等,既可以單獨(dú)使用進(jìn)行數(shù)據(jù)的采集、處理和顯示,也可以通過3種通信方式與遠(yuǎn)端計(jì)算機(jī)進(jìn)行通訊和傳輸。該裝置的總體框圖如圖1所示。
圖1 作物生長環(huán)境信息采集裝置系統(tǒng)框圖
作物生長環(huán)境信息采集裝置的硬件組成部分主要包括微處理器模塊、傳感器模塊、數(shù)據(jù)傳輸模塊、液晶顯示模塊及電源模塊等,完成作物生長微環(huán)境信息的采集、預(yù)處理以及傳輸。
微處理器采用以Cortex-M3為內(nèi)核的32位處理器STM32F103VE,該處理器是最新一代的嵌入式ARM處理器,具有高性能、低功耗、實(shí)時應(yīng)用、成本低等優(yōu)勢,具有12位的16路A/D采樣通道,最高頻率可達(dá)72 MHz,此外該處理器還具有豐富的通信接口,滿足了整個裝置的功能要求[3]。
該作物生長環(huán)境信息采集裝置主要配置了以下幾種傳感器模塊:
(1)冠層溫度傳感器。選用非接觸式的TNR紅外測溫傳感器TN901,通過測量作物自身輻射發(fā)出的紅外能量準(zhǔn)確地測定作物的冠層溫度。其溫度測量范圍為-33~220℃,精度達(dá)到±2%,輸出數(shù)字信號。
(2)葉層溫濕度傳感器。選用濕溫度一體化數(shù)字傳感器DHT11,該傳感器包括一個NTC測溫元件和一個電阻式測濕元件,通過與處理器簡單的電路連接就能夠?qū)崟r的采集濕度和溫度,DHT11功耗低,5 V電源電壓下,工作平均最大電流0.5 mA。
(3)光照度傳感器。選用數(shù)字式串行輸出型環(huán)境光傳感器BH1710FVC-TR,該傳感器對環(huán)境光線具有較強(qiáng)的靈敏度,內(nèi)含A/D轉(zhuǎn)換器件,數(shù)字式輸出,量程最大可達(dá)65536 Lux,工作電源電壓為2.4~3.6 V。
(4)CO2傳感器模塊。采用BM1000-CO2二氧化碳傳感器。BM1000-CO2是一款室內(nèi)空氣質(zhì)量檢測變送器,專用于測量空氣中的二氧化碳?xì)怏w,具有良好的性價比,采用進(jìn)口先進(jìn)紅外技術(shù)傳感器,工作更加穩(wěn)定可靠。
(5)風(fēng)速傳感器。選用TSI風(fēng)速傳感器,采用熱風(fēng)力測定技術(shù),對低風(fēng)速具有良好的靈敏度,對氣流反映時間僅為0.2 s,量程范圍為0.5~50 m/s,模擬信號輸出。
數(shù)據(jù)傳輸有RS-485串行總線傳輸、ZigBee無線傳輸及SD卡存儲傳輸3種傳輸方式,便于農(nóng)作物生長微環(huán)境信息的數(shù)據(jù)上傳及查詢。
(1)RS-485通信。RS-485協(xié)議采用差分信號進(jìn)行傳輸,最大傳輸距離可以達(dá)到1.2 km,是針對遠(yuǎn)距離、高靈敏度、多點(diǎn)通訊制定的標(biāo)準(zhǔn)。
(2)ZigBee無線通信。ZigBee是一種新興的短距離、低功耗、低數(shù)據(jù)速率、低成本、低復(fù)雜度的無線網(wǎng)絡(luò)技術(shù),其在農(nóng)業(yè)中的應(yīng)用越來越廣泛[4-5]。本裝置采用ZigBee無線通信芯片CC2530,通過串口與處理器STM32F103VE進(jìn)行數(shù)據(jù)傳輸并進(jìn)行無線轉(zhuǎn)發(fā),將數(shù)據(jù)傳送到遠(yuǎn)端的終端計(jì)算機(jī),完成對數(shù)據(jù)的處理,電路原理圖如圖2所示。
(3)SD卡數(shù)據(jù)存儲。SD卡是基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動靈活性以及很好的安全性。本裝置配置SD卡用于定時存儲采集到的數(shù)據(jù),以便當(dāng)通信線路發(fā)生故障時,也能夠進(jìn)行數(shù)據(jù)查詢,SD卡與處理器模塊采用SPI通信方式連接,其電路原理圖如圖3所示。
為方便工作人員現(xiàn)場查看各種測量參數(shù),作物生長環(huán)境信息采集裝置配置了一個4.3寸TFT彩屏模塊,帶有觸摸功能,并利用μC/GUI編寫了相關(guān)的人機(jī)界面,可以實(shí)時查看各種傳感器的工作狀態(tài)及測量參數(shù)的實(shí)時設(shè)定。
傳統(tǒng)的嵌入式系統(tǒng)軟件設(shè)計(jì)中大都采用單任務(wù)、程序順序執(zhí)行的模式,不帶有操作系統(tǒng)。這樣就容易帶來很多問題,如編程復(fù)雜、可維護(hù)性較差等,最為關(guān)鍵的是系統(tǒng)的實(shí)時性得不到保證。μC/OS嵌入式系統(tǒng)與傳統(tǒng)的單片機(jī)的最大區(qū)別就是引入了操作系統(tǒng),通過前期操作系統(tǒng)的移植工作,后期的應(yīng)用程序的開發(fā)可以直接在操作系統(tǒng)上進(jìn)行,而單片機(jī)則所有程序需要重新編寫。另外,在傳統(tǒng)的單片機(jī)開發(fā)中大多是基于中斷的前后臺技術(shù),對多任務(wù)的管理有局限性。μC/OS嵌入式系統(tǒng)通過引入進(jìn)程的管理調(diào)度系統(tǒng),使系統(tǒng)運(yùn)行更加高效。
圖2 ZigBee無線通信模塊電路原理圖
圖3 SD卡數(shù)據(jù)存儲模塊電路原理圖
公開源碼的μC/OS嵌入式多任務(wù)實(shí)時操作系統(tǒng)提高了軟件開發(fā)的效率并使系統(tǒng)的擴(kuò)展性能和移植性得到提高。在此基礎(chǔ)上,通過移植μC/GUI圖形界面系統(tǒng),設(shè)計(jì)友好的人機(jī)界面,方便用戶對數(shù)據(jù)信息的查詢。軟件系統(tǒng)整體結(jié)構(gòu)框圖如圖4所示。
圖4 軟件系統(tǒng)整體結(jié)構(gòu)框圖
μC/OS-Ⅱ是一個嵌入式多任務(wù)實(shí)時操作系統(tǒng),它的主要特點(diǎn)是源代碼公開,并且具有執(zhí)行效率高、占用空間小、實(shí)時性優(yōu)良以及可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)[6]。μC/OS-Ⅱ是一個基于優(yōu)先級的實(shí)時多任務(wù)操作系統(tǒng),最多可以有56個應(yīng)用程序任務(wù),每個任務(wù)的優(yōu)先級不同,對于實(shí)時性和穩(wěn)定性要求較高的數(shù)據(jù)采集系統(tǒng)來說,引入μC/OS-Ⅱ能夠大大改善其性能,極大地方便了系統(tǒng)多功能化設(shè)計(jì)。
基于μC/OS的作物生長環(huán)境信息采集裝置,根據(jù)整個裝置所需要實(shí)現(xiàn)的功能和要求進(jìn)行系統(tǒng)任務(wù)分割,并根據(jù)實(shí)際需要為各個任務(wù)分配優(yōu)先級。系統(tǒng)整體上分為如下幾個任務(wù):主任務(wù)、各通道的數(shù)據(jù)采集任務(wù)、顯示任務(wù)以及包含在數(shù)據(jù)采集任務(wù)中的通信任務(wù)。對于每個任務(wù),編寫相應(yīng)的應(yīng)用開發(fā)程序,最終實(shí)現(xiàn)對影響農(nóng)作物生長的各種環(huán)境參數(shù)以及多種實(shí)時動態(tài)微環(huán)境信息的采集,為精準(zhǔn)農(nóng)業(yè)的實(shí)施提供數(shù)據(jù)支持。
μC/GUI是一種用于嵌入式應(yīng)用的圖形支持軟件,它被設(shè)計(jì)用于為任何使用一個圖形LCD的應(yīng)用提供一個有效的不依賴于處理器和LCD處理器的圖形用戶接口[7]。將μC/GUI圖形界面系統(tǒng)移植到本作物生長環(huán)境信息采集裝置中實(shí)現(xiàn)人機(jī)交互也是與傳統(tǒng)方式運(yùn)用單片機(jī)進(jìn)行信息采集的區(qū)別之一。運(yùn)用單片機(jī)進(jìn)行信息采集,只能進(jìn)行簡單的數(shù)據(jù)顯示,無法實(shí)現(xiàn)人機(jī)交互。而μC/GUI完全是以ANSIC編寫的,可以方便地工作于單任務(wù)和多任務(wù)環(huán)境下,具有非常好的移植特性和可裁減性。針對具體應(yīng)用,只要編寫好LCD的驅(qū)動程序,通過對相應(yīng)配置宏的設(shè)置,就能很輕松地將μC/GUI嵌入到具體的應(yīng)用裝置中。該裝置的人機(jī)交互界面采用層次化的結(jié)構(gòu),根據(jù)各個功能的劃分選擇多級菜單的顯示方式,主要包括開機(jī)界面、“一級界面”和具體的“二級界面”,所設(shè)計(jì)的GUI人機(jī)界面層次結(jié)構(gòu)如圖5所示。
圖5 GUI人機(jī)界面層次結(jié)構(gòu)圖
系統(tǒng)運(yùn)行主程序設(shè)計(jì)流程圖如圖6所示。
用戶應(yīng)用程序是整個軟件系統(tǒng)中的核心部分,負(fù)責(zé)作物生長環(huán)境信息的采集、處理、傳輸以及顯示等功能,通過移植μC/OS操作系統(tǒng)和μC/GUI圖形界面系統(tǒng)來實(shí)現(xiàn)。具體包括系統(tǒng)主程序、傳感器數(shù)據(jù)采集子程序、數(shù)據(jù)傳輸通信子程序和作物生長環(huán)境信息顯示子程序4部分。
圖6 作物生長環(huán)境信息采集主程序設(shè)計(jì)流程圖
系統(tǒng)上電后先執(zhí)行的是主函數(shù)程序,主函數(shù)首先進(jìn)行硬件平臺的初始化,包括I/O口、串口以及各種傳感器。硬件初始化完成后再初始化μC/OS-II與μC/GUI,主要配置一些μC/OS-II和μC/GUI所需參數(shù),初始化完成后就可以創(chuàng)建任務(wù):首先創(chuàng)建主任務(wù),接著由主任務(wù)創(chuàng)建相應(yīng)的子任務(wù),如人機(jī)界面子任務(wù)、數(shù)據(jù)采集子任務(wù)、數(shù)據(jù)傳輸子任務(wù)等。任務(wù)創(chuàng)建完成后啟動任務(wù),到這里主函數(shù)的任務(wù)已經(jīng)完成,最后將控制權(quán)交給操作系統(tǒng),實(shí)現(xiàn)作物生長環(huán)境信息采集裝置的功能要求。
作物生長環(huán)境信息采集裝置配置的傳感器模塊的輸出信號分為數(shù)字和模擬2種。模擬信號為0~5 VDC標(biāo)準(zhǔn)電壓信號(CO2濃度風(fēng)速),可以直接與處理器的模數(shù)轉(zhuǎn)換接口ADC相連,通過相應(yīng)的A/D轉(zhuǎn)換函數(shù)完成信息采集,該裝置的ADC處理任務(wù)函數(shù)如下:
其他輸出數(shù)字信號的傳感器(如溫濕度、溫度、光照等傳感器)由于信號標(biāo)準(zhǔn)不統(tǒng)一,需要按照其相應(yīng)的通信協(xié)議編寫程序,完成數(shù)據(jù)的采集。
在數(shù)據(jù)傳輸?shù)?種方式中,RS—485與ZigBee無線通信都是采取串口與處理器連接,程序中只需完成相應(yīng)的串口配置就能進(jìn)行串口通信,其串口配置函數(shù)如下:
作物生長環(huán)境信息顯示子程序?qū)崟r地在液晶屏上顯示各種作物生長環(huán)境信息。根據(jù)菜單選項(xiàng),可以選擇顯示相應(yīng)的畫面;選擇系統(tǒng)設(shè)置菜單,可以設(shè)置系統(tǒng)工作方式以及通信方式;選擇信息采集菜單,可以設(shè)置相應(yīng)的傳感器參數(shù)、信息采集參數(shù)等;信息顯示區(qū)域提供了冠層溫度、葉層溫濕度、CO2濃度、光照度、風(fēng)速以及時間等信息的實(shí)時顯示;系統(tǒng)說明菜單,提供了簡要的作物生長環(huán)境信息采集裝置說明。
基于μC/OS的作物生長環(huán)境信息采集裝置,將低成本、高效率的智能化設(shè)備應(yīng)用于植物生長柜內(nèi)作物生長環(huán)境信息的采集,集成了多種作物生長環(huán)境信息的采集功能,通過移植μC/GUI圖形界面系統(tǒng),實(shí)現(xiàn)了智能化的人機(jī)交互。不僅為精準(zhǔn)農(nóng)業(yè)的實(shí)施提供了實(shí)時數(shù)據(jù)支持,而且用信息技術(shù)來提升改造傳統(tǒng)農(nóng)業(yè),推動中國傳統(tǒng)農(nóng)業(yè)向精準(zhǔn)農(nóng)業(yè)穩(wěn)步持續(xù)快速地發(fā)展。該裝置充分利用了μC/OS操作系統(tǒng)的可操作性強(qiáng)、經(jīng)濟(jì)效益高、設(shè)備投入和數(shù)據(jù)傳輸成本低、存儲容量大等優(yōu)點(diǎn),但是該裝置只是采集了單一節(jié)點(diǎn)的作物生長環(huán)境信息,沒用形成網(wǎng)絡(luò)覆蓋,這將會成為今后研究過程中的新課題。
[1]劉愛民,封志明,徐麗明.現(xiàn)代精準(zhǔn)農(nóng)業(yè)及我國精準(zhǔn)農(nóng)業(yè)的發(fā)展方向[J].中國農(nóng)業(yè)大學(xué)學(xué)報,2000(2):24-29.
[2]徐寶國,宋愛國.基于UCOS和UCGUI的嵌入式數(shù)字示波器[J].測控技術(shù),2007,26(7):7-8,28.
[3]李寧.基于MDK的STM32處理器應(yīng)用開發(fā)[M].北京:北京航空航天大學(xué)出版社,2008.
[4]劉原,宋良圖.基于ZigBee技術(shù)的農(nóng)業(yè)信息無線數(shù)據(jù)傳輸[J].自動化與儀器儀表,2006,5:21-25.
[5]DING G,SAHINOGLU Z,ORLIK P,et al.Tree based data broadcast in IEEE 802.15.4 and ZigBee Networks[J].IEEE Transactions on Mobile Computing,2006,38 (11):1561-1574.
[6]JEANJLabrosse.嵌入式實(shí)時操作系統(tǒng)μC/OS—Ⅱ[M].2版.邵貝貝,譯.北京:北京航空航天大學(xué)出版社,2003.
[7]μC/GUI Graphical User Interface with Graphic Library Manual Rev.0[M].New York:Micrium Technologies Corporation,2006.