李子圣,蔡文濤,韓建寧,吳霽宇,李大威
(中北大學 信息與通信工程學院,山西太原,030051)
近些年來,中國一直是養豬大國但不是養豬強國,生豬養殖普遍存在著生產效率較低、養殖水平不高的問題,其中規?;B殖技術在我國從農業大國到農業強國的邁進過程中逐漸起到關鍵性作用。規?;B殖帶來效益的同時,由于其飼養密度高、部分企業配套排污設施不完善、生豬排泄物分解產生有害氣體等因素,也造成了對養殖場周邊空氣、水源、土壤、作物等造成污染;同時舍內的有害氣體濃度過高、溫濕度不適宜也是影響生豬生長一個重要因素。因此,必須對養殖場內部及其周邊的溫度、濕度、有害氣體等參數進行監測;傳統的人工周期巡檢測量,不僅耗時耗力,同樣無法達到實時監測的效果。
目前,養殖場環境監測裝置多為對單一有害氣體如氨氣、硫化氫等和溫濕度進行采集然后在設備端直接進行顯示同時通過RS485 總線等有線連接方式將數據回傳到PC 端。該方法在對養殖場內多種氣體進行實時監測時,需要購買多臺設備對不同組分氣體進行實時監測和數據回傳,并且由于養殖場內環境復雜導致布線難度陡增;同時數據在回傳PC端后,僅是對其簡單展示和存儲,各個數據間彼此孤立未能有效融合,無法利用氣體濃度和溫濕度對養殖場內環境進行有效評估[1];所以在規模性養殖場內采用基于無線傳輸方式的多組分有害氣體及溫濕度監測系統,對于保護生態環境及生豬健康育種具有重要意義。
為了提升規?;B殖場內部環境綜合監測和風險評估能力,本文設計了一套基于阿里云的養殖場多組分有害氣體及溫濕度監測系統,設備主機端多點位放置,采集一個區域內溫濕度和有害氣體濃度數據后使用MQTT 輕量級物聯網協議將數據回傳到平臺服務器端,在服務器端可以進行實時的數據展示,同時根據采集到的環境數據進行綜合打分實現環境風險評估,此系統能夠滿足規模化養殖場對環境監測的實時性、經濟性和智能性需求。
根據相關研究,環境對于生豬出欄量的貢獻率可達40%左右,這里環境包括豬舍內空氣質量、溫濕度、豬舍內水源和土地等,其中豬舍內空氣質量、溫度和濕度屬于豬舍環境中的重要組成部分,它可以直接對豬群的生長情況和豬肉品質造成影響[2]。
豬舍內部對于生豬發育產生不利影響的氣體物質統稱為有害氣體,按其物理性質可以分為物理性氣體物質如粉塵顆粒、化學性氣體物質如硫化氫、氨氣等和生物性氣體物質如微生物氣溶膠[3];其中,化學性氣體物質對于生豬生長最為不利,在豬舍中最為常見的化學性氣體物質包括硫化氫H2S、氨氣NH3、一氧化碳CO、二氧化碳CO2,產生原因主要為:豬只呼吸、生豬糞便、墊草、殘余飼料等分解。H2S、NH3、CO、CO2過高對生豬產生影響主要體現在以下幾個方面。如表1 所示。

表1 不同種類有害氣體對生豬產生的影響
不僅高濃度的有害氣體會引起生豬有明顯的不良癥狀,長期在含有低濃度有害氣體環境下生長的生豬也會出現體質虛弱、增長緩慢、發病率增高等隱形癥狀。根據調查統計,在低濃度(小于5mg/m3)硫化氫環境中,生豬呼吸道、咽喉、眼部發病率隨時間延遲呈線性增長,如圖1 所示[4]。

