郭恒川
(洛陽理工學院計算機與信息工程學院,河南 洛陽 471023)
畜牧業是關系著國民日常生活需求的重要產業,也是實現鄉村振興的重要舉措之一,在鄉村振興戰略中扮演著非常重要的角色。傳統的畜牧飼養模式已經成為畜牧業發展的最大短板,因此畜牧業的高質量發展將勢不可擋,突破畜牧業“質”的瓶頸需要依靠科技創新[1]。
隨著新的產業理念普及,畜牧業在不斷加快現代化與信息化的進程,告別了粗放經營的低水平模式,不斷的向規模化集中,提高生產與管理效率。規模化畜牧養殖中,在不增加人力成本的前提下,對某個體牲畜很難做到精準化的跟蹤管理。現如今,物聯網技術的發展可謂日新月異,各種利用物聯網技術進行遠程監控的智能產品已經進入千家萬戶,這為解決規模化畜牧養殖下的牲畜個體精準化監控提供了基礎。以STM32 為主控芯片設計一種能夠提供牲畜定位、運動步數、體溫、環境情況數據的終端設備,并將其虛擬仿真顯示在軟件端的監控系統就是在這個背景下產生的新型畜牧養殖監控方案。
在牲畜養殖過程中,牲畜所處的環境主要分為棚內環境和棚外環境兩部分。棚內用于集中圈養,因此適合在棚內設計并安裝棚內環境數據監測的終端設備,主要監測對牲畜生長影響較大的棚內溫度、濕度、氨氣濃度等有害氣體數據。對于大型牲畜而言,還要有棚外草場環境來進行放風和運動,在此場景下就適合對每頭牲畜設計安裝監測體溫、運動步數以及進行位置定位的終端設備。
根據對兩種場景的分析,系統的硬件部分應由一個棚內環境監測終端和若干個棚外使用的體數據監測終端共同構成,如圖1 所示。兩類硬件終端均使用STM32 單片機作為主控芯片,連接所需的各類傳感器和功能模塊來采集監控信息,經過WIFI 通信模塊,通過HTTP 協議上傳數據到OneNet云平臺。系統的軟件部分即虛擬仿真監控平臺,從OneNet 云平臺獲取數據并在仿真平臺上形成模擬的牲畜狀態和環境數據進行顯示。控制方面,對于平臺上顯示的實際棚內環境數值超過合理范圍的情況,可在監控平臺進行對應的功能操作,遠程操縱繼電器來開啟棚內換氣、調溫、調濕裝置進行環境的改善作業。通過整個系統對牲畜養殖環境及牲畜個體的全天候實時監控,能夠給養殖場的管理人員提供準確的參考信息,為牲畜提供適宜的環境和健康保障。

