劉瑞瑞, 王福平
(1.北方民族大學(xué)計算機科學(xué)與工程學(xué)院,寧夏銀川 750021; 2.北方民族大學(xué)創(chuàng)新創(chuàng)業(yè)學(xué)院,寧夏銀川 750021)
我國是世界上馬鈴薯產(chǎn)量最大的國家,如此巨大的資源難以短期內(nèi)完成加工,所以在加工生產(chǎn)前期需要進行長時間的貯藏[1]。常用的是地窖貯存,而這種傳統(tǒng)的方式很難適應(yīng)現(xiàn)代農(nóng)業(yè)大生產(chǎn)的要求,由于在貯藏環(huán)境中存在著諸多影響因素,如溫度、溫度、二氧化碳濃度等,都會對馬鈴薯的貯藏造成一定的影響;同時,會受到人為因素、自然環(huán)境因素以及氣候因素的制約,不僅降低了效率,而且增加了成本,消耗了大量的人力、物力、財力,不能實時高效地監(jiān)控與管理,就會出現(xiàn)一系列的問題,造成農(nóng)戶的經(jīng)濟損失。如何使其集中規(guī)模、批量存儲以滿足現(xiàn)代對農(nóng)產(chǎn)品深加工的需求,提高其價值,確保農(nóng)民致富,是本設(shè)計所要解決的問題。隨著科學(xué)技術(shù)的不斷向前邁進,微型化、集成化、低成本化成為信息技術(shù)的主流,由單片機、微型控制器、傳感器、模擬數(shù)字轉(zhuǎn)換器等組成的智能監(jiān)控系統(tǒng)得以廣泛應(yīng)用,該系統(tǒng)可以精確實時地檢測各項數(shù)據(jù)[2],同時農(nóng)戶可以隨時對其內(nèi)部環(huán)境進行遠距離控制,還有專家決策系統(tǒng)對所接收的信息進行科學(xué)綜合的分析,其簡單快捷的人機交互方式給農(nóng)戶帶來較大的效益。
本次設(shè)計的貯藏環(huán)境檢測系統(tǒng)由電源、STM32單片機、數(shù)據(jù)采集器(溫濕度傳感器、二氧化碳傳感器)、蜂鳴器加熱除濕裝置以及串行接口通信模塊等幾個部分組成(圖1)。農(nóng)戶通過上位機對現(xiàn)場數(shù)據(jù)進行檢測,并且進行實時有效地遠程控制,每一個終端節(jié)點負責(zé)執(zhí)行上位機發(fā)送的指令,可以實現(xiàn)對貯藏環(huán)境的溫濕度以及二氧化碳濃度的采集,并且通過485通信總線將數(shù)據(jù)傳輸至STM32單片機中進行數(shù)據(jù)的存儲及處理,單片機是整個系統(tǒng)的控制核心,在系統(tǒng)中起到承上啟下的作用,一則將上位機的控制指令接收并且傳至各個終端節(jié)點,二則將終端節(jié)點采集到的各項數(shù)據(jù)進行匯總分析與處理后再反饋給上位機,從而實現(xiàn)了用戶對貯藏環(huán)境的實時監(jiān)測與控制。
系統(tǒng)的硬件設(shè)計包括電源模塊、STM32F103VE單片機核心電路、溫濕度及二氧化碳數(shù)據(jù)采集模塊、液晶屏顯示模塊、RS485通信模塊以及其他模塊(包括報警電路、時鐘電路和復(fù)位電路)。整個系統(tǒng)就像人一樣,不同的部件就像不同的器官:顯示器就像人臉,直觀地呈現(xiàn)系統(tǒng)的實時變化;單片機中的晶振就像是心臟,支撐著系統(tǒng)的運行;采集器的輸入輸出就像人的嘴巴,接收并向外傳遞信息;而各類傳感器就像人的五官和皮膚,直接感知外界的信息[3]。以單片機作為系統(tǒng)控制器的核心,以傳感器作為數(shù)據(jù)采集單元,以加熱裝置、除濕裝置、風(fēng)機裝置作為執(zhí)行單元完成對馬鈴薯貯藏環(huán)境的溫度、濕度以及二氧化碳濃度的智能化檢測與控制。當(dāng)溫濕度集成傳感器和二氧化碳傳感器的各個節(jié)點采集到環(huán)境中的數(shù)據(jù)后上傳至單片機進行數(shù)據(jù)處理,然后在液晶屏幕中顯示,并通過蜂鳴器、風(fēng)機、自動加熱、自動除濕等裝置對馬鈴薯窖內(nèi)環(huán)境進行實時監(jiān)控,同時將采集的數(shù)據(jù)實時記錄下來,上傳至上位機。所有的指令和數(shù)據(jù)都嚴格按照通信協(xié)議的要求,以保證傳輸數(shù)據(jù)的精確度,便于用戶隨時了解窖內(nèi)溫濕度及二氧化碳濃度的情況,從而對各個時間段的數(shù)據(jù)進行分析。在上述的硬件模塊中,本研究主要考慮單片機的選擇、傳感器的選擇以及通信模塊的設(shè)計。
控制器用以接收采集到的數(shù)據(jù),并對數(shù)據(jù)進行處理與控制,在整個系統(tǒng)中居于核心地位并嵌入其中,所以國際上常稱其為嵌入式控制器或者微控制器,而國內(nèi)工程師或相關(guān)開發(fā)人員常習(xí)慣稱其為“單片機”。它的選用關(guān)乎整個系統(tǒng)的運行是否穩(wěn)定、高效。本次設(shè)計采用ARM公司推出的STM32F103VE,它使用了高性能的 ARM Cortex-M3 32位RISC內(nèi)核,工作頻率為72 MHz,內(nèi)置高速存儲器(高達 512 kB 的閃存和64 kB的SRAM),豐富的增強I/O端口和聯(lián)接到2條APB總線的外設(shè)。
本設(shè)計用于溫濕度采集,對于戶外工作環(huán)境中的溫度承受有一定的限制要求,STM32F103VE適用于-40~105 ℃的溫度范圍,供電電壓2.0~3.6 V,完全滿足工作環(huán)境的需求,并且完全適用于KEIL開發(fā)環(huán)境,支持匯編和C語言等多種語言開發(fā)。由于它面向中低端市場,很大程度上降低了成本,又因其倡導(dǎo)庫開發(fā)的理念,僅通過調(diào)用庫里的API就可以迅速搭建1個大型的程序,根據(jù)用戶需求操作,降低了開發(fā)周期[4]。
傳感器由敏感元器件與轉(zhuǎn)換元器件組成,前者可以直接感知或響應(yīng)被測量,后者可以將被測量轉(zhuǎn)換成可傳輸和可測的電信號,智慧農(nóng)業(yè)中常用到溫濕度集成傳感器、光傳感器、CO2傳感器、化肥含量傳感器等,對其性能有較高的要求,如高靈敏度、強抗噪性、低功耗、小誤差、易校準等,應(yīng)該根據(jù)實際情況,從所研究的目的、環(huán)境、對象、精度要求、信號處理、配套儀器及成本等綜合考慮。
本次設(shè)計采用奧松電子推出的AM2303高精度溫濕度集成傳感器模塊,主要由電容式感濕元件、高精度測溫元件、信號放大器、A/D轉(zhuǎn)換元件及1個內(nèi)置的高性能單片機集成組成[5]。供電范圍在3.5~5 V,實際常采用5 V,數(shù)據(jù)引腳采用串行三態(tài),可同時作為外部輸入和內(nèi)部輸出,上升沿有效,傳輸數(shù)據(jù)是高電平有效,單片機輸出低電平體積小,符合環(huán)境要求的測量范圍,可以對被測量直接進行A/D轉(zhuǎn)換與校準,提高開發(fā)效率,同時提高了準確性和可靠性。
二氧化碳傳感器要求工作溫度0~50 ℃,預(yù)熱時間小于1 min,響應(yīng)時間和精確率均不超過10 s,模擬信號的輸出為0~10 V/4~20 mA(可選),這里采用MH-Z14型,該傳感器具有低功耗、高精度、高分辨率、防水汽、防毒、穩(wěn)定性強等優(yōu)點。
系統(tǒng)通信由上位機通信、下位機通信2個部分組成。通信模塊設(shè)計需考慮波特率、通信協(xié)議、通信緩存區(qū)以及通信的過程。
目前數(shù)據(jù)通信的方式日趨多樣。工業(yè)控制中常采用 RS232、RS422、RS485 3種總線標準。本設(shè)計采用的是雙絞線傳輸半雙工工作模式的RS485,以驅(qū)動電壓輸出滿足RS485標準P3485作為通信接口主控芯片,加入了74LVC04反相器和單片機相連用以加強驅(qū)動力。在通信時同一時刻只能完成數(shù)據(jù)的接收或者發(fā)送,保證數(shù)據(jù)傳輸?shù)目煽啃?;便于多個節(jié)點互聯(lián),易實現(xiàn)多機通信,其標準規(guī)定最多并聯(lián)32臺驅(qū)動器和32臺接收器,最大傳輸距離約1 219 m,最大傳輸速率約 10 Mbit/s[5]。串口的接收器首先對起始位進行偵測,判斷采樣序列的完整性,然后接收數(shù)據(jù)幀和停止位,并通過對各類錯誤中斷檢測方式對采集的數(shù)據(jù)進行判斷,確保數(shù)據(jù)采集的精確性。串口的波特率可以通過設(shè)置在USART_BRR 寄存器的值來獲得?;赟TM32單片機可以通過庫函數(shù)直接配置,無需再計算分頻因子。
根據(jù)設(shè)計要求是對不同單元數(shù)據(jù)的采集及處理,因而采用Modbus的通信協(xié)議,通過單播或廣播模式來完成主從機之間的響應(yīng)。主機按格式發(fā)出請求后,當(dāng)子節(jié)檢測信息,并對收到數(shù)據(jù)進行解碼以及校驗數(shù)據(jù)是否準確,在Modbus 串行鏈路中,有2種檢驗方法——奇偶校驗和幀校驗。為了對信息進行完整的判斷,常采用幀校驗的方式。
系統(tǒng)的軟件設(shè)計貫穿于系統(tǒng)設(shè)計的全過程,為了便于管理與維護,減少工作量,在開發(fā)前應(yīng)該確定系統(tǒng)的開發(fā)環(huán)境、語言、數(shù)據(jù)結(jié)構(gòu)等,現(xiàn)主要針對下位機部分進行設(shè)計。
本設(shè)計選用μVision4的開發(fā)壞境,前身是51中的Keil,由V4.12版本的MDK軟件開發(fā)工具內(nèi)部集成,集代碼編輯、編譯、仿真、鏈接及下載于一體。支持常見的ARM公司系列產(chǎn)品,最主要的是與STM32系列完美兼容,提供了直接可用的啟動文件,用戶使用時直接進行C語言編程,它的突出特點是適用多種操作系統(tǒng)如UNIX、DOS,也適用于多種機型[6]。針對其語法限制不夠嚴格、設(shè)計自由度大等問題,在編程過程中應(yīng)該注釋代碼,便于其后期的修繕與維護。
通過開發(fā)軟件自動尋找中斷地址,而不需要重新設(shè)置Bootloader啟動文件,為開發(fā)提供了極大的便利,很大程度上縮短開發(fā)周期[4]。
設(shè)計過程應(yīng)采用結(jié)構(gòu)模塊化的設(shè)計方式對各項功能進行封裝,包括數(shù)據(jù)采集及存儲子程序、鍵盤掃描與液晶顯示程序、串口通信、實時時鐘、中斷系統(tǒng)、電源管理等模塊。采集器的軟件部分主要完成程序的初始化、模擬量數(shù)字量的采集、數(shù)據(jù)的發(fā)送和控制傳感器的啟動和停止等。
主程序中先要對鍵盤、顯示器、A/D模塊以及通信端口的初始化,數(shù)據(jù)采集以及存儲子程序的編寫是定時中斷子程序。主程序循環(huán)掃描鍵盤,按鍵時轉(zhuǎn)為鍵盤掃描子程序,主程序?qū)⑸衔粰C的通信程序設(shè)為外部中斷子程序,中斷信號由INTO輸入。當(dāng)上位機向下位機發(fā)送傳數(shù)據(jù)請求時,通過撥號選中下位機,該下位機的程序跳轉(zhuǎn)至通信子程序,便完成了與上位機的通信。
本設(shè)計中的數(shù)據(jù)采集包括溫濕度及二氧化碳濃度的采集,單片機進入自動采集模式即一段時間(可以設(shè)定)采集1次,其余時間休眠,這些時間的設(shè)定都是利用精確的定時中斷機制來實現(xiàn)各個任務(wù)的調(diào)度,最后再將采集到的數(shù)據(jù)存在flash內(nèi)。存入flash內(nèi)的數(shù)據(jù)可以通過輸入相應(yīng)命令來讀取和清除,溫濕度及二氧化碳濃度數(shù)據(jù)采集流程如圖2所示。
該系統(tǒng)完成了軟硬件的對接,實現(xiàn)了各個功能模塊的要求,并在實際中得以應(yīng)用,實現(xiàn)了數(shù)據(jù)的采集與傳輸,數(shù)據(jù)的精確度是驗證系統(tǒng)可靠性的重要保障,通過數(shù)據(jù)分析誤差原因并降低工作誤差尤為關(guān)鍵。
該系統(tǒng)開機之后,液晶屏直接顯示馬鈴薯儲藏窖環(huán)境參數(shù)信息以及功能選項欄,進入實時數(shù)據(jù)顯示界面,查看實時環(huán)境中各監(jiān)測點的數(shù)據(jù)以及平均數(shù)(圖3)。
在系統(tǒng)界面下點擊右側(cè)【工作狀態(tài)】圖標界面,如果系統(tǒng)設(shè)備運行正常,則界面中的紅色 【停止】圖標會變成綠色 【運行】圖標;當(dāng)系統(tǒng)設(shè)備運轉(zhuǎn)出現(xiàn)異常時,則會由綠色【運行】圖標改變?yōu)榧t色【停止】圖標(圖4)。
在系統(tǒng)界面下點擊右側(cè)【參數(shù)設(shè)置】或【時間設(shè)置】,進入提示界面,點擊該界面中空格,彈出軟鍵盤即可用鼠標點擊設(shè)置,也可根據(jù)實際情況修改(圖5、圖6)。
選用某農(nóng)戶的馬鈴薯窖,取用某天8:00—18:00之間每小時1次的數(shù)據(jù)進行試驗,數(shù)據(jù)見表1。其中溫度采集的精度為±0.3 ℃,濕度采集的精度為±2% RH,較為準確,但前期采集數(shù)據(jù)波動較大,可能受地窖環(huán)境中各氣體、壓強等因素影響。二氧化碳的數(shù)據(jù)則比較復(fù)雜,會因前2個參數(shù)而變化,因此采用單一變量的原則來單獨分析二氧化碳的情況。須排除人為、傳感器、環(huán)境等諸多誤差因素,使數(shù)據(jù)整體趨于穩(wěn)定。
表1 馬鈴薯窖溫濕度監(jiān)測數(shù)據(jù)
本研究設(shè)計了一種基于STM32單片機的智能檢測系統(tǒng),其融合了電子信息技術(shù)、計算機技術(shù)、物聯(lián)網(wǎng)技術(shù)等,通過模塊化的結(jié)構(gòu)設(shè)計方案降低了設(shè)計的難度,提高了其可靠性和準確性。其軟硬件均已成功調(diào)試,并在馬鈴薯窖藏中得以應(yīng)用,滿足在農(nóng)業(yè)中的實際需求。
[1]尹飛凰,高 舸. 適宜馬鈴薯儲藏的環(huán)境參數(shù)智能調(diào)節(jié)系統(tǒng)[J]. 江蘇農(nóng)業(yè)科學(xué),2014,42(9):374-376.
[2]趙 凱,楊淑連. 溫室大棚環(huán)境參數(shù)無線監(jiān)控系統(tǒng)[J]. 山東理工大學(xué)學(xué)報(自然科學(xué)版),2010,24(2):93-96.
[3]李 軍. 數(shù)據(jù)采集系統(tǒng)整體設(shè)計與開發(fā)[M]. 北京:北京航空航天大學(xué)出版社,2014.
[4]劉火良,楊 森. STM32庫開發(fā)實戰(zhàn)指南[M]. 北京:機械工業(yè)出版社,2013.
[5]徐會杰. 數(shù)據(jù)采集系統(tǒng)中串行通信協(xié)議的設(shè)計與實現(xiàn)[J]. 河南科技大學(xué)學(xué)報(自然科學(xué)版),2008,29(5):30-32.
[6]汪文忠,彭 剛,徐慶江,等. 基于STM32單片機的自動氣象采集系統(tǒng)軟件設(shè)計[J]. 可編程控制器與工廠 自動化(PLC&FA),2012(3):52-56.