圖1 低濃度硫化氫環境中,生豬發病率隨時間變化的關系
同樣,豬舍內溫濕度與豬群的生長狀況同樣密不可分,理想的生豬環境以溫暖干燥最為適宜[5],豬舍內相對濕度應當保持在70%左右,溫度隨著生豬日齡和年齡段變換應當在15℃~30℃之間調整,如表2 所示。在適宜的溫度和濕度環境下,不僅可以促進生豬生長,也可以有效降低生豬患病概率;潮濕陰冷的舍內環境容易造成生豬抵抗力降低,造成病原菌侵入生豬體內[6]。

表2 生豬適宜溫濕度與生豬日齡關系
綜上,該系統監測參數主要分為有害氣體濃度監測和溫濕度監測兩大方面:在有害氣體濃度監測方面,主要監測對生豬生長狀況影響較大的四種氣體,即氨氣、硫化氫、二氧化碳和一氧化碳;在溫濕度監測方面,考慮到溫度和濕度兩個因素對于生豬影響息息相關,本文主要對空氣中相對濕度進行監測。
基于阿里云的生豬養殖場多組分有害氣體及溫濕度監測系統可以對養殖場內不同位置的環境進行全面監測,在設備主機端采集回傳不同環境參數的數據后,平臺服務器可對數據進行可視化、存儲和數據回調操作,同時對環境進行綜合打分實現環境風險評估,系統整體架構如圖2 所示。

圖2 系統整體架構圖
該系統包括監測主機端、云平臺服務器端和數據接口端:監測主機端硬件主要由電源模塊、主控模塊、氣體濃度采集模塊、溫濕度采集模塊、OLED 顯示模塊和WiFi 數據傳輸模塊組成,主控模塊在采集氣體傳感器電壓值后,根據事先在標準氣體濃度下標定的電壓濃度方程計算出當前氣體濃度值,同時結合當前溫度對氣體濃度進行溫度補償得到真實的氣體濃度值,這里溫度和濕度數據由集成的溫濕度傳感器通過單總線通信協議傳輸給主控模塊,在得到四種氣體濃度和溫濕度數據后,主控模塊控制OLED 顯示模塊實時顯示傳感器數據,同時通過WiFi 數據傳輸模塊將傳感器數據回傳到網關設備,網關設備通過輕量級物聯網MQTT 協議將監控主機端采集到的傳感器數據回傳到平臺服務器端;平臺服務器端包括監測服務、存儲服務和計算服務以及應用服務,監測服務緩存當前傳感器數據同時將數據傳輸到存儲服務和計算服務中,存儲服務將數據傳輸到SQL Server 云數據庫中便于數據回調和保存,計算服務根據當前傳感器數據進行綜合打分實現環境風險評估,監測服務、存儲服務和計算服務將數據接口提供給應用服務,應用服務與數據接口端進行直接業務交互;在數據接口端可以實現數據可視化、各個區域環境風險評估和環境數據回調等操作。
監控設備主要完成對于傳感器數據的采集和初步計算,監控設備端采用模塊化設計,同時考慮到豬舍內部環境復雜導致電源線布置難度大[7],裝置整體采用內部供電并且在元器件選型方面盡量滿足其低功耗要求:主控模塊采用32 位Cortex-M4 架構的STM32L451RET6 芯片,STM32L4 系列不僅計算性能強、外設接口豐富、拓展性極高,同時板載功耗平衡的動態電壓調整功能,可以在功耗和計算性能間達到平衡;電源模塊設計采用12V 鋰電池輸入和高效率的開關電源芯片LM2596,兼容5V 和3.3V 電壓輸出,可以滿足各個模塊不同電壓的輸入需求;OLED 顯示模塊采用0.96 寸OLED 屏幕,OLED 屏幕具有自發光、反應速度快和無需背光等特點,可以很好地滿足整體系統的低功耗要求;溫濕度采集模塊選用DTH11 溫濕度一體化數字傳感器,DTH11 溫濕度傳感器采用內部電阻式感濕元件和NTC 測溫元件檢測環境溫濕度,同時內部8 位單片機在采集數據后通過單總線協議將溫濕度數據輸出,DTH11 溫濕度傳感器具有響應速度快、抗干擾能力強的優點[8];WiFi 數據傳輸模塊采用集成ESP8266 芯片的WiFi 模組,ESP8266 芯片具有強大的片上處理和存儲能力,同時板載利于二次開發的AT 固件,可以通過AT 指令使用TCP 協議或MQTT 協議與服務器或個人PC 主機進行連接;氣體濃度采集模塊采用低成本、高靈敏度的電化學傳感器,電化學氣體傳感器探頭工作原理為有害氣體與電化學物質進行反應導致傳感器電導率產生變化最終反應為電壓變化,這里考慮到傳感器輸出電壓超出單片機ADC 電壓采集范圍,采用ADC 分壓跟隨器電路進行分壓,同時使用二階RC 低通濾波電路減小電路中器件噪聲對于電壓采集的影響,監控設備端整體結構框圖如圖3 所示。