圖1 系統總體設計圖
按照系統硬件部分要實現的功能,并考慮成本和推廣因素,結合各種元器件的價格、穩定性以及功耗等參數,系統的主控芯片選用STM32F103C8T6 單片機,溫度采集使用DS18B20 溫度傳感器,GPS 位置定位使用UBLOX NEO-6M模塊,計步使用ADXL345 加速度傳感器,以及其他各類環境監測傳感器和繼電器。通過主控芯片內部RTC 時鐘實現實時時鐘讀取,并通過OLED 顯示屏實時顯示當前的各項數據,最終硬件設備通過WIFI-ESP8266 模塊將數據傳輸到云平臺供軟件平臺調用。
STM32F103C8T6 芯片是一款基于Cortex 內核的32 位微控制器,可以外接4-16MHz 外部晶體振蕩器,最高頻率可達72MHz。它需要和其他功能電路組合成最小系統才能實現硬件系統的主要控制功能,系統由STM32F103C8T6 主控芯片作為核心與電源電路、復位電路、時鐘電路、接口調試電路,共5 部分組合而成。
電源電路使用LDO 低壓差線性穩壓器將+5V 電壓轉換為STM32 主控芯片與其他電路模塊工作所需的+3.3V 電壓。時鐘電路由1 個8MHz 的晶振和2 個22P 的電容組成晶振電路為主控芯片和其他外設提供系統時鐘。復位電路由電容、電阻和微動開關組成,利用電容充放電的作用,在STM32啟動時由低電平變高使得芯片復位。接口調試電路使用支持引腳少的SWD 仿真模式來下載hex 或bin 文件。
顯示模塊使用輕巧方便、功耗低的0.96 寸IIC 接口的OLED 顯示屏。該模塊共有4 個引腳:GND、VCC、SCL、SDA,使用2 根數據線即可驅動顯示的IIC 接口方式。模塊的SCL與SDA 引腳分別連接STM32 的PB6、PB5 引腳,VCC 連接+3.3V 電源供電。
加速度傳感器使用ADXL345 芯片來實現個體數據監測終端的計步功能,它是是集三軸角度測量和三軸加速度為一體的傳感器。ADXL345 共有8 個引腳,電源接+5V,使用SDA 和SCL 兩個引腳連接STM32 的PB10、PB11 引腳來實現與STM32 的串行兩線通信。芯片工作時由G-Cell 傳感器感知X、Y、Z 三個正相交方向上的加速度值,G-Cell 內部經過容壓變換器、濾波器、增益放大器和溫度補償計算后以電壓方式輸出,然后內部芯片讀取模擬量,最后在數字接口輸出的實際數據被STM32 單片機獲取,并在其內部經過數據分析和數據算法轉換為測量牲畜的步數信息。
運動定位功能采用UBLOX NEO-6M 模塊實現,該模塊具備全方位功能,性能優越、體積小、高性能和低功耗。該模塊共有5 個引腳,使用TXD、RXD 引腳進行串口數據收發,PPS 引腳輸出可調節的脈沖信號。模塊通過串口及USB 接口向單片機系統輸出GPS 定位信息,NEO-6M 模塊接收到的數據則保存在EEPROM 中。
個體數據監測終端的溫度測量使用DS18B20 溫度傳感器,共有3 個引腳,以“單總線”的方式驅動,即DATA 引腳既作為輸出也作為輸入,與STM32 的PA7 腳連接。棚內環境監測終端的溫濕度監測使用SHT21 傳感器,其配有電容式相對濕度傳感器、能隙溫度傳感器、放大器、A/D 轉換器、OTP內存和數字處理單元。共有6 個引腳,主要使用SDA 引腳與STM32 的PA8 引腳連接進行雙向串行數據收發,SCL 連接串行時鐘用來進行通信同步。
WIFI 通信功能使用ESP2866 模塊,是一款低功耗的UART-WIFI 透傳模塊,具有TCP 連接功能,可將系統終端設備連接到WIFI 無線網絡上進行通信,從而實現聯網功能[2]。ESP8266 共有8 個引腳,其中CH_PD 引腳高電平為工作模式,此引腳接阻值為10KΩ 的上拉電阻至+3.3V 電源,數據發送引腳TXD 與接收引腳RXD 分別連接至STM32 單片機的PA3、PA2 引腳進行數據收發。
個體數據監測終端樣例如圖2 所示,以STM32 單片機最小系統為核心,連接溫度傳感器DS18B20、加速度傳感器ADXL345、GPS 定位模塊UBLOX NEO-6M、OLED 顯示屏組成。將終端安放于牲畜脖頸處,用于監測該牲畜的體溫、當天運動步數,記錄其在牧場的運動軌跡和位置。終端根據設備ID 識別判斷不同的牲畜個體,將其體溫和步數信息發送到仿真軟件端并顯示在軟件中模擬的牲畜運動場景里。系統管理員根據體溫數值、單位時間內的步數和運動軌跡來判斷牲畜的健康狀況并進行相應的干預。個體數據監測終端作為牲畜的健康狀況監測設備實現了對牲畜的精準化管理,保障了牲畜的個體健康。

