劉忠超, 范偉強(qiáng), 董亞朋, 何東健
(1.南陽理工學(xué)院電子與電氣工程學(xué)院,河南南陽 473004; 2.西北農(nóng)林科技大學(xué)機(jī)械與電子工程學(xué)院,陜西楊凌 712100;3.中國礦業(yè)大學(xué)(北京)機(jī)電與信息工程學(xué)院,北京 100083)
奶牛作為人類食物供應(yīng)鏈的重要來源之一,養(yǎng)殖成本高,技術(shù)復(fù)雜?!笆濉币詠?,我國奶牛養(yǎng)殖業(yè)發(fā)展迅速,奶牛養(yǎng)殖規(guī)?;M(jìn)程日益加速,安全、高產(chǎn)、高效成為奶牛養(yǎng)殖的目標(biāo),這必然對牧場科學(xué)生產(chǎn)和高效管理等方面提出更高要求。在逐步向現(xiàn)代精準(zhǔn)養(yǎng)殖生產(chǎn)方式轉(zhuǎn)變過程中,奶牛的發(fā)情狀況倍受關(guān)注,發(fā)情監(jiān)測在牛群繁殖管理中具有重要地位,及時發(fā)現(xiàn)奶牛發(fā)情有利于奶牛的及時受孕、產(chǎn)犢并提高泌乳期[1]。
奶牛發(fā)情狀態(tài)通常會由各項生理參數(shù)反映,其中最具有代表性的生理體征參數(shù)是體溫和運(yùn)動量。在我國大部分奶牛場,奶牛發(fā)情是靠奶牛飼養(yǎng)管理員觀察發(fā)現(xiàn),再依靠經(jīng)驗(yàn)進(jìn)行判斷。單靠管理人員觀察及時發(fā)現(xiàn)奶牛發(fā)情非常困難,這種判斷方法僅適用于小規(guī)模的奶牛養(yǎng)殖,不適合較大規(guī)模、集約化的奶牛場[2]。因此把信息技術(shù)引入奶牛養(yǎng)殖,用電子傳感器監(jiān)測奶牛的發(fā)情體征,采集、記錄現(xiàn)場奶牛個體的發(fā)情體征(體溫、活動量),準(zhǔn)確判斷奶牛發(fā)情時間,充分發(fā)揮良種奶牛的繁殖潛力,已經(jīng)成為提升我國奶業(yè)綜合生產(chǎn)能力、提高牛奶質(zhì)量安全水平的重要手段[3]。本研究基于ZigBee技術(shù)、無線傳感器網(wǎng)絡(luò)(WSN)和嵌入式技術(shù),構(gòu)建基于物聯(lián)網(wǎng)和云端的低成本奶牛發(fā)情體征監(jiān)測系統(tǒng),旨在為幫助養(yǎng)殖人員及時掌握奶牛的發(fā)情和健康狀況提供依據(jù)。
奶牛發(fā)情監(jiān)測系統(tǒng)結(jié)構(gòu)如圖1所示。該系統(tǒng)主要由發(fā)情體征采集部分、STM32主控中心、數(shù)據(jù)傳輸部分、上位機(jī)PC監(jiān)測系統(tǒng)和云服務(wù)器平臺構(gòu)成。發(fā)情體征采集部分主要由ZigBee無線傳感器網(wǎng)絡(luò)構(gòu)成,該無線傳感器網(wǎng)絡(luò)由帶ZigBee路由器的終端節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)組成[4]。其中終端節(jié)點(diǎn)由非接觸式溫度傳感器、三軸加速度計和ZigBee無線模塊組成,主要實(shí)現(xiàn)奶牛發(fā)情體征數(shù)據(jù)的采集,采集好的數(shù)據(jù)通過無線網(wǎng)絡(luò)傳送給協(xié)調(diào)器節(jié)點(diǎn),協(xié)調(diào)器節(jié)點(diǎn)再將收到的多頭奶牛發(fā)送來的數(shù)據(jù)整理后傳送至STM32主控中心。主控中心主要實(shí)現(xiàn)對協(xié)調(diào)器傳送來的數(shù)據(jù)進(jìn)行初步處理封裝,最終通過RS-485總線傳輸?shù)缴衔粰C(jī)PC監(jiān)測系統(tǒng)。同時在上位機(jī)PC監(jiān)測系統(tǒng)將發(fā)情體征數(shù)據(jù)傳輸至云服務(wù)器平臺,可以通過網(wǎng)絡(luò)隨時隨地實(shí)時監(jiān)測奶牛發(fā)情體征參數(shù)。
奶牛發(fā)情體征采集節(jié)點(diǎn)硬件主要由奶牛體溫采集、奶牛運(yùn)動量采集、2.4 G無線發(fā)送和采集節(jié)點(diǎn)供電4個部分組成,其硬件結(jié)構(gòu)如圖2所示。
2.1.1 無線模塊 ZigBee是基于IEEE 802.15.4通信協(xié)議的局域無線網(wǎng)絡(luò)通信技術(shù),功耗和成本較低,數(shù)據(jù)傳輸速率為0~250 kB/s。CC2530F256芯片是TI公司基于2.4 G無線局域網(wǎng)絡(luò)收發(fā)的ZigBee產(chǎn)品。CC2530F256芯片完全兼容IEEE 802.15.4無線通信協(xié)議,內(nèi)置IR發(fā)生電路,有超低功耗的特點(diǎn),內(nèi)置增強(qiáng)型MCS-8051內(nèi)核[5]。選用CC2530F256作為ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)的核心處理器,可以提高系統(tǒng)的可靠性并降低節(jié)點(diǎn)功耗。
2.1.2 體溫采集模塊 非接觸式測溫通過監(jiān)測物體表面發(fā)射的能量測定物體溫度。與奶牛傳統(tǒng)直腸測溫相比,紅外非接觸式測溫技術(shù)具有速度快、測溫范圍寬、不受時間限制等優(yōu)勢[6-7]。采用MLX90614ESF非接觸式溫度傳感器來采集奶牛體溫,不需要直接接觸奶牛,通過該溫度傳感器可以得到與奶牛體溫正相關(guān)的電壓信號,經(jīng)過量程轉(zhuǎn)換,得到實(shí)際溫度值。對外兼容兩線制SMBus數(shù)字接口和客戶自行定制的10位PWM數(shù)據(jù)連續(xù)讀取接口。因?yàn)镃C2530不支持硬件SMBus總線,所以采用CC2530的P1_0和P1_2普通I/O口通過軟件模擬SMBus總線協(xié)議,實(shí)現(xiàn)ZigBee讀取溫度傳感器采集的溫度值。溫度傳感器與ZigBee接線如圖3所示。
2.1.3 運(yùn)動量采集模塊 ADXL345三軸加速度計傳感器內(nèi)置測量范圍高達(dá)±16g的高精度運(yùn)動傳感器、數(shù)字濾波器、分辨率高達(dá)13 bit的ADC模塊、32位FIFO等片上資源。ADXL345三軸加速度計采用SPI總線或者I2C總線接口與外界設(shè)備通信,以16位二進(jìn)制補(bǔ)碼的格式輸出數(shù)據(jù)[8]。在DATA_FORMAT寄存器(地址0x31)中配置選用I2C總線或SPI總線。ADXL345三軸加速度計采用I2C總線與CC2530芯片通信,ADXL345三軸加速度計的CS引腳拉高至供電電壓,ADXL345處于I2C通信模式,使用采集節(jié)點(diǎn)CC2530的 P0_0、P0_2模擬I2C總線讀取加速度數(shù)據(jù)。加速度計與ZigBee接線如圖4所示。
2.1.4 采集節(jié)點(diǎn)電源 采集節(jié)點(diǎn)模塊安裝在奶牛身上來獲取奶牛的體溫和運(yùn)動量,選用容量大、體積小、安全性好、輸出電壓穩(wěn)定的3.7 V/300 mAh鋰電池對采集節(jié)點(diǎn)供電。同時因?yàn)閆igBee、MLX90614ESF紅外溫度傳感器和ADXL345三軸加速度計等高速數(shù)字器件,需要穩(wěn)定的3.3 V直流電源供電,所以采用壓差低、線性度好、輸出電流大的MIC5219-3.3線性穩(wěn)壓芯片。將電池輸出電壓穩(wěn)定到3.3 V為采集節(jié)點(diǎn)供電,如圖5所示。
奶牛發(fā)情體征數(shù)據(jù)的接收終端由協(xié)調(diào)器和STM32單片機(jī)組成,通過協(xié)調(diào)器控制每個采集節(jié)點(diǎn)啟動和數(shù)據(jù)發(fā)送。協(xié)調(diào)器還作為數(shù)據(jù)的接收端,接收各節(jié)點(diǎn)的無線信號,通過識別設(shè)備地址分辨每頭牛的信息。最后協(xié)調(diào)器通過串口把數(shù)據(jù)傳輸?shù)絊TM32單片機(jī)中,單片機(jī)接收到的數(shù)據(jù)分別是奶牛體溫、運(yùn)動量,對數(shù)據(jù)進(jìn)行初步處理,并通過RS-485總線將奶牛發(fā)情體征參數(shù)上傳至上位機(jī)。接收終端主要由發(fā)情體征數(shù)據(jù)協(xié)調(diào)器無線接收、STM32數(shù)據(jù)處理、RS-485傳輸總線以及終端電源這4個部分組成。
2.2.1 STM32控制器 STM32是由ST公司研制的基于ARM的Contex-M3內(nèi)核的32 bit微控制器,采用主流的馮·諾依曼硬件結(jié)構(gòu),有豐富的片上資源[9]。采用STM32F1系列單片機(jī)中的STM32F103RCT6型號作為協(xié)調(diào)器接收數(shù)據(jù)的控制處理核心。
2.2.2 RS-485現(xiàn)場總線 奶牛養(yǎng)殖區(qū)距離監(jiān)測室較遠(yuǎn),采用TTL電平或RS-232通信,極易造成數(shù)據(jù)丟失、通信失敗、鏈接中斷等問題,所以采用MAX3485芯片將STM32單片機(jī)UART1發(fā)送的TTL信號數(shù)據(jù)轉(zhuǎn)為負(fù)邏輯電平的485信號數(shù)據(jù),可以實(shí)現(xiàn)1 200 m的遠(yuǎn)距離數(shù)據(jù)傳送[10]。RS-485電平轉(zhuǎn)換電路如圖6所示。
2.2.3 數(shù)據(jù)接收終端電源 由于多個采集節(jié)點(diǎn)向協(xié)調(diào)器發(fā)送數(shù)據(jù)的時間是隨機(jī)的,使協(xié)調(diào)器需要時刻保持等待接收數(shù)據(jù)的狀態(tài)。另外,協(xié)調(diào)器是固定在奶牛養(yǎng)殖棚頂?shù)姆且苿邮皆O(shè)備,所以協(xié)調(diào)器可以選用市電供電。采用輸出DC5V/1 A的開關(guān)電源作為主電源。同時因?yàn)镾TM32、ZigBee、MAX485芯片需要穩(wěn)定的3.3 V直流電源,所以采用MIC5219-3.3低壓差線性穩(wěn)壓芯片將開關(guān)電源輸出的帶有開關(guān)頻率的5 V不穩(wěn)定電壓,轉(zhuǎn)換為3.3 V穩(wěn)定線性電壓為協(xié)調(diào)器供電。
下位機(jī)采集系統(tǒng)軟件主要由發(fā)情體征采集節(jié)點(diǎn)程序和協(xié)調(diào)器程序組成。采集節(jié)點(diǎn)用CC2530控制MLX9014ESF非接觸式紅外溫度傳感器和ADXL345三軸加速度計。通過初始化傳感器配置傳感器的基本模式,進(jìn)行操作系統(tǒng)初始化和任務(wù)登記,測量溫度為任務(wù)1,測量運(yùn)動量為任務(wù)2,無線發(fā)送溫度值、計步數(shù)據(jù)和奶牛編號為任務(wù)3,然后進(jìn)行任務(wù)輪詢,當(dāng)有任務(wù)觸發(fā)任務(wù)中斷時,處理任務(wù),同時無線發(fā)送任務(wù)為最優(yōu)先級任務(wù),計步任務(wù)優(yōu)先級次之,溫度采集任務(wù)優(yōu)先級最低[11-12]。體征采集節(jié)點(diǎn)程序流程如圖7所示。
協(xié)調(diào)器模塊采用CC2530接收奶牛體溫和運(yùn)動量數(shù)據(jù),通過CC2530初始化任務(wù)并做任務(wù)登記,然后輪詢?nèi)蝿?wù),有任務(wù)觸發(fā)中斷時,判斷發(fā)送方式為點(diǎn)播、組播或廣播方式發(fā)送,接收數(shù)據(jù)。通過串口發(fā)送給STM32單片機(jī)初步濾波處理,STM32單片機(jī)初始化串口UART0、UART1,等待UART0接收中斷,當(dāng)有中斷觸發(fā)時,接收并進(jìn)行校驗(yàn)數(shù)據(jù),校驗(yàn)通過保存數(shù)據(jù),再通過五點(diǎn)滑動濾波算法對數(shù)據(jù)初步濾波,通過UART1和外接的RS-485現(xiàn)場總線發(fā)送給上位PC機(jī)。
上位機(jī)采用的方案是用C#語言在Visual Studio 2013軟件的編程環(huán)境中開發(fā)奶牛發(fā)情監(jiān)測系統(tǒng)。上位機(jī)通過RS-485 轉(zhuǎn)USB接口與采集終端的STM32F103單片機(jī)連接并進(jìn)行通信。把奶牛體溫和運(yùn)動量數(shù)據(jù)顯示到實(shí)時曲線上的同時,還要把采集到的數(shù)據(jù)保存到文本文檔,以便查看數(shù)據(jù)的歷史記錄。系統(tǒng)不僅可以在上位機(jī)上監(jiān)測發(fā)情體征數(shù)據(jù),還可以通過HTTP協(xié)議中的POST方法把數(shù)據(jù)上傳到Y(jié)eelink云服務(wù)器平臺,并可在手機(jī)客戶端和網(wǎng)頁上進(jìn)行實(shí)時監(jiān)測[13]。上位機(jī)程序流程如圖8所示。
為了測試奶牛發(fā)情體征監(jiān)測系統(tǒng),2017年5月在河南省南陽市某奶牛場進(jìn)行了設(shè)備采集試驗(yàn)。選擇編號為1的奶牛進(jìn)行測試,其體溫和步數(shù)的監(jiān)測歷史曲線如圖9所示。
PC端監(jiān)測平臺還可以通過HTTP協(xié)議把奶牛發(fā)情體征數(shù)據(jù)上傳到Y(jié)eelink云端,PC客戶端會給出回應(yīng),識別客戶端狀態(tài)碼,判斷是否上傳成功,若文本框狀態(tài)如圖10所示,則上傳數(shù)據(jù)成功。
通過移動平臺和PC機(jī)接入Yeelink云端監(jiān)測的奶牛體征步數(shù)曲線如圖11所示。
本研究提出并設(shè)計了基于物聯(lián)網(wǎng)和云端的奶牛發(fā)情體征監(jiān)測系統(tǒng),該監(jiān)測系統(tǒng)支持無線網(wǎng)絡(luò)傳輸和云端平臺遠(yuǎn)程實(shí)時監(jiān)測,簡單實(shí)用,是奶牛養(yǎng)殖戶監(jiān)測奶牛發(fā)情狀態(tài)快捷有效的方法;設(shè)計了非接觸式、低功耗的奶牛發(fā)情體征監(jiān)測模塊,實(shí)現(xiàn)了奶牛體溫和步數(shù)的無線傳輸;開發(fā)了奶牛發(fā)情體征監(jiān)測系統(tǒng),實(shí)現(xiàn)了發(fā)情體征移動平臺實(shí)時遠(yuǎn)程監(jiān)測、查詢以及云端數(shù)據(jù)上傳。在本研究基礎(chǔ)上,后續(xù)可以在發(fā)情體征數(shù)據(jù)獲取之后加入決策系統(tǒng),以便奶牛飼養(yǎng)人員全面掌控奶牛的發(fā)情狀況,實(shí)現(xiàn)智能化的奶牛發(fā)情監(jiān)控。