圖3 監控設備端整體結構框圖

圖4 監控設備端電源模塊電路原理圖
這里主要對電源模塊、主控模塊和有害氣體采集模塊的電路設計進行說明:
(1)電源模塊
這里主要考慮到豬舍布線不便,因此采用鋰電池內部供電方式,同時板上集成了DC 電源插座,裝置也可由外部供電,可以避免鋰電池電量不足帶來的裝置停機問題[9];為了提高電路工作效率和輸出功率,使用LM2596 降壓型電源管理單片集成電路的開關電壓調節器,它具有很好的線性和負載調節特性[10];在電源輸出端,為了滿足各個模塊不同電壓的輸入需求,同時采用LM2596S-3.3 和LM2596S-5.0電源降壓穩壓芯片配合降壓穩壓電路提供電壓輸出,保證供電的穩定性。
(2)氣體濃度采集模塊
考慮到設備端的實際應用成本及使用壽命要求,有害氣體傳感器采用低成本、可靠性高的電化學和半導體氣體傳感器[11],使用的氣體傳感器探頭參數如表3 所示。

表3 有害氣體電化學氣體傳感器參數
這里以二氧化碳傳感器采集電路為例,說明氣體濃度采集模塊電路設計方案:傳感器原始電壓輸出為0~5V,而單片機ADC 外設采集電壓范圍為0~3.3V,因此這里采用電阻分壓方式滿足單片機ADC 采集要求,同時考慮到裝置整體低功耗要求,采用1kΩ左右的大電阻,這里由于STM32L4 單片機ADC 內阻同樣在1kΩ 左右,若僅使用電阻分壓后與單片機ADC 連接則會出現阻抗不匹配的問題,因此這里使用了LM358運算放大器構成電壓跟隨器電路,保證整體電路的阻抗匹配,如圖5 所示;同時,經測量在電壓跟隨器電阻分壓電路后,由于器件噪聲,會導致頻率為300Hz左右的噪聲出現,如圖6 所示,因此這里采用截止頻率為10Hz 的二階低通RC 濾波器,在接入低通濾波電路后,傳感器電壓基本穩定,可以滿足設備端較高精度電壓采集的要求。

圖5 氣體濃度采集模塊中二氧化碳傳感器電路原理圖

圖6 傳感器輸出電壓經過低通濾波電路效果圖
(3)主控模塊及其外圍電路設計
主控模塊電路及原理圖如圖7 所示,其中包括芯片供電管理電路、SWD調試接口電路、芯片復位電路、芯片擴展引腳電路和晶振電路:主控芯片采用STM32L451RET6 芯片,該型號芯片主頻可高達80MHz 同時配有硬件浮點計算單元,可以滿足監測設備端實時計算多種有害氣體的需求,同時具有多個通信接口和豐富的外設接口,有助于滿足主控模塊與其他模塊的拓展性[11]。

