趙 勇,劉 偉
(渭南師范學院物理與電氣工程學院,陜西渭南714000)
隨著農業現代化技術的發展和果蔬大棚的大批量種植,開發一種針對果蔬大棚的智能化監測系統,以提高果蔬產量和質量是農業發展的必然趨勢.本設計以渭北溫室大棚大面積種植特點,采用Cortex M3微處理器來監測大棚溫度、濕度及CO2濃度等參數,并及時將所監測的數據信息傳送到計算機終端.該設計具有操作便捷、能連續測定、實時等優點,方便可靠.[1]同時,該系統還可實現棚內自動通風、自動噴淋灌溉、自動光照調節等智能控制或報警功能.
系統以ST公司的微處理器STM32F103為控制核心,實時采集大棚內的溫、濕度及CO2濃度的變化,并將得到的數據通過CAN總線發送到計算機終端,供農業專家研究.同時,可通過采集溫度、濕度變化數據來控制大棚內的噴淋裝置和通風裝置,調節大棚的環境.通過按鍵預設定系統的各個參數上下限值,使管理人員實時了解大棚內的環境信息.系統框圖如圖1所示.

圖1 系統硬件框圖
STM32F103是ST公司推出的基于ARMv7體系架構的處理器核,具有高性能、低成本、低功耗等特點.STM32系列芯片使用高性能的ARM Cortex M3 32位的RISC內核,工作頻率為70 MHz.內置高速存儲器(高達512 K字節的閃存和64 K字節的SRAM),豐富的增強I/O端口和聯接到兩條APB總線的外設.本設計中,采用該處理器主要實現采集外部傳感器的數據并完成上位機發出的指令,[2]以及人機交互功能中的觸摸屏控制.
該傳感器采用FC-28型土壤濕度傳感器,其濕度上下限可通過鍵盤設定,當濕度高于設定濕度時,啟動抽濕機、通風等設備;濕度達到設定濕度時自動停止;濕度低于設定濕度時,啟動噴淋裝置.濕度傳感器模塊與STM32F103的連接電路如圖2所示.在判斷濕度的時候,由于大棚面積較大,為了防止誤判情況發生,可在大棚內多處設置實時采集各點的濕度信息,在微處理內通過軟件做中值濾波處理,即將各點采集的值做算術平均,將平均的結果作為判斷依據,這樣的處理能減少誤判發生.系統下階段設計將采用無線傳感網絡的定位功能,可通過埋在土壤下各節點的濕度傳感器傳來的信息,直接定位大棚內某處的濕度情況,進行局部控制.

