顏玉松,王元靖,何少鵬,肖 建
(1.南京郵電大學 自動化學院、人工智能學院,江蘇 南京 210023;2.南京郵電大學 集成電路科學與工程學院,江蘇 南京 210023)
豬肉作為中國人最喜愛的肉類之一,是人們日常生活中重要的肉類來源[1]。然而近些年豬肉價格的波動使得社會中出現了“吃不起豬肉”的聲音,究其原因是豬肉供給出現嚴重不足。與已實現農業(yè)現代化的發(fā)達國家相比,中國傳統(tǒng)農業(yè)生產存在資源利用率低、自動化和智能化程度不足等問題[2]。為了響應“感知中國”的物聯網發(fā)展戰(zhàn)略,“設施農業(yè)物聯網”就成了改善國內養(yǎng)豬現狀的關鍵措施[3]。
在豬場養(yǎng)殖過程中,種豬的身體健康狀況備受重視,體溫是表現動物健康狀況的最直接、最重要的參數[4]。此外,種豬感染一些疾病的最初跡象通常是發(fā)燒和運動減少[5],因此針對種豬體溫的實時監(jiān)測是必要的。目前國內外許多相關人員先后開展了針對種豬體溫實時監(jiān)測的相關實驗和研究。Wu Y等[6]提出以51單片機為主控,基于紅外測溫模塊對豬的體溫進行非接觸式測量。Krizanac等[7]采用帶有溫度探頭的氣管并將其插入豬呼吸道進行體溫測量,可以獲得更精確的體溫數據。以上兩種豬體溫測量方式雖然都在一定程度上減少了人力勞動、時間、成本等資源消耗,但都不具備遠程云端實時監(jiān)測種豬體溫的功能,無法做到疾病等緊急情況的提前預防。此外如果養(yǎng)豬場規(guī)模較大,種豬數量較多,應用這兩種方式仍需要消耗大量人工成本。針對遠程監(jiān)測豬體溫問題,胡宜敏等[8]提出一種基于Zigbee的豬體溫測量系統(tǒng),利用貼片式溫度傳感器采集種豬溫度數據并通過路由器和協(xié)調器等設備將數據上傳至Tomcat服務器,可供用戶遠程瀏覽數據。但Zigbee的衍射能力弱、穿墻能力差[9],在養(yǎng)豬場墻壁較多的復雜環(huán)境中使用效果較差。柏廣宇等[10]提出基于MLX90614和CC2430的母豬體溫實時監(jiān)測節(jié)點的系統(tǒng),通過MLX90614紅外傳感器輸出溫度信號,CC2430處理溫度信號并發(fā)送至網關。但這種方式的有效通信距離僅有30 m,遠遠不足以覆蓋大面積的養(yǎng)豬場規(guī)模,如果要實現全范圍覆蓋需要消耗大量的資源去搭建相關網絡,并且對通信系統(tǒng)的功耗和可靠性都增大了挑戰(zhàn)。
針對當前種豬體溫測量方法的局限性,該文研究了基于LoRa技術的低功耗通信網絡策略,設計了基于國產低功耗芯片的體溫數據測量和傳輸節(jié)點,并依靠阿里云服務器建立種豬體溫數據監(jiān)測網站,供用戶實時監(jiān)測和管理。該系統(tǒng)具有低成本、低功耗、低延遲、高精度、覆蓋范圍廣等優(yōu)勢,可應用于多種規(guī)模的養(yǎng)豬場,為種豬合理健康養(yǎng)殖提供自動化、智能化與科學化的解決方案,給未來種豬體溫監(jiān)測研究提供新的前進方向。
基于LoRa技術的低功耗種豬體溫云平臺監(jiān)測系統(tǒng)由溫度采集層、數據傳輸層和后臺應用層3個部分組成,系統(tǒng)總體架構如圖1所示。
圖1 系統(tǒng)總體架構
溫度采集層由若干個監(jiān)測節(jié)點組成,每個監(jiān)測節(jié)點對應一頭種豬。監(jiān)測節(jié)點會根據預先設定的運行方案進行工作,把采集的溫度數據和種豬編號按照特定協(xié)議同時發(fā)送給網關;網關利用4G網絡將數據轉發(fā)至服務器;服務器對數據進行解析并允許用戶通過PC端或移動端在線遠程訪問。
考慮到種豬配戴監(jiān)測設備過程中可能出現影響其正?;顒雍驮O備無法長時間正常工作的不良情況,系統(tǒng)設計過程中始終嚴格遵循體積小、低功耗的要求。每個獨立的監(jiān)測節(jié)點由國產LP5100低功耗芯片、ADT7320溫度傳感器、LoRa通信模塊和AN9520陶瓷天線組成(見圖2),具有種豬體溫數據采集、種豬個體編號和數據無限通信的功能。此外,電源選用容量為2 200 mAh,電壓為3.7 V的小體積鋰電池,滿足系統(tǒng)長時間的工作需求。
圖2 監(jiān)測節(jié)點硬件組成
ADT7320溫度傳感器與LP5100主控芯片通過SPI協(xié)議連接,主控芯片在獲取體溫數據后會根據預設的通信協(xié)議格式重新打包體溫數據和種豬編號并通過LoRa模塊定時發(fā)送數據到網關。
在監(jiān)測節(jié)點硬件設計中,溫度傳感器的選擇是至關重要的。本次選用的ADT7320溫度傳感器面積僅為4 mm×4 mm,大大節(jié)省了PCB板的空間。此外其具有±0.25℃的溫度精度和超低功耗的特性,在很大程度上確保了體溫數據的真實性,延長了系統(tǒng)工作時間,能夠滿足系統(tǒng)長時間精確測量種豬體溫的需求。此外,為了更好地控制ADT7320傳感器的使用時間以減少不必要的功耗,系統(tǒng)設計采用LP5100芯片實時控制帶使能端的TPS7A0230(見圖3)線性穩(wěn)壓器開啟和關斷的方案,對ADT7320(見圖4)傳感器的供電進行管理。
圖3 TPS7A0230電路圖
圖4 ADT7320電路圖
低功耗廣域網(Low Power Wide Area Network,LPWAN)技術是一種革命性的物聯網無線接入新技術,與Wi-Fi、藍牙、ZigBee等現有成熟商用的無線技術相比,具有遠距離、低功耗、低成本、覆蓋容量大等優(yōu)點[11],而該系統(tǒng)選用的LoRa技術更是LPWAN中發(fā)展比較快、相對比較成熟的技術[12],具有廣闊的應用場景。LoRa采用星型網絡架構,與網狀網絡架構相比,它是具有最低延遲、最簡單的網絡結構,因此設計人員可以最大程度地實現更長距離的通信與更低的功耗[13]。經過實際現場測試結果可知,即使是在復雜的多墻壁廠房環(huán)境內也可以實現遠距離、低功耗、低延時的數據無線傳輸。此外,系統(tǒng)還采用AN9520陶瓷天線來進一步優(yōu)化通信效果。這種陶瓷天線具有體積小、抗干擾能力強、高靈敏度等優(yōu)點,滿足系統(tǒng)總體設計需求。
系統(tǒng)軟件設計主要包括監(jiān)測節(jié)點溫度測量與數據通信設計、通信數據幀格式設計和網關服務器設計三個部分。
為了最大程度地降低功耗、延長系統(tǒng)使用壽命,系統(tǒng)以各模塊對應的睡眠或關斷模式為主要工作狀態(tài)[14]。在非測量周期內LP5100芯片進入睡眠狀態(tài),ADT7320因受TPS7A0230輸出影響而斷電關斷,LoRa則進入深度休眠模式,整個系統(tǒng)處于低功耗運行狀態(tài)。當進入測量周期時,LP5100芯片被喚醒進入正常工作狀態(tài)并恢復ADT7320供電,LP5100與ADT7320以SPI方式進行通信并獲取溫度數據,在數據打包完成后恢復LoRa正常工作狀態(tài)同時發(fā)送數據。測量周期和非測量周期是連續(xù)的,共同組成了監(jiān)測節(jié)點的整個工作過程。具體軟件流程如圖5所示。
圖5 單個監(jiān)測模塊軟件設計流程
由于LoRa網絡的星型拓撲結構是多對一的傳輸方式,即多個監(jiān)測節(jié)點向同一個網關節(jié)點發(fā)送數據。因此,為了區(qū)分不同種豬的體溫數據,需要對每頭種豬進行特殊編號,這就需要設計嚴謹有效的數據通信協(xié)議。
該系統(tǒng)的通信數據編碼選用ISO-8859-1格式。該編碼是單字節(jié)編碼,其編碼范圍是0x00-0xFF,可以用多位編碼代表種豬編號和一位編碼代表體溫數據,滿足系統(tǒng)表示和儲存多頭種豬編號和多組體溫數據的需求。使用ISO-8859-1編碼格式通信可以明顯縮短發(fā)送時間,減少發(fā)送功耗,保證數據傳輸的完整性,符合系統(tǒng)通信的整體要求。
待發(fā)送的數據由數據幀頭、種豬編號、若干個體溫數據和數據幀尾四部分組成。幀頭和幀尾是固定不變的,用于檢查待發(fā)送數據的完整性和識別接收數據的身份。種豬編號可由數字、字母或特殊符號組成,用于特殊標識種豬個體。由于系統(tǒng)采用多次體溫測量并同時發(fā)送的方案,因此待發(fā)送數據中應包含多個體溫數據,這些體溫數據按照時間順序依次排列。具體通信數據幀格式如表1所示。
表1 通信數據幀格式
LoRa網關與云平臺服務器設計主要包括了接收數據和數據儲存兩個部分,均在Eclipse IDE開發(fā)環(huán)境下使用Java語言開發(fā)。
(1)接收數據。LoRa網關采用TCP/IP通信協(xié)議。為了接收LoRa網關的數據,服務端采用基于Java Socket套接字編寫的數據接收軟件創(chuàng)建Socket套接字,監(jiān)聽服務器的約定端口是否有連接請求,雙方建立連接后通過打開連接到Socket的輸入/輸出流,按照一定的協(xié)議對Socket進行讀/寫,從而完成從LoRa網關接收數據。為了實現客戶端和服務端之間的持續(xù)連接,選擇使用多線程編程,通過死循環(huán)開啟Socket連接實現長連接,將一個客戶端連接單獨放到一個線程中處理消息的接收,直到接收到關閉連接指令結束線程。
(2)數據儲存。選用MySQL數據庫進行數據管理。使用Java的JDBC連接到數據庫,通過對接收到的信息進行解析,將信息分類存儲到數據庫中,方便信息管理和查詢。
服務端工作的主要流程如圖6所示。
圖6 服務端工作流程
系統(tǒng)實際在某養(yǎng)豬場進行試驗數據采集,隨機選用30頭身體狀況健康的種豬為試驗對象,試驗周期為5天。單個監(jiān)測節(jié)點實物圖如圖7所示。
圖7 監(jiān)測節(jié)點實物圖
Tabuaciri P等[15]研究豬的耳根、耳尖、眼睛和上頸部到臀部區(qū)域表面溫度與直腸溫度之間的關系并得出耳根表面溫度是最接近直腸溫度的區(qū)域。因此,為了采集更精準的溫度數據,系統(tǒng)選擇將監(jiān)測節(jié)點固定在種豬耳朵根部附近,使ADT7320溫度傳感器緊貼耳根位置。將LoRa網關安裝在廠房內的高處以減少通信過程中的墻壁等物體對信號的遮擋和屏蔽,增大通信傳輸距離。
系統(tǒng)按照每20 s采集一次體溫數據,每10 min發(fā)送一次數據的頻率進行工作。任意選擇3頭種豬作為監(jiān)測對象,隨機選取一天并將它們的體溫數據按種豬編號繪制,如圖8所示。限于篇幅關系,將數據顯示的時間單位改為每小時,每小時的體溫數據為該小時內的所有測量數據的平均值。
圖8 3頭種豬一天內體溫變化曲線
隨機選取一天內五個不連續(xù)的時間點對種豬進行人工測溫。將人工測溫數據與該系統(tǒng)測量數據進行對比,得到系統(tǒng)測量體溫的準確率,具體數值如表2所示。
從表2可以看出,系統(tǒng)測溫準確率穩(wěn)定在99%左右,可以準確、及時地反映出被測種豬的體溫變化情況。
表2 體溫測量結果對比
通信測試場所選擇在養(yǎng)豬場內部。為了方便測試,將系統(tǒng)采集與發(fā)送頻率分別設置為5 s測量一次和10 s發(fā)送一次,即10 s發(fā)送兩個體溫數據。選擇5個與LoRa網關相距不同的測試地點,每次測試時長為5 min即發(fā)送30次,測試結果如表3所示
表3 數據通信測試結果
從表3可以看出,該系統(tǒng)在150 m范圍內均可實現零誤差的高效率通信,后續(xù)仍可通過降低空速、提高發(fā)射功率等方式增大數據傳輸距離。
利用EMK8505+型號μA低功耗功率分析儀對系統(tǒng)整體功耗進行精確分析。分別測試以下四種情形:①監(jiān)測節(jié)點正常休眠狀態(tài);②單次體溫測量過程;③發(fā)送一次完整數據(該數據包含30個體溫數據、種豬編號等)過程;④監(jiān)測節(jié)點正常不間斷工作2.45小時。上述四種情形下的測試數據結果如表4所示。
表4 四種情形的功耗測試結果
情形①、②、③組成了監(jiān)測節(jié)點的基本工作內容。從表4可以看出,在監(jiān)測節(jié)點工作過程中情形③的功耗較高,這是由于一次性發(fā)送數據較多造成的,但發(fā)送持續(xù)時間較短且發(fā)送頻率不高所以對該系統(tǒng)而言不會造成太多的功耗浪費,即系統(tǒng)依舊可以保證長時間運行。
用戶可以使用PC端或移動端登錄云平臺監(jiān)測網站實時查看所有被監(jiān)測種豬的體溫數據,網站部分界面如圖9所示。
圖9 云平臺監(jiān)測網頁端顯示(溫度可視化部分)
網頁顯示單頭種豬體溫數據的變化情況,橫坐標為時間,縱坐標為體溫數據。用戶可以通過網頁左上角的下拉框選擇種豬編號來查看對應種豬的體溫數據,此外用戶還可以將溫度導出成csv文件。測試結果表明,云平臺網頁端可以正常顯示測得的種豬數據并將其可視化供用戶實時監(jiān)測。
設計了以國產LP5100低功耗芯片,ADT7320溫度傳感器和LoRa模塊為核心的低功耗種豬體溫云平臺監(jiān)測系統(tǒng)。將監(jiān)測節(jié)點固定在種豬耳朵上即可正常工作,以設定的時間間隔采集和發(fā)送體溫等數據至網關,在服務器后端解析完數據后可供用戶遠程在線瀏覽。
系統(tǒng)依靠高精度ADT7320溫度傳感器能夠準確采集種豬體溫數據,確保數據的真實性和可靠性。根據試驗結果顯示(圖8),系統(tǒng)能夠真實快速地反映一天內種豬體溫的變化趨勢,有利于用戶對種豬身體狀況做出及時正確的判斷。此外,系統(tǒng)使用LoRa網絡有效解決了數據傳輸距離短、抗干擾能力弱、數據丟失率高等通信問題,極大地擴展了系統(tǒng)的應用場景,能夠在復雜的養(yǎng)豬場環(huán)境中實現低誤差、低延遲、遠距離的高效率通信。但網關與監(jiān)測節(jié)點之間存在障礙物依舊會導致通信距離下降,因此如何減輕障礙物對通信質量的影響是未來研究種豬體溫監(jiān)測中需要重點解決的問題。
依靠LP5100低功耗芯片和ADT7320及LoRa的低功耗或關斷模式,系統(tǒng)能夠以極低的功耗進行長時間的正常工作。但由于系統(tǒng)需要鋰電池供電,導致監(jiān)測節(jié)點需要攜帶電池一同安裝在豬耳上,這無疑增加了節(jié)點的占用空間和整體重量,后續(xù)擬采用體積更小的電池替代現有電池以減輕相關負擔。