圖7 主控模塊外圍電路原理圖
考慮到傳統輪詢程序處理方式會導致程序復雜且容易出現例如堆棧溢出等難以排查的問題[12],監測設備端的整體軟件基于FreeRTOS 嵌入式實時操作系統,FreeRTOS 是一種基于時間片式、輕量級、針對嵌入式設備的實時操作系統,常用于復雜且功能較多的嵌入式設備中;相比于輪詢程序處理方式和前后臺程序處理方式,使用RTOS 可以保證傳感器數據的實時性采集、整體程序的可復用性和錯誤信息便于調試;這里我們將整體軟件程序分為多個子任務,包括:初始化任務、數據采集任務、數據顯示任務、調試信息輸出任務、設備狀態監測任務、數據回傳任務,各個子任務間通過任務調度器、消息隊列和信號量實現任務切換、數據傳遞和任務同步。監測設備端整體軟件層次分為硬件層、驅動函數層、系統層和任務層,如圖8 所示,其中硬件層是對STM32L451RET6 各個外設例如ADC 模數轉換、UART 串口、RTC 實時時鐘的初始化,由STM32CubeMX配置生成;驅動函數層主要包括對各個硬件元器件如溫濕度傳感器DTH11、氣體傳感器等進行數據讀取、指令發送等函數;系統層則包括RTOS 內核實現以及FreeRTOS 提供的函數接口;任務層利用FreeRTOS 提供的函數API,實現任務創建、任務調度和消息傳遞等操作。

圖8 監控設備端軟件層次圖
監控設備端的整體工作流程為:設備上電后進行外設初始化、器件上電延時和硬件初始化;接著進行自檢程序檢測當前設備供電電壓和網絡狀態,如果供電電壓不足,在OLED 屏幕顯示錯誤信息后自動休眠,如果連接WiFi 網絡失敗則啟動單機模式;如果設備供電正常并且可以正常連接WiFi 網絡,則啟動聯機模式,在初始化任務創建其他任務、消息隊列、信號量并且開啟任務調度后,數據采集任務、數據顯示任務、調試信息輸出任務、設備狀態監測任務按照時間片依次同步運行:在數據采集任務采集傳感器數據并且計算氣體濃度和溫濕度數據完畢后,釋放信號量,數據顯示任務和數據回傳任務同時運行完成數據在OLED 屏幕顯示和回傳數據到云平臺服務器端,同時設備狀態監測任務定期檢測設備電壓、堆棧狀態和網絡連接狀態,在系統出現異常后開啟調試輸出任務,調試輸出任務通過串口通信將錯誤類型和錯誤信息輸出到PC 端上的串口助手中,圖9 為系統整體工作流程圖。
(1)傳感器數據預處理
雖然在ADC 模數轉換電路前已經對傳感器輸出電壓信號進行二階硬件低通濾波,但是考慮到STM32 中ADC 模數轉換外設本身有10mV 左右的電壓漂移,導致進行硬件濾波之后電信號仍然存在一些隨機噪聲,為了提高氣體傳感器采樣精確度從而準確計算出當前氣體濃度,這里使用軟件實現數字低通濾波器,對連續十個電壓采樣點取均值,從而有效地提高了整個系統的精確性[13]。圖10 為0℃下,在封閉的氣室箱內持續5mins 通入濃度為10000ppm 的標準二氧化碳氣體,每隔10s 采集電壓數據,使用和未使用軟件數字低通濾波器的電壓波動情況,可以看到在使用軟件數字低通濾波器后,電壓值更為穩定,誤差基本在5%左右,隨機噪聲對電壓影響波動變小。

