劉忠超,范靈燕
(南陽理工學院智能制造學院,河南南陽,473004)
近年來,我國奶牛養(yǎng)殖業(yè)在國家產(chǎn)業(yè)政策支持下得到了快速的發(fā)展,已經(jīng)從家庭散養(yǎng)戶向規(guī)?;B(yǎng)殖轉(zhuǎn)變,因此對奶牛養(yǎng)殖的智能化管理需求迫切[1-2]。同時,奶牛發(fā)情的及時有效檢測能夠提高奶牛懷孕率,提高奶牛養(yǎng)殖的經(jīng)濟效益。而奶牛發(fā)情時運動量明顯增加,接受其他牛爬跨并追逐爬跨其他牛[3],因此活動量是判斷奶牛發(fā)情的重要依據(jù)之一,及時地觀察檢測奶牛的活動量變化,有助于對奶牛的發(fā)情及健康狀態(tài)做出正確判斷[4]。
傳統(tǒng)奶牛發(fā)情檢測一般采用人工觀察法,該方法費時費力且勞動強度大,同時人工觀測不及時易造成漏檢,不能做到對奶牛發(fā)情狀態(tài)的實時監(jiān)測[5]。近年來,國內(nèi)外學者研究用計步器實現(xiàn)奶牛發(fā)情的自動檢測,以色列阿菲金(Afimilk)公司的牧場管理系統(tǒng)通過計步器監(jiān)測奶牛活動量來判斷發(fā)情[6]。德國韋斯伐利亞(DairyPlan C21系統(tǒng))與瑞典利拉伐(ALPRO系統(tǒng))通過將計步器安裝在奶牛腿腕部或佩戴于奶牛頸部,來實時監(jiān)測上傳奶牛活動量信息[7]。國內(nèi)學者楊勇[8]通過自主研發(fā)的奶牛計步器采集奶?;顒恿?,是國內(nèi)該領(lǐng)域較早研究的學者。蔣曉新等[9]用計步器對荷斯坦奶牛進行發(fā)情鑒定,與人工觀察相比發(fā)情檢出率提高了24.01%。柳平增等[10]基于TI公司MSP430微控制器,設(shè)計了計步器來監(jiān)測奶牛發(fā)情。胡劍文等采用振動傳感器,基于ARM9設(shè)計了奶牛運動量無線采集系統(tǒng),但系統(tǒng)采用點對多點的星狀無線通信方式,通信距離較短,不適用大型的奶牛養(yǎng)殖場。
伴隨著物聯(lián)網(wǎng)、無線通信技術(shù)的發(fā)展,對奶牛活動量的智能化監(jiān)測是發(fā)展的必然趨勢。因此,提出了一種基于STM32和OneNet云平臺的奶牛計步器系統(tǒng),設(shè)計了奶牛計步器采集終端,借助LabVIEW開發(fā)了奶牛計步器上位機監(jiān)控系統(tǒng),實現(xiàn)了對奶牛活動量的實時、快速、準確監(jiān)測。
為了實現(xiàn)奶?;顒恿康臒o線實時自動監(jiān)測,奶牛計步器系統(tǒng)主要由五個功能模塊組成,即STM32主控器最小系統(tǒng)、活動量檢測單元、WIFI無線傳輸系統(tǒng)、LabVIEW遠程上位機監(jiān)控單元以及OLED現(xiàn)場顯示單元。STM32主控器完成活動量數(shù)據(jù)接收、處理以及OLED現(xiàn)場顯示單元的顯示控制,活動量檢測單元主要由加速度傳感器ADXL345完成奶牛活動量的檢測。WIFI無線傳輸系統(tǒng)完成活動量數(shù)據(jù)的OneNet云平臺發(fā)送。遠程監(jiān)控單元主要是由基于LabVIEW開發(fā)的奶牛計步器上位機監(jiān)控系統(tǒng)。系統(tǒng)總體設(shè)計框架如圖1所示。
圖1 奶牛計步器系統(tǒng)總體框圖
為了避免奶?;顒恿勘O(jiān)測過程中繁雜的布線問題,系統(tǒng)采用WIFI對計步器系統(tǒng)進行無線組網(wǎng)。WIFI技術(shù)覆蓋范圍廣、信號傳輸穩(wěn)定且速度快、支持的智能終端種類多,傳輸距離在10~300 m,在傳輸距離和速度上能夠滿足系統(tǒng)設(shè)計要求。
奶牛計步器檢測終端主要由主控模塊STM32最小系統(tǒng)、ADXL345加速度傳感器、ESP8266 WIFI模塊、OLED顯示單元以及電源模塊組成。
奶牛計步器終端控制芯片選擇STM32F103C8T6,其工作電壓為2~3.6 V,1個16位高級控制定時器,3個16位通用定時器,有2組晶振電路,分別為單片機和RTC提供時鐘源。最小系統(tǒng)主要由電源電路、時鐘電路、BOOT啟動電路、調(diào)試下載電路、復位電路組成,設(shè)計用到7個引腳用于連接外設(shè),PA0和PA1分別連接OLED顯示屏的時鐘線和數(shù)據(jù)線,PA2、PA3以及PB1分別連接WIFI模塊的RXD、RST和TXD,PA4和PA5分別連接加速度傳感器的時鐘線和數(shù)據(jù)線。STM32F103C8T6單片機與外部接口電路原理圖如圖2所示。
圖2 STM32單片機接口原理圖
為了使操作人員便于現(xiàn)場觀察奶牛運動情況,系統(tǒng)采用0.96寸OLED顯示屏對奶牛活動量進行就地現(xiàn)場顯示。該顯示屏具有四個引腳,分別為GND、VCC、SCL、SDA。該顯示屏支持的電壓范圍為3~5.5 V,其中采用IIC通信方式與STM32通信,其中SCL為IIC通信時鐘線,SDA為數(shù)據(jù)線。
加速度傳感器ADXL345是一款超低功耗的3軸加速度計,具有分辨率高、電路結(jié)構(gòu)簡單等特點[11],該傳感器體積小而輕薄,不會影響奶牛的正常活動,可以滿足奶牛養(yǎng)殖環(huán)境的使用條件,同時能夠滿足系統(tǒng)所需的測量范圍。
ADXL345工作的通訊方式為IIC協(xié)議,只需連接傳感器的四個引腳即可工作,分別是SCL時鐘線、SDA數(shù)據(jù)線、3V3和GND,可以方便地與主控器進行通信。
在穿戴式電子設(shè)計與物聯(lián)網(wǎng)開發(fā)中,ESP8266具有極高的性價比,可以靈活地配置所需的WIFI數(shù)據(jù)傳輸方案,通過配置可以獲得最低功耗的機器狀態(tài)[12]。因此系統(tǒng)WIFI模塊選用ESP8266-01,ESP8266-01采用串口與主控設(shè)備STM32進行通信。
計步器外殼封裝借助于Solid Edge 2020軟件對奶牛計步器節(jié)點進行3D建模,結(jié)合PCB的大小以及加速度傳感器、電池、OLED屏的位置等因素,制作合適外殼封裝,主要由外殼底部和外殼頂部組成。選擇無毒、無味、柔軟的高密度聚乙烯材料(High density polyethylene,HDPE)來封裝傳感器[13],對奶牛健康和應激反應影響小。節(jié)點終端外殼由3D打印而成,把OLED屏固定至頂部,把焊接好的PCB板固定至底部,連接對應引腳,裝好電池以及固定腕帶進行計步器封裝。
系統(tǒng)軟件主要由系統(tǒng)主程序、ADXL345加速度傳感器程序、ESP8266與OneNet云平臺通信以及LabVIEW計步器上位機監(jiān)控系統(tǒng)四部分組成,選擇Keil uVision5作為系統(tǒng)軟件開發(fā)平臺。
系統(tǒng)主程序流程圖如圖3所示。
圖3 系統(tǒng)主程序流程圖
系統(tǒng)主程序首先對單片機各個引腳功能進行初始化,定義相關(guān)的數(shù)據(jù)變量,在外設(shè)模塊中調(diào)用相應的引腳,隨后完成外設(shè)模塊OLED顯示屏、ADXL345和串口的初始化,并對ESP8266-01模塊進行配置,開啟服務器熱點,使WIFI模塊連接相應的網(wǎng)絡(luò),同時使無線網(wǎng)絡(luò)接入云平臺,直至接入成功,延時設(shè)定時間后讀取加速度傳感器ADXL345數(shù)值,對數(shù)據(jù)進行處理后,將讀取到的加速度數(shù)據(jù)上傳至云平臺并同時在顯示屏顯示。
為了檢測奶牛活動量的大小,只需實時顯示當前步數(shù)和運動距離。因此在設(shè)計計步器硬件電路時,為了最大限度降低系統(tǒng)的整體功耗,提高計步器運行效率,ADXL345加速度采用定時器中斷服務函數(shù)來檢測奶牛的活動情況,減少了三個軸數(shù)據(jù)檢測的工作,在數(shù)據(jù)處理和數(shù)據(jù)傳輸上都得到了較好地優(yōu)化,提高了處理的速度。ADXL345加速度傳感器數(shù)據(jù)采用IIC的傳輸模式,首先通過寫功能配置完相應的寄存器,完成ADXL345傳感器的初始化。初始化配置成功后直接讀取當前值,通過讀取數(shù)據(jù)線狀態(tài),定義數(shù)據(jù)緩沖區(qū),存儲相應X、Y、Z三軸的數(shù)據(jù)。然后進行讀位操作,讀取GPIO引腳,配置引腳的輸入輸出模式,根據(jù)IIC傳輸時序圖,實現(xiàn)加速度數(shù)據(jù)的有效傳輸。程序流程如圖4所示。
圖4 ADXL345加速度處理流程圖
系統(tǒng)WIFI模塊與云平臺之間的數(shù)據(jù)發(fā)送采用MQTT協(xié)議。WIFI模塊要想實現(xiàn)加速度數(shù)據(jù)的接收并發(fā)送到OneNet云平臺,需要對其進行相應的配置,首先配置與上傳服務器有關(guān)的數(shù)據(jù)中心域名或IP地址、網(wǎng)絡(luò)數(shù)據(jù)中心端口、產(chǎn)品ID、鑒權(quán)信息、設(shè)備ID和網(wǎng)絡(luò)協(xié)議等。然后初始化WIFI模塊,發(fā)送AT指令配置工作模式,設(shè)置串口波特率,清空WIFI模塊的數(shù)據(jù)緩存,將數(shù)據(jù)通過串口發(fā)送至WIFI模塊,檢查發(fā)送的命令,若為0表示命令發(fā)送成功,最后將數(shù)據(jù)發(fā)送至云平臺,利用WIFI模塊連接服務器熱點可以得到相應的數(shù)據(jù)。利用WIFI模塊實現(xiàn)上傳云平臺功能的流程圖如圖5所示。
圖5 WIFI模塊實現(xiàn)上傳云平臺功能流程圖
系統(tǒng)采用虛擬儀器(VI)領(lǐng)域中最具有代表性的圖形化開發(fā)平臺LabVIEW作為上位機開發(fā)軟件,LabVIEW封裝程度高,基本上不用寫程序代碼,編寫開發(fā)程序速度快[14]。根據(jù)LabVIEW程序設(shè)計的模塊化思想,設(shè)計了奶牛運動信息上位機監(jiān)控系統(tǒng),主要包括用戶登錄、云平臺數(shù)據(jù)獲取、數(shù)據(jù)顯示和監(jiān)控以及報表等功能模塊[15]。
1) 用戶登錄管理界面。用戶登錄是數(shù)據(jù)管理的重要部分,也是監(jiān)控界面設(shè)計的基礎(chǔ),該監(jiān)控系統(tǒng)須提供滿足登錄條件的信息,才能進入系統(tǒng)進行操作。在程序VI界面內(nèi)設(shè)置相應的用戶名和密碼,操作人員輸入信息后,首先會判斷信息是否正確,當用戶名和密碼輸入無誤后可以進入監(jiān)控主界面。
2) 數(shù)據(jù)顯示及監(jiān)控界面。LabVIEW上位機監(jiān)控界面如圖6所示,主要功能為顯示奶牛運動數(shù)據(jù)等相關(guān)信息。根據(jù)設(shè)計要求,利用從OneNet云平臺獲取的奶牛計步運動數(shù)據(jù),通過截取字符串控件,提取相關(guān)變量。為了界面顯示直觀具有可讀性,上位機監(jiān)控頁面內(nèi)添加了運動儀表,可以觀察儀表盤指針的動態(tài)變化,從而將對應奶牛運動數(shù)據(jù)通過儀表直觀顯示出來,并通過字符串顯示控件顯示相應的數(shù)據(jù)。
圖6 奶牛運動信息監(jiān)控界面
3) 數(shù)據(jù)存取及報表模塊。為了方便用戶調(diào)出歷史數(shù)據(jù)值進行查閱研究和分析,采用將每次記錄的數(shù)據(jù)以EXCEL形式保存到數(shù)據(jù)存放文件夾,每個表格對應不同編號的奶牛運動信息[16]。用戶運行程序之前需選擇事先創(chuàng)建好的EXCEL表格,點擊運行,登錄用戶名和密碼之后,會彈出相應的表格并顯示最小化。在運行過程中,點擊停止按鈕,表格會自動保存相應的運動數(shù)據(jù)。
設(shè)計3個計步器節(jié)點測試系統(tǒng)運行的穩(wěn)定性和活動量檢測的準確性。為了實時觀察奶牛的運動情況,便于分析奶牛運動變化情況,上位機系統(tǒng)添加了實時運動曲線,隨著時間的變化,根據(jù)曲線的走向可以觀察到某個時間段奶牛運動量的變化,可以更好地便于工作人員對奶牛運動變化量進行分析,上位機實時監(jiān)控曲線如圖7所示。
圖7 奶牛活動量上位機實時監(jiān)控曲線
由于奶牛發(fā)情狀態(tài)需要對比分析歷史活動量,系統(tǒng)開發(fā)了數(shù)據(jù)記錄系統(tǒng),通過獲取歷史數(shù)據(jù)可以清楚地觀察到奶牛運動數(shù)據(jù)的詳細變化,每個計步器有對應的編號、當前運動時間以及運動信息等。
對計步器系統(tǒng)檢測奶牛運動的準確性進行測試,通過人工觀察計數(shù)實際運動步數(shù)與計步器系統(tǒng)檢測步數(shù)進行對比,以人工觀察實際運動每100步為一次循環(huán)測試,共測試5次,試驗結(jié)果如表1所示。
表1 計步器系統(tǒng)檢測準確率
由測試結(jié)果可以看出,開發(fā)的奶牛計步器系統(tǒng)計步精確度較高,準確率可達97%以上,OneNet云平臺端成功接收到ESP8266 WIFI下位機發(fā)送的運動數(shù)據(jù),數(shù)據(jù)傳輸穩(wěn)定,能夠?qū)崿F(xiàn)對奶?;顒恿康膶崟r、遠程、無線監(jiān)測,滿足了奶?;顒恿考鞍l(fā)情檢測的需要。
1) 基于STM32和OneNet物聯(lián)網(wǎng)云平臺,開發(fā)設(shè)計了奶牛計步器系統(tǒng),系統(tǒng)設(shè)計結(jié)構(gòu)合理,固定方便,奶?;顒恿繖z測準確率達97%,能夠有效提高奶牛活動量檢測的便捷性,具有一定的推廣應用價值。
2) 基于LabVIEW開發(fā)了奶牛計步器上位機監(jiān)控系統(tǒng),系統(tǒng)運行穩(wěn)定,可以實現(xiàn)奶?;顒恿康臒o線、遠距離、實時監(jiān)測,提高了奶牛發(fā)情監(jiān)測的智能化水平,對畜牧領(lǐng)域其他動物的活動量監(jiān)測也具有一定的參考意義。