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