賈 賽 , 張 燕 , 王長云
(新疆農(nóng)業(yè)大學機電工程學院,新疆 烏魯木齊 830052)
谷物水分含量是糧食回收貯藏的重要指標,但是在實際生產(chǎn)過程中,很少有農(nóng)戶運用專業(yè)的設(shè)備測量。據(jù)相關(guān)數(shù)據(jù),我國糧食在儲藏、運輸和加工等環(huán)節(jié),每年損失量約為700億斤[1]。也就是說,農(nóng)戶在糧食儲存環(huán)節(jié)中會產(chǎn)生嚴重損失;因為缺少技術(shù)指導或者沒有有效的檢測設(shè)備,農(nóng)戶無法快速發(fā)現(xiàn)環(huán)境變化而導致的糧食發(fā)霉腐爛情況,從而造成嚴重的浪費。在“十四五”規(guī)劃[2]中,《糧食綠色倉儲提升行動方案(試行)》提出了建設(shè)一批高標準糧倉、改造提升倉房的氣密和保溫隔熱性能、推廣應用綠色儲糧技術(shù)、發(fā)展多參數(shù)多功能糧情測控系統(tǒng)、提升清理凈糧能力、推動糧倉分類分級等重點任務。由此可見檢測谷物水分含量設(shè)備的重要性[3],高效的檢測設(shè)備可以幫助農(nóng)戶發(fā)現(xiàn)谷物水分含量過高的情況并及時處理,從而有效減少經(jīng)濟損失。
近年來,越來越多的人開始研究糧食水分的動態(tài)檢測技術(shù)[4],不同的傳感器原理和相關(guān)的設(shè)備也不斷出現(xiàn)。單片機具有體積小、價格低廉等優(yōu)點,但也存在內(nèi)存小、無法大量計算、性能有限等缺點。如果采用高性能的單片機,數(shù)據(jù)處理速度可以提升,但這樣芯片的價格就比較貴,系統(tǒng)再加入數(shù)據(jù)存儲設(shè)備后,成本又會進一步提升。動態(tài)監(jiān)測方案在單片機性能較低的情況下也無法實現(xiàn)數(shù)據(jù)采集功能,數(shù)據(jù)的分析處理和存儲這兩個問題更加不容易解決。如果可以將數(shù)據(jù)的分析和存儲過程全部放在云平臺進行,單片機只用來采集數(shù)據(jù),那么單片機的性能就不需要太高,系統(tǒng)設(shè)計中也無需額外的存儲介質(zhì)。
基于阿里云的谷物水分檢測系統(tǒng)由硬件系統(tǒng)、軟件系統(tǒng)、通信系統(tǒng)等部分組成。硬件系統(tǒng)主要完成水分和溫度數(shù)據(jù)的采集工作,實現(xiàn)數(shù)據(jù)顯示及谷物品種選擇等功能;軟件系統(tǒng)完成數(shù)據(jù)的初步處理,通過云平臺、數(shù)據(jù)庫、釘釘推送等對動態(tài)采集的數(shù)據(jù)進行計算、存儲和顯示。技術(shù)路線如圖1所示。
圖1 技術(shù)路線
根據(jù)總體方案要求,硬件系統(tǒng)主要由數(shù)據(jù)采集模塊、按鍵模塊、通信模塊和顯示模塊[5]等組成,如圖2所示。其控制單元的核心板為ESP32單片機,主要外圍電路為溫度傳感器DS18B20、電容式水分傳感器、按鍵電路、顯示屏幕等。
圖2 硬件系統(tǒng)結(jié)構(gòu)圖
單片機是谷物水分測量控制系統(tǒng)的核心,常見的單片機有51單片機、STM32單片機[6]、AVR單片機等。51單片機和STM32單片機在嵌入式系統(tǒng)中使用廣泛,但它們還要額外的WIFI芯片[7]才能滿足數(shù)據(jù)傳輸?shù)囊?。而ESP32不僅是一個WIFI芯片,同時該單片機也可以進行片上編程,完全可以滿足通信和控制傳感器的功能要求。ESP32單片機電路如圖3所示。
圖3 ESP32單片機電路
在水分傳感器設(shè)計中,選擇精度較高、受外界干擾較小的電容式傳感器[8]。設(shè)計時,一方面通過硬件設(shè)計減小誤差,提高精確度;另一方面通過軟件進行誤差補償。本文設(shè)計了精確度為±2%RH以內(nèi)的電容式水分傳感器,如圖3右下方所示。
單片機控制系統(tǒng)由初始化模塊、數(shù)據(jù)采集模塊、誤差補償模塊、通信模塊等組成[9]。首先通過網(wǎng)絡(luò)初始化連接網(wǎng)絡(luò),通過全局變量使能硬件管腳,然后處理傳感器數(shù)據(jù),接著進行品種選擇,最后通過通信功能將補償之后的數(shù)據(jù)上傳到云端。具體流程如圖4所示。
圖4 程序流程
其中誤差補償模塊(數(shù)據(jù)采集及修正)完成電容式水分傳感器軟件優(yōu)化,主要通過程序設(shè)計了限幅和濾波兩個函數(shù)來減小誤差。
1)限幅通過函數(shù)map(x, y, a0)設(shè)置三個參數(shù),分別對應初始濕度標定值、濕度最大標定量和傳感器讀取輸入量,參考程序如下。
2)濾波通過中位值升序排列取中間值,MedianAverage函數(shù)兩個參數(shù)分別為輸入值和輸入值個數(shù),通過控制數(shù)據(jù)個數(shù)盡可能排除不良數(shù)據(jù),減小誤差,參考程序如下。
通信系統(tǒng)由阿里云、數(shù)據(jù)庫和上位機模塊組成。通過MQTT協(xié)議[10]將數(shù)據(jù)上傳到阿里云平臺上,最終完成數(shù)據(jù)的顯示、計算、儲存等功能。
采用阿里云、硬件設(shè)備、IOT Studio雙向連接的MQTT協(xié)議,不同端之間可以進行數(shù)據(jù)的轉(zhuǎn)發(fā),從而滿足設(shè)計要求。
阿里云主要完成業(yè)務編排和釘釘機器人的功能。其中,業(yè)務編排借助API實行更簡單的數(shù)據(jù)處理,在不借助其他軟件的情況下完成阿里云平臺和設(shè)備的通信功能開發(fā),如圖5所示。釘釘機器人[11]為了解決移動端數(shù)據(jù)讀取問題,實現(xiàn)推送和報警功能,釘釘推送如圖6所示。
圖5 業(yè)務編排
圖6 釘釘群消息
數(shù)據(jù)庫錄入的是標準的溫濕度值,可以通過業(yè)務編排將該數(shù)據(jù)回傳給單片機做下一次采集的補償計算。MySQL數(shù)據(jù)庫[12]錄入系統(tǒng)具體界面如圖7所示,包括左側(cè)的數(shù)據(jù)顯示表格和右側(cè)的增刪改查按鈕。
圖7 MySQL數(shù)據(jù)庫錄入系統(tǒng)
通過本文設(shè)計的QT上位機[13]可以將顯示功能和數(shù)據(jù)庫操作集成在一個軟件操作,上位機的第一個標簽頁是數(shù)據(jù)顯示中心,可以顯示和查詢歷史數(shù)據(jù)。由于糧食水分含量受溫度的影響比較大,為了消除溫度對糧食水分測量造成的誤差,設(shè)計成組網(wǎng)模式,多個設(shè)備進行檢測,提高檢測精度。組網(wǎng)模式頁面如圖8所示,頁面左上角為設(shè)備管理欄,當選擇“谷物水分檢測”這個項目時就可以顯示該項目下的設(shè)備名稱,之后單擊“B_Dev”設(shè)備就可以顯示篩選設(shè)備上線所有時間段的數(shù)據(jù)表或者趨勢圖。右上角顯示了A、B、C三個設(shè)備對應的實時溫濕度數(shù)據(jù),下方兩個表格為設(shè)備對應的曲線圖,方便觀察走勢并進行分析。
圖8 組網(wǎng)模式
為了檢驗電容式水分傳感器的數(shù)據(jù)采集及阿里云平臺的數(shù)據(jù)顯示、存儲效果,對整個系統(tǒng)進行靜態(tài)試驗。試驗的材料和設(shè)備包括:新鮮的玉米種子(一盆),谷物水分檢測系統(tǒng)設(shè)備(1臺),數(shù)據(jù)線(1根),電腦(1臺),電烘箱(加熱臺)。具體如圖9所示。
圖9 單機模式
在單機模式下,將檢測設(shè)備探頭插入玉米堆中,上位機立即顯示采集的相關(guān)數(shù)據(jù),同時可以查詢詳細的數(shù)據(jù)。為了驗證該設(shè)備的實用性,在盡可能保證試驗可行性的情況下,本文進行了如下試驗。
設(shè)置A、B、C、D、E五組玉米堆,分別在常溫1(20 ℃)、常溫2(30 ℃)和烘干等三種試驗環(huán)境中,對每組進行3次測量,取平均值。如表1、表2所示。
表1 20 ℃溫度下試驗數(shù)據(jù) 單位:%
表2 30 ℃溫度下試驗數(shù)據(jù) 單位:%
由表1和表2的試驗數(shù)據(jù)可知,在溫度相同的情況下,各組三次試驗的平均值與每一次測量值誤差在2%左右,驗證了該設(shè)計數(shù)據(jù)檢測的正確性,同時系統(tǒng)硬件設(shè)計和軟件設(shè)計可以減小誤差。
分析不同溫度下的試驗數(shù)據(jù),五組數(shù)據(jù)的平均值顯示,高溫(30 ℃)比低溫(20 ℃)谷物含水率降低了0.42%,說明溫度變化會對谷物含水率產(chǎn)生一定的影響:溫度越高,谷物含水率越低。數(shù)據(jù)實時顯示曲線如圖10所示。
圖10 數(shù)據(jù)顯示曲線
試驗驗證,該系統(tǒng)具有動態(tài)測量谷物含水率的基本功能,同時能云端存儲和顯示數(shù)據(jù),方便、直觀,具有一定的實用性。
課題組為了解決傳統(tǒng)單片機數(shù)據(jù)處理和存儲困難的問題,設(shè)計了一種基于ESP32和阿里云的電容式谷物水分檢測系統(tǒng),并通過試驗分析驗證了該系統(tǒng)的實用性。該系統(tǒng)能夠?qū)崟r快速檢測并顯示谷物溫度值和水分值,并且在云平臺中存儲數(shù)據(jù),可以隨時查詢歷史數(shù)據(jù)。