圖2 STM32F103與FC-28濕度模塊硬件連接圖
CO2濃度傳感器模塊采用MD62型氣敏元件,其內部可通過混合氣體的總導熱系數,隨待分析氣體含量的不同而改變,由檢測元件和補償元件配對組成電橋的兩個臂,遇可燃性氣體時檢測元件電阻變小,遇非可燃性氣體時檢測元件電阻變大(空氣背景),橋路輸出電壓變量,輸出電壓呈線性響應,其具有速度快、良好的重復性、工作穩定、不存在催化劑中毒、可無氧、缺氧檢測.[3]該電壓變量隨氣體濃度增大而成正比例增大,補償元件起參比及溫度補償作用,檢測范圍寬(0% ~100%VOL).
溫度的檢測采用美國DALLAS公司的一線式數字溫度傳感器DS18B20,其測量范圍為-55℃ ~125℃,測溫分辨率可達0.0625℃,多個DS18B20可以并聯到1根總線上,CPU只需一個端口線就能與諸多DS18B20通信,以上特點非常適用于遠距離多點溫度檢測系統.
觸摸屏模塊實現用戶與系統之間的人機對話.當點擊屏幕設計中的圖形按鈕時,屏幕內的傳感反饋系統可根據預先設計的程序驅動各種連結功能,其可取代機械式的按鍵,并能產生生動的影音效果.它具有顯示內容豐富、直觀、易操作等優點.
μC/OS-II是一個完整的、可移植、可固化、可裁剪的占先式實時多任務操作系統,它是一種基于優先級的搶占式多任務實時操作系統,包含了實時內核、任務管理、時間管理、任務間通信同步(信號量、郵箱、消息隊列)和內存管理等功能.[4]它可以使各個任務獨立工作,互不干涉,并使應用程序的設計過程大大減化.下面介紹本系統對μC/OS-II的移植及其使用.
硬件需求:
CPU(8/16/32/64位);
有最少的RAM和ROM(注:內存需的變化取決于軟件的哪些部分被使用以及目標編譯程序的效率有多高);
完全的圖形LCD(任何類型和任何分辯率).
μC/OS-II的移植只需要修改與處理器相關的代碼,具體有如下內容:
(1)os_cpu.h中需要設置一個常量來標識堆棧增長方向;
(2)os_cpu.h中需要聲明幾個用于開關中斷和任務切換的宏;
(3)os_cpu.h中需要針對具體處理器的字長重新定義一系列數據類型;
(4)os_cpu_a.asm需要改寫4個匯編語言的函數;
(5)os_cpu_c.c需要用c語言編寫6個簡單函數.
完成上述工作后μC/OS-II就可以運行在ARM處理器上了.
在任務執行時,如果需要對其進行中斷操作,應對于任務用以下函數進行配置:
#define OS_EXIT_CRITICAL()/* 允許中斷;
#define OS_ENTER_CRITICAL()/* 禁止中斷.
在μC/OS-II中用GUI的,所以還要寫幾個操作系統接口函數.而GUI_X_x之類的函數是和操作系統相關的接口.
(1)系統時間接口.
取系統時間:intGUI_X_GetTime(void);
延時函數:void GUI_X_Delay(int ms).
(2)任務調度函數.
任務初始化:void GUI_X_InitOS(void);
任務鎖定:voidGUI_X_Lock(void);
任務解鎖:voidGUI_X_Unlock(void);
本系統在移植μC/OS-II時,修改了3個與ARM體系結構相關操作分別是:任務管理OS_TASK.C、任務管理 OS_MEM.C、任務管理 OS_CORE.C.[5]

圖3 系統上位機圖形界面
uC/GUI是Micrium公司研發的通用的嵌入式用戶圖像界面軟件.它給任何使用圖像LCD的應用程式提供單獨于處理器和LCD控制器之外的有效的圖形用戶接口.能夠應用于單一任務環境,也能夠應用于多任務環境中.GUI Builder是一款用來創建WebElement用戶界面(WUI)的模板生成器,能根據用戶的要求來生成C語言源代碼的工具,也可以作為一個WEP響應程序的基礎.它簡化了應用程序的設計過程,生成簡單的程序框架和事件框架,對邏輯和視圖進行分離,使源代碼能直接在指定的編譯器里編譯生成目標文件.
本系統的上位機是在C#上開發的,C#是微軟公司發布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言.圖3為上位機軟件打開之后的畫面.
本文結合現代農業的發展趨勢,提出利用嵌入式系統整合農業設施所設計的一種新方案.系統通過對溫室內的溫度與濕度參量的采集,并根據上述參數實現對溫度和濕度的自動調節,達到了溫室大棚自動控制的目的.該方案對渭北平原果蔬大棚的規范化管理具有的一定的現實意義.
(指導教師 袁 衛)
[1]于海業,馬成林,孫瑞東.溫室環境自動檢測系統[J].農業工程學報,1997,13(S1):262-269.
[2]王瑄,遲道才,王鐵良,等.日光溫室夏季降溫措施的試驗研究初報[J].農業工程學報,2001,17(5):95-98.
[3]丁鎮生.傳感器及傳感技術應用[M].北京:電子工業出版社,1998.
[4]趙寧,陳明,何鵬舉.嵌入式操作系統μC/OS-II在ARM上的移植與應用[J].計算機技術與應用,2004,(4):29-31.
[5]ELM-FAT File System Module[DB/OL].(2010-05-04)[2013-03-25].http://elm-chan.org/fsw/f/00index_e.html.