姜宗梁,楊峰山,殷家偉,許 春,徐凱宏
(1.東北林業(yè)大學 信息與計算機工程學院,黑龍江 哈爾濱 150040;2.黑龍江大學 生命科學學院,黑龍江 哈爾濱 150080)
目前,利用科學的檢測技術指導農(nóng)業(yè)發(fā)展已經(jīng)成為不可阻擋的歷史趨勢。對農(nóng)業(yè)有機廢棄物進行固體發(fā)酵,將其轉(zhuǎn)化為可二次利用的有機化肥,在節(jié)能環(huán)保領域具有重要意義。通過對發(fā)酵過程的產(chǎn)物進行追蹤檢測,可以方便調(diào)整農(nóng)業(yè)有機廢棄物的配比,以獲得效益最大化[1]。本文針對用戶的需求,設計了基于LabVIEW的固體有機物發(fā)酵在線檢測系統(tǒng)。
發(fā)酵設備共有24個發(fā)酵箱,需要控制啟動指定箱體內(nèi)的傳感器進行檢測,并對箱體運行時間及采樣間隔時間進行控制。在設備運行前需要將實驗人員、地點、時間、箱體實驗內(nèi)容進行記錄,以便后期查詢。采到數(shù)據(jù)后,需要對某個箱體進行單箱數(shù)據(jù)顯示,內(nèi)容包括溫度、酸堿度、氣體濃度,顯示形式包括數(shù)據(jù)表格和波形圖。規(guī)定某幾個箱體測的是同一類廢棄物,以其平均值作為該類廢棄物量化值,通過對不同類廢棄物的量化值以圖表形式進行比對,直觀的得出檢測結果。
系統(tǒng)分為數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)調(diào)用三大部分[2,3]。采用LabVIEW進行程序設計,實現(xiàn)農(nóng)業(yè)有機廢棄物固體發(fā)酵的智能控制。LabVIEW與MATLAB均可實現(xiàn)將串口數(shù)據(jù)代入程序進行處理,實現(xiàn)與數(shù)據(jù)庫的數(shù)據(jù)交換。但在實際應用中,LabVIEW無論是從數(shù)據(jù)庫配置方面還是從實現(xiàn)增刪改查的編程操作方面,均要比MATLAB簡便。綜上所述,由于本檢測系統(tǒng)需要對硬件設施進行控制,對數(shù)據(jù)的操作量適中但所需的數(shù)據(jù)顯示板塊多,所以,本文使用LabVIEW進行開發(fā)最能滿足項目需求。
數(shù)據(jù)采集由兩部分組成:1)實驗基本信息錄入,包括實驗時間、人員、地點、箱體備注[4];2)傳感器檢測結果錄入,包括發(fā)酵箱內(nèi)溫度、酸堿度、氣體濃度[5],數(shù)據(jù)采集后上傳到本地數(shù)據(jù)庫及云數(shù)據(jù)庫進行存儲。人機交互方面[6,7],在進行數(shù)據(jù)采集前需要對啟動箱體進行選擇,本檢測系統(tǒng)采用逐個單擊選擇1#~24#箱體和一鍵全選兩種方式。選中箱體后需要對箱體啟動時間長度及啟動時間間隔進行設置,以達到控制傳感器的總工作時間及每隔多久檢測一次的目的,通過主面板上的運行次數(shù)顯示控件可實時顯示傳感器檢測的次數(shù)。
如圖1所示,實驗人員在選定所需檢測的箱體后需要在運行時間設置處手動輸入所需總檢測時間及每次檢測間隔時間,點擊啟動箱體按鈕即可啟動該選中箱體的檢測,檢測次數(shù)在運行次數(shù)顯示處顯示。為方便程序的執(zhí)行和修改,使用對具體實現(xiàn)功能寫入子程序,總程序?qū)懞眠壿嬁蚣芎笤僬{(diào)用子程序的方法??傮w編程思路為外層事件結構內(nèi)嵌套while循環(huán),由時間控制程序決定循環(huán)的終止,循環(huán)內(nèi)嵌套層疊式順序結構,在每一幀內(nèi)寫入對不同箱體的調(diào)用。
圖1 啟動數(shù)據(jù)采集前面板
數(shù)據(jù)存儲由兩部分組成,分別將檢測數(shù)據(jù)傳入本地數(shù)據(jù)庫及云數(shù)據(jù)庫[8]。本地數(shù)據(jù)庫使用ACCESS庫[8],在其內(nèi)建立box 1到box 24共24個表格分別儲存24個箱體的檢測數(shù)據(jù),包括時間、溫度值、酸堿度值、硫化氫(H2S)濃度、一氧化氮(NO)濃度、二氧化氮(NO2)濃度、甲醛(CH2O)濃度、一氧化碳(CO)濃度、氮氣(N2)濃度,另建立一個Basic表格,用來儲存實驗時間、人員、地點、箱體備注等信息,庫表格建立完成后利用DSN建立LabVIEW與數(shù)據(jù)庫的連接,使用基于ODBC技術的數(shù)據(jù)庫工具包完成檢測數(shù)據(jù)入庫操作。云數(shù)據(jù)庫的使用與本地數(shù)據(jù)庫大同小異,使用MYSQL庫,在LabVIEW中創(chuàng)建url鏈接,鏈接中包含24個箱子對應的數(shù)據(jù)以及該數(shù)據(jù)要插入哪個表的信息,通過get請求的方式,將數(shù)據(jù)傳遞給php后端,php后端接收到請求之后將數(shù)據(jù)插入數(shù)據(jù)庫對應的表中。
以圖2為例,傳感器采集的數(shù)據(jù)通過MODBUS 通信后傳到上位機,通過LabVIEW編程獲取數(shù)值后直接傳入ACCESS數(shù)據(jù)庫相應表格位置,云數(shù)據(jù)庫導入數(shù)據(jù)的思路也大致相同。
圖2 溫度數(shù)據(jù)存入本地數(shù)據(jù)庫程序框圖
如圖3,數(shù)據(jù)調(diào)用由三部分組成:1)將錄入數(shù)據(jù)庫的實驗基本信息進行顯示;2)單箱數(shù)據(jù)分析;3)不同類別對比。
圖3 數(shù)據(jù)調(diào)用分析界面
實驗基本信息采用表格的形式進行顯示,格式與在數(shù)據(jù)庫中存儲的格式一致,用戶可根據(jù)實驗時間的不同查看不同實驗的基本信息。單箱數(shù)據(jù)分析時用戶在選定24個箱體中的某一個后便可查看該箱體每次的檢測值,查看形式包括表格和圖表兩種,以便滿足用戶的不同需求。在進行不同類別對比時,系統(tǒng)將24個箱體分為六類,每類包括4個箱體,用戶可根據(jù)需求在該類箱體內(nèi)放置相同的發(fā)酵物,在不同類的箱體內(nèi)放置不同的發(fā)酵物,系統(tǒng)以該類箱體檢測值的平均值作為該類發(fā)酵物的量化值,由此可實現(xiàn)不同類發(fā)酵物的發(fā)酵實驗對比,并將結果用圖表的形式進行直觀展示。另外,為滿足用戶在某類的4個箱體內(nèi)只想用其中幾個箱體而不想全部使用的需求,系統(tǒng)界面設置了箱體數(shù)量選擇輸入控件,用戶可根據(jù)實際使用情況進行設置,以期在達到節(jié)約實驗原材料目的的基礎上獲得最大實驗精度。
在檢測精度上,溫度檢測采用DS18B20溫度傳感器,在-10~+85 ℃范圍內(nèi),精度為±0.5 ℃,對硫化氫、一氧化氮、二氧化氮、氨氣、一氧化碳、氫氣、二氧化硫、甲烷氣體濃度的檢測使用的是JXM系列智能型氣體檢測模組,模組內(nèi)置高精度電化學傳感器,精度不大于讀數(shù)的±3 %(25 ℃);對甲醛的檢測使用的是防爆式甲醛傳感器,屬高精度電化學傳感器,精度不大于讀數(shù)的±2 %(25 ℃)酸堿度傳感器采用精訊暢通土壤pH傳感器,pH測量范圍為3~9 pH,測量精度為±0.3 pH。
本文所設計與實現(xiàn)的農(nóng)業(yè)有機廢棄物固體發(fā)酵在線檢測系統(tǒng),利用圖像化的編程方法使得檢測進程可追蹤。數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)調(diào)用三大模塊相互滲透,實現(xiàn)了實驗信息記錄、實驗數(shù)據(jù)保存與分析,并能用表格和圖表進行直觀顯示。本文系統(tǒng)使用簡單方便,極大地節(jié)省了傳統(tǒng)發(fā)酵實驗中所需的人力物力,后續(xù)可根據(jù)情況進行項目移植和改造,為農(nóng)業(yè)信息化進程發(fā)揮更大作用。