李常營,龍定彪,蒲施樺,劉作華
(重慶市畜牧科學院,重慶 榮昌 402460)
推動養(yǎng)豬業(yè)走向集約化、自動化、智能化是我國農業(yè)發(fā)展近10年來最大的特點之一。目前,越來越多的養(yǎng)殖場愿意采用精準飼喂技術降低料重比并降低飼料的浪費,因此如何精準控制或監(jiān)測豬的采食量是一個非常重要的問題。研究表明,使用紅外傳感器構建檢測系統(tǒng),能夠低成本并簡單有效地解決實時監(jiān)測飼料殘留量監(jiān)測的問題,為提高我國生豬養(yǎng)殖水平有一定的積極意義。
隨著測量技術的發(fā)展,國內有學者利用紅外傳感測距結合圓規(guī)創(chuàng)新研發(fā)新型的電子圓規(guī),以能夠自主測量圓的直徑功能為首要目標并向外拓展延伸,通過紅外測距功能對兩腳距離進行探測;也有學者結合紅外測距傳感器和計算機圖像處理技術,提出了一種非接觸式測量果樹深度信息的方法,實現(xiàn)了機器人對果樹快速識別和定位;還有學者以紅外距離傳感器作元件,采用非接觸式測量方法,捕捉人體退步表面幾何信息,設計了紅外人體腿圍測量系統(tǒng)。由此可見紅外技術可以很好地進行測距和定位,在飼料領域也可以得到應用。
顆粒飼料監(jiān)測系統(tǒng),核心控制芯片為Arduino UNO,外接的模塊分別有Esp8226無線通信模塊,紅外傳感器GP2D12集成模塊,伺服舵機模塊,7.4伏鋰電池等。通過手機給主控下達指令,利用云服務器完成閉環(huán)的信號傳遞。
顆粒飼料監(jiān)測系統(tǒng)框架如圖1所示。
圖1 數(shù)據(jù)采集系統(tǒng)的結構框圖
在此設計中,整體以Arduino為核心控制外接Esp8226無線通信模塊,紅外傳感器GP2D12集成模塊,大扭力伺服舵機模塊,7.4V鋰電池等。以下對各類模塊進行簡要的概述。
1.1.1 無線模塊
Esp8266系列無線模塊是一個經濟高效的WiFiSOC模塊,支持標準IEEE802.11b/g/n協(xié)議,內置完整的TCP/IP協(xié)議棧。用戶可以使用此系列模塊向現(xiàn)有設備添加網絡功能,也可以構建獨立的網絡控制器。
Esp8266是一款超低功耗的UART-WiFi透傳模塊,擁有業(yè)內極富競爭力的封裝尺寸和超低能耗技術,專為移動設備和物聯(lián)網應用設計,可將用戶的物理設備連接到Wi-Fi無線網絡上,進行互聯(lián)網或局域網通信,實現(xiàn)聯(lián)網功能。
1.1.2 處理器模塊
Arduino是一個基于易于使用的硬件和軟件的開源電子平臺。不僅具有各式種類的接口,也可利用USB接口傳輸程序。其優(yōu)點包括了AVR單片機的特點,跨平臺-Arduino軟件(IDE)在Windows,Macintosh OSX和Linux操作系統(tǒng)上運行。簡單清晰的編程環(huán)境使Arduino軟件(IDE)對初學者來說易于操作。開源性強和可擴展軟件Arduino軟件作為開源工具發(fā)布,可供經驗豐富的程序員進行擴展。
1.1.3 紅外監(jiān)測模塊
紅外測距主要原理是利用光的反射強度來測定距離的,具有精度高,低消耗,體積小,不受干擾等特點。它由一個紅外發(fā)射管和一個位置敏感檢測裝置以及相應的計算電路構成,位置敏感檢測裝置可以測量到光點在它上面的細微位移,利用此特征進行幾何方式的測距。
1.1.4 電池模塊
整個系統(tǒng)的供電一般可以直接由USB數(shù)據(jù)線連接開發(fā)板為其供電,也可以通過外接獨立電源。本實驗采用電壓輸出為7.4V,容量為1 500 mAh,充電截止電壓為8.4V的可充電軟包聚合物鋰電池組。
1.2.1 紅外監(jiān)測模塊
料筒或者料盤內的飼料表面不平整,在4個對稱點安置紅外傳感器,把4個收集到高度取其平均值來代替平面的實際高度。料筒設計的完成品圖內部結構和外部結構如圖2所示。
圖2 料筒設計的完成品圖內部結構和外部結構
針對GP2D12傳感器,數(shù)據(jù)處理上要解決兩個問題:(1)信號的線性化;(2)測量數(shù)據(jù)的噪聲很大,也就是誤差數(shù)據(jù)含量比較多。
上述的紅外線模塊在測量的過程存在一定的波動性,為了篩選出合理數(shù)據(jù),必須先在測量過程中利用一定時間區(qū)域內的數(shù)據(jù)進行合理的剔除并篩選。GP2D12紅外傳感模塊反饋的是一個模擬電壓值,而且其數(shù)值并不能與距離呈現(xiàn)線性關系,利用最小二乘擬合出的線性化關系式,編寫程序讓反饋的高度呈線性化。對一定時間內采取到數(shù)據(jù)利用改進的肖維涅算法進行篩選,達到消除噪聲的效果。
1.2.2 Arduino板和Esp8226之間的通訊程序設計
Arduino UNO和Esp8226兩者連接主要依靠D2、D3為Arduino設置的軟串口RX和TX,也就是通過串口可以達到兩者在連接后利用內置庫的函數(shù)實現(xiàn)通信(圖3)。
圖3 連接接口指示圖
1.2.3 服務端部分(巴法云)
巴法云物聯(lián)網平臺采用前后端分離的設計思想,屬于輕量級的精簡物聯(lián)網端服務器。其支持發(fā)布和訂閱模式,可以實現(xiàn)一對多、或者多對一、多對多的消息傳遞。
利用發(fā)布訂閱模式,即令Esp8266訂閱一個主題,再利用App inventor 編寫的app 往這個主題發(fā)布消息,由于Esp8266 訂閱了此主題,所以就可以收到app發(fā)布得消息,從而執(zhí)行相應得動作。原理步驟如下:
第一步先讓Esp8226模塊訂閱上此服務器的主題;
第二步讀取GP2D12的反饋值;
第三步訂閱同一主題的內部可以進行數(shù)據(jù)互換,手機上的App inventor設置程序同樣的要訂閱同一個主題。最后達到三者都可以進行消息傳輸。
1.2.4 客戶端軟件設計
App Inventor是一款利用圖形化界面的Android智能手機應用程序開發(fā)軟件,可以創(chuàng)造基于Android操作系統(tǒng)的應用軟件。它使用圖形化界面,非常類似于Scratch語言和Star Logo TNG用戶界面。用戶可以拖放圖形對象來創(chuàng)造一個運行在安卓系統(tǒng)上的應用,它就可以在許多手機設備上運行。
本文設計的軟件主要是為了實現(xiàn)飼料剩余量的檢測,并且將在app上輸入過的數(shù)據(jù)保存在內置的數(shù)據(jù)庫中,可以方便隨時查看。另外,通過軟件里的程序設計實現(xiàn)讓其和巴法云服務器能保持通訊。具體的設計步驟為:(1)讓手機客戶端和巴法云通過程序設定訂閱同一主題;(2)將反饋回來的數(shù)據(jù)進行反饋和實時的顯示的效果。飼料殘余量反饋功能部分軟件示范見圖4。
圖4 App inventor完成品示例圖
需要對設備中篩選紅外測距數(shù)據(jù)的程序進行改進,原理如下:利用前四分位利差設定特定區(qū)間,將范圍外的偏差較大的誤差數(shù)據(jù)提前剔除,在整體運行上提升效率,節(jié)省了一定量繁瑣的過程時間。具體如下:在獲得新的測量樣本數(shù)據(jù)集,假設個樣本中含有個誤差樣本點,設樣本點偏離大的有個,誤差偏小的樣本點有個。先通過快速排序的方法將樣本數(shù)據(jù)里的數(shù)據(jù)進行從小到大的排序,得到其中的中位數(shù)設為,上四分位點和下四分位點。設四分位離差:,選擇保留作為上述的接納區(qū)間,同時按照誤差數(shù)據(jù)服從正態(tài)分布的規(guī)律來確定。將數(shù)據(jù)集代入后求得,然后求出剩下每個數(shù)據(jù)與的偏差。
簡化得到:
計算收斂速度:
將監(jiān)測系統(tǒng)里的針對單一個紅外傳感器的接受數(shù)據(jù),因為儀器本身的數(shù)據(jù)波動,特別是在飼料變化過程中,為了精準地捕獲反饋量,先假設以時間間隔20 ms,即每秒檢測50次,對同一高度的飼料,采取同一時間節(jié)點測試100次的數(shù)據(jù)來測試篩選的實際效果。因為經過處理后反饋的測距值為整型,所以得到的距離值都是整數(shù),第一輪篩選結果如表1所示。
表1 第一輪篩選實驗結果數(shù)據(jù)
利用改進的肖維涅算法處理完數(shù)據(jù)得到第一次篩選的結果:獲得中位數(shù),,平均值為190 mm,標準差:,在100個經過排列后經過篩選發(fā)現(xiàn)合格的數(shù)據(jù)為39個,數(shù)據(jù)總數(shù)為64個,然后通過遞歸進行第二輪的篩選,第二輪篩選結果如表2所示。
表2 第二輪篩選實驗結果數(shù)據(jù)
依據(jù)第一輪篩選結果重新遞歸代入回算法中,第二輪得到平均值為189 mm,標準差,經過排列后經過篩選發(fā)現(xiàn)合格的數(shù)據(jù)為14個,總數(shù)為39個,發(fā)現(xiàn)仍然都沒有滿足的結束條件,然后將得到的合格數(shù)據(jù)進行下一次循環(huán),第三輪篩選結果如表3所示。
表3 第三輪篩選實驗結果數(shù)據(jù)
表4 第四輪篩選實驗結果數(shù)據(jù)
在進行紅外線測距模塊本身的測距的線性化調試后,可以明確到測量的結果和距離是趨近線性的,然后利用所得的數(shù)據(jù)進行線性回歸的實驗來擬合得到剩余飼料量和距離的實際關系。
以飼料倒進去桶內的飼料不再漏出為基礎實驗起點,每次投入700 g豬飼料為梯度,一共進行了7次的實驗。每次試驗都首先順著儀器管道倒入飼料,飼料在桶內會堆積起來,分別讀取此時4個不同傳感器的數(shù)據(jù),取平均值。為了得到實際的高度,利用工具將桶內的飼料水平鋪開,然后,取長尺垂直伸入桶內,測量飼料上平面到桶上端的距離。數(shù)據(jù)結果如表5所示。
表5 殘余飼料的數(shù)據(jù)曲線擬合數(shù)據(jù)
利用實際的高度值和剩余飼料質量值進行回歸分析,得到分析結果如表6所示。
表6 回歸分析
由上面得到的實際高度值和剩余飼料質量的值呈現(xiàn)線性相關性,而且P≤0.01,說明結果有顯著的統(tǒng)計學意義,得到關系式:,其中為剩余的飼料量,為實際的高度值。
對于實際測量為271 mm的高度,實驗采用單一紅外傳感器進行10次重復實驗,獲得10次返回的數(shù)據(jù)(表7)。總體的樣本數(shù)為10,小于30,而且獲得的隨機數(shù)據(jù)在實驗中呈現(xiàn)正態(tài),滿足使用t檢驗的條件。將獲得的數(shù)據(jù)代入excel進行單樣本的t檢驗,得到表8。
表7 10次重復測量的實驗結果數(shù)據(jù) mm
表8 t檢驗結果
代入數(shù)據(jù)可以得到表9。
表9 精度分析表
利用上述實驗數(shù)據(jù),對比多個傳感器與實際值的誤差程度,上述實驗也說明了由一個傳感器測量距離得到的數(shù)據(jù)具有穩(wěn)定性,每次取儀器穩(wěn)定后得到的返回值,使其具有代表性,來和實際值進行比較。得到公式為,其中為相對質量誤差,為返回平均值代入擬合關系式的值和實際質量的差,相對高度的誤差絕對值是類似的,公式為,其中為相對質量誤差,為返回的高度平均值和實際高度的差(表10)。
表10 各高度精度分析表
通過發(fā)現(xiàn)分析發(fā)現(xiàn)實際高度和返回的平均值線性化程度很高,發(fā)現(xiàn)實際值和返回來的平均值存在的誤差除個別值外整體接近線性,對返回的平均值和實際高度值進行回歸分析,得到表11。
表11 平均值和實際高度值的回歸分析
4個傳感器傳回來的值可以利用系數(shù)矯正,盡可能讓反饋回來的平均值逼近實際的高度值,減少相對質量的誤差,利用上述的系數(shù)重新矯正,通過關系式得到高度數(shù)據(jù)如表12所示。
表12 矯正值表 mm
再將矯正后的均值和實際高度值進行成對樣本均值的t檢驗得到表13。
表13 矯正后均值和實際高度的t檢驗
雙尾概率P>0.05,說明矯正后的數(shù)據(jù)和實際高度值差異不顯著,為了得到矯正后的效果,再次分析矯正后的質量精度,把矯正后的均值重新代入到上述關系式,得到表14。
結果表明,在實驗范圍內,相對質量誤差的絕對值都小于等于10%,說明總體的下料精度不小于90%,總體系統(tǒng)穩(wěn)定性好,整體反饋數(shù)據(jù)精度通過矯正后的精度得到了提升,而最后得到的關系式為,其中為剩余飼料的質量值,為由4個傳感器構成的系統(tǒng)返回的平均值。
(1)針對紅外傳感部分噪聲較大的問題也利用肖維涅算法將數(shù)據(jù)控制在合理的數(shù)據(jù)范圍,最后針對同一高度進行10次重復測量得到重復實驗結果,來衡量算法控制的誤差程度。根據(jù)上述表(表1-表14),得到最大相對誤差為1.845%,變異系數(shù)為3.306%,說明單一傳感器反饋的精度不小于98%,篩選得到的數(shù)據(jù)和實際值存在的差異很小,穩(wěn)定性高。
表14 矯正后誤差
(2)針對紅外傳感部分的突出問題做出了實驗和引出了相關的方法解決,也擬合出了返回的數(shù)據(jù)高度和剩余飼料質量的對應關系,得到線性回歸方程:,總體下料精度不小于90%,說明非接觸式檢測飼料殘留飼料量的效果良好。