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