圖10 0℃、濃度10000ppm 的二氧化碳氣體持續通5mins 情況下傳感器電壓波動情況圖
(2)溫度補償算法
考慮到溫度對于電化學氣體傳感器內部催化反應有直接影響,即便在同一濃度下,由于豬舍內溫度不同導致傳感器電壓輸出不同,因此在標準大氣壓下使用高低溫試驗箱來調整溫度并且使用不同濃度的標準氣體對傳感器探頭進行標定,計算溫度-電壓-氣體濃度方程以確保氣體濃度的準確計算[14]。
這里以MG813 電化學二氧化碳傳感器為例,講解溫度補償的整個流程,這里我們取0℃、20℃、30℃和40℃作為標定溫度點,標準氣體濃度取100ppm、500ppm、800ppm、1000ppm、1500ppm、3000ppm、5000ppm、8000ppm和10000ppm,同 時使用純氮氣進行零點標定。
在零點標定過程中,首先將高低溫箱內溫度調節到標定溫度點之一,接著使用微型氣泵將氣室箱內氣體抽出,將純氮氣通入氣室箱中,穩定采集五分鐘傳感器電壓輸出后取平均值作為該濃度對應電壓值;在其他濃度點標定過程中,高低溫箱、抽氣和電壓采集步驟與零點標定相同,僅是將純氮氣替換為不同濃度的標準氣體;在同一溫度下,完成一輪標準濃度標定后,調節高低溫箱到不同標定溫度,重復以上標定過程并記錄不同濃度、不同溫度下傳感器電壓輸出。
文中使用多元多項式回歸算法對數據進行擬合,其基本原理是:任意一個函數都可以用多項式逼近,研究一個因變量與一個或多個自變量間多項式的回歸分析方法,稱為多項式回歸[15]。由于這里我們使用溫度和電壓值兩個自變量,因此此時為多元多項式回歸;這里我們選擇的誤差為均方誤差MSE,均方誤差是預測數據和原始數據對應點誤差的平方和的均值,可以反映擬合的溫度-電壓-濃度-曲線與真實溫度-電壓-濃度-曲線間的誤差。這里考慮到嵌入式設備的計算能力有限,需要考慮計算精度與計算時間的平衡,經過實驗表明,當多項式次數為4時,RMSE最小,為4.7762,在相同計算時間的情況下對曲線擬合效果最好,圖11 為實驗得到的標定溫度點下,電壓與濃度的關系曲線圖。

圖11 標定溫度點下,二氧化碳傳感器電壓濃度曲線圖
環境監測系統除了能夠實時收集展示數據外,也需要與故障處理系統進行聯動,這就要求環境監測系統具有可靠的環境風險評估能力,常見的環境監測系統僅是簡單對收集到的數據進行閾值判斷,這樣會積累一些長期隱患最后爆發[16],例如生豬長期在低濃度的有害氣體中生活會導致體質虛弱,導致在外來病毒侵入時生豬大規模感染死亡,從而給養殖場造成巨大財物損失。因此,本文結合生豬養殖場內環境特點設計了一種綜合狀態評估體系,見表4 所示。

表4 生豬養殖場環境綜合狀態評估體系
這里將環境狀態分為正常狀態、次正常狀態和異常狀態,正常狀態下,不存在一般風險和緊急風險,可以承受一般風險,可承受適當風險余量;當出現一般風險后,正常狀態轉變為次正常狀態,此時環境可承受的風險余量較小,當一般風險長期存在并且超過預設的時間期限時,轉為異常狀態;而在異常狀態下,該環境已經不能滿足生豬正常生長最基本的條件,需要操作人員立即進入現場處理相關故障。
平臺端在接收到多個設備主機端傳來的環境數據后,首先對大量數據進行緩存、分類提取和數據清洗,將有效數據存儲到云數據庫中,并且根據具體業務的需求將其在數據接口端輸出,可以實現實時觀測數據曲線、回調歷史監測數據、根據綜合狀態評估體系計算當前環境風險等操作。
監測設備端整體如圖12 所示,這里我們將監測設備端放于室內條件下進行測試,如圖13 所示,可以看到裝置在室溫25℃條件下,裝置可以正常采集計算并顯示當前環境數據,同時將調試信息傳輸到PC 端的傳輸助手上,如圖13、14 可以看到設備已與物聯網平臺服務端進行連接并實時上傳數據。

圖12 監控設備端實物圖

圖13 監控設備端實物圖

圖14 平臺端設備連接圖
本文設計的基于阿里云的養殖場多組分有害氣體及溫濕度監測系統不僅可以實現養殖場多種有害氣體濃度及溫濕度的實時監測,同時集成了綜合狀態評估體系,實現了對養殖場內環境風險進行實時評估,可以滿足規模性生豬養殖場對于環境監測系統可靠性、智能性、經濟性的需求。