圖2 個體數據監測終端
棚內環境監測終端用于牲畜集中飼養棚內的環境檢測,主要由STM32 單片機最小系統、溫濕度傳感器SHT21、各類氣體檢測傳感器和繼電器組成。終端安置于現實場景的飼養棚內墻壁上,監測棚內的溫度、濕度和各類氣體濃度數值并通過WIFI 傳送至云平臺最終模擬顯示在軟件端。由于溫度、濕度和有害氣體濃度的高低均會影響牲畜的健康和產肉效率,當終端監測的各種環境數據值超過系統預設的合理范圍,將控制與其相連的繼電器進行相應的開閉操作。繼電器又與升降溫設備、加濕設備、換氣設備的電源部分相連用于開啟或者關閉這些設備,達到調節棚內牲畜生長環境的目的。
兩類終端的工作邏輯均依靠其上的STM32 控制芯片進行控制,STM32 片內內的控制程序采用移植性高且易讀的C語言編寫。為實現終端的功能需求,個體數據監測終端的系統運行流程如圖3 所示,與棚內環境監測終端的系統運行流程相近。

圖3 個體數據監測終端系統流程圖
首先進行系統初始化,然后進入主程序循環。其中系統初始化工作包括FLASH 模擬EEPROM 數據讀取、加速度傳感器ADXL345 初始化、RTC 時鐘初始化、OLED 屏初始化配置、串口初始化配置。主程序循環系統中主要讀取RTC 實時時鐘,監測溫度傳感器DS18B20 和GPS 定位的數據。加速度傳感器實現數據的讀取及算法計步,并保存步數到FLASH中。同時鍵盤子程序進行實時掃描,檢測到切換鍵按下時,屏幕會切換顯示,且在主界面下將按鍵同時按下會觸發清除步數操作。通過內部定時器定時,當設置的5 秒定時到后,通過WIFI 模塊發送一次數據到云平臺。在RTC 實時時鐘的作用下,當時間達到凌晨時,會自動清零步數并重新開始新一天的計步。
為了更加直觀的展現和模擬飼養棚內的環境,生動的模擬牲畜個體和其監測狀態,利用3DS MAX 和VRP 設計虛擬牧場作為牲畜智能遠程監測系統的軟件端。將虛擬現實和物聯網技術應用在牧場的數字化建設,實現牧場的三維可視化監測,使用戶“置身其中”的訪問牧場,并“沉浸式”直觀的了解牧場的布局、環境數據和牲畜的實時樣態[3]。
虛擬場景的創建主要有牧場遠景、棚內場景和戶外場景三部分,根據牧場的地理信息、建筑、道路、植被等素材進行三維建模。建模后進行烘焙,并利用3DS MAX-VRP 插件導入VRP 內進行設計與數據處理。[4]監測數據獲取方面,根據云平臺提供開放的API 接口,通過調用和處理轉換后,根據系統的個性化需求搭建上層應用,將數據展現在幾個虛擬場景內并進行交互操作。
牧場遠景可通過鼠標、鍵盤自由的對三維場景進行360°的瀏覽,了解牧場的周邊地形、自然環境和內部大體布局、建筑分布。棚內場景通過旋轉瀏覽可查看棚內模擬牲畜個體和數量,以及棚內側壁顯示的實時溫濕度和各種氣體濃度,并通過虛擬按鍵開啟棚內的各類溫濕度、氣體濃度調節設備進行遠程控制。戶外場景可用來選擇觀測某個牲畜的位置、運動情況和體溫,具體如圖4 所示。通過虛擬仿真技術在模擬牧場戶外的場景中顯示某奶牛正在通過通道入棚,在左側可以看到其體溫、運動步數、GPS 信號強弱,以及右下角顯示在地圖中的定位位置。

圖4 虛擬仿真界面
綜上所述,本文將物聯網技術與虛擬仿真技術相結合,設計了一套以STM32 單片機為控制核心的智能牲畜狀態監控系統。以提高養殖企業收益,保障牲畜健康為目的,為企業提供了更加便利的管理方式[5]。該系統具有安全可靠、功耗低、靈活性強的特點,有效減少了牲畜飼喂管理過程中的人力消耗,促進了畜牧企業的信息化建設。