(西北農林科技大學 網絡與教育技術中心,陜西 楊凌 712100)
豬的生產水平大約20%取決于遺傳,40%~50%取決于營養,30%~40%取決于環境條件[1]。影響豬生長的環境因素包括溫度、濕度、二氧化碳濃度、光照強度、有害氣體等,這些因素對豬的繁殖性能、仔豬成活率和生長機能等方面都有影響。為了提高豬的健康水平和生產效率,可建立實時監測系統對豬舍環境信息進行采集與分析。養殖環境的監測與控制一直是國外內專家研究的熱點,國外例如:美國、巴西、丹麥、加拿大起步較早,利用多種信息技術已建立成熟的養殖環境信息監測系統。國內,李立峰等設計了1種以工業組態King View為開發平臺,利用可編程序邏輯控制器(PLC)實時監測豬舍溫度、相對濕度和氨氣濃度參數的測試系統[2];周晨飛利用Zigbee技術設計了用于監測舍內環境數據的豬舍環境監測系統[3];朱偉興等使用ZigBee和WIFI網絡實現了保育舍環境可視化調控系統[4];梁萬杰等基于改進后的低功耗自適應集簇分層型協議搭建了一個豬舍環境監測系統[5];劉樹香等利用WSN技術設計并實現了豬舍環境遠程監測系統[6];范留偉設計并實現了基于STM32的豬舍環境自動監控系統[7];王嬌嬌為研究豬舍內環境因素的變化規律,獲取有害氣體排放量及其濃度在豬舍中長時間和多測點的實時測量數據,利用Mesh網絡實現了豬舍環境監測系統[8];李理等利用ZigBee物聯網技術,設計基于無線傳感器的豬舍環境自動監控系統[9];崔勇等采用ZigBee技術、PLC機電控制技術、組態技術、物聯網技術實現了對豬舍養殖環境進行遠程自動控制[10]。但是,在上述這些研究中,大都采用ZigBee技術和Mesh網絡技術,網絡傳輸效率低、系統延遲大;且都是IPv4網絡,還沒有研究將6LoWPAN網絡和IPv6網絡應用于豬舍環境監測。
實際部署中,隨著傳感器節點的增多,采用IPv4網絡傳輸會必然牽涉到IP地址不夠用地問題。為了滿足物聯網中海量節點對IP地址的需求,基于IPv6傳輸網絡的物聯網技術解決方案成為技術人員關注的熱點。
6LoWPAN具有適應性強、易開發、擁有海量IPv6地址、易接入IPv4/IPv6網絡、易利用IP網絡的技術進行發展的特性[11]。考慮到6LoWPAN網絡技術IPv6網絡技術的優勢,文章設計了一種基于6LoWPAN網絡和IPv6網絡技術的豬舍環境遠程監測系統,該系統可實現豬舍環境內溫度、濕度、光照強度、CO2濃度、H2S濃度、NH3濃度等環境因子實時監測。
溫度是豬舍主要環境因素之一,舍內溫度過高或過低都會影響豬體健康和生產性能。初生仔豬、1月齡斷奶仔豬、空懷母豬、懷孕母豬、產仔后的母豬、種公豬對外界的溫度要求均不相同。例如,空懷母豬的適宜溫度是16~19℃,而種公豬的適宜溫度是10~18℃[12-13]。
豬舍內不同的環境溫度會直接影響舍內相對濕度。豬舍內相對濕度太大同樣也會影響豬的生產性能[14]。光照強度對豬有促進新陳代謝、加速骨骼生長以及活化和增強免疫機能的作用[15],種公豬和肥育豬對光照沒有過多的要求,但光照對繁育母豬和生長中的仔豬有重要影響。
養豬生產中產生的CO2、H2S、NH3等有害氣體會對豬舍內動物及工人的健康產生一定影響。比如,NH3排放到空氣中引起土壤酸化、水體富營養化;H2S濃度太大時,會引起呼吸停止甚至死亡。為了對豬舍環境進行控制,有必要豬舍環境進行監測,以保證豬的健康生長及生態系統的穩定性。
(1)實現WSN和IPv6網絡的通信,實時獲取豬舍環境信息。
(2)豬舍內溫度、濕度、光照強度、CO2濃度、H2S濃度、NH3濃度異常時及時告警。
系統總體架構分為為豬舍環境數據采集、豬舍環境數據傳輸、豬舍環境數據處理三大部分。
(1)豬舍環境數據采集模塊。
溫濕度、光照強度、CO2、H2S、NH3傳感器跟6LoWPAN傳感器節點一起負責采集豬舍內溫濕度、光照強度、CO2濃度、H2S濃度、NH3濃度等環境數據,通過6LoWPAN網絡將采集的環境數據發送給6LoWPAN邊緣路由器。
(2)豬舍環境數據傳輸模塊。
由6LoWPAN邊緣路由器將采集的豬舍環境數據通過IPv6網絡上傳至上位機監測軟件。
(3)豬舍環境數據處理模塊。
由開發的上位機監測軟件來處理豬舍環境數據,用戶可通過IPv6網絡訪問該上位機以實現豬舍環境數據的實時監測。具體設計如圖1所示。

圖1 系統總體設計
6LoWPAN無線傳感器網絡由6LoWPAN傳感器節點和6LoWPAN邊緣路由器組成,每個6LoWPAN傳感器節點均配置有溫濕度、光照強度、CO2、H2S、NH3傳感器;每個傳感節點均可配置IPv6地址,整個6LoWPAN網絡采用樹形組網方式。6LoWPAN無線傳感器網絡將采集的數據通過邊緣路由器傳輸到IPv6網絡,最終經過IPv6網絡傳輸至上位機管理軟件,上位機監測軟件實時顯示當前環境參數。豬舍環境異常時,可發出告警,提醒管理人員及時采取措施進行控制。
系統硬件設計包含兩部分,6LoWPAN傳感器節點硬件設計和6LoWPAN邊緣路由器硬件設計。
6LoWPAN傳感器節點由主控制單元MCU(main control unit)、RF(Radio Frequency)收發器及傳感單元組成,具體設計如圖2所示。

圖2 傳感器節點硬件架構
文章選用CC2538SF53為主控制單元,其比CC2530運行更加穩定,接口更加豐富。RF收發器同時連接USB轉串口電路、時鐘和復位電路。傳感單元由溫濕度、光照強度、CO2、H2S、NH3傳感器組成,主要負責采集數據,其選用型號如表1所示。

表1 選用的傳感器
文章采用雙MCU架構來實現6LoWPAN邊緣路由器,即將6LoWPAN傳感節點和支持OpenWrt的Linux開發板用串口連接起來,這樣的架構可以實現6LoWPAN網絡和IPv6網絡的相互通信。具體設計如圖3所示。

圖3 邊緣路由器節點硬件架構
支持OpenWrt的Linux開發板文章選用AR9344為主控制單元,AR9344主頻高達533MHz,集成了一個PCI-E Root Complex及一個PCI-E Endpoint接口,一個MII/RMII/RGMII接口,并支持SPI接口的Flash和NAND Flash[16-17]。
6LoWPAN傳感器節點和邊緣路由器的軟件設計基于嵌入式操作系統Contiki, Contiki由瑞典計算機科學院Adam dunkels團隊以及ETH大學開發,常用來實現無線傳感器網絡、物聯網[18]。6LoWPAN傳感器節點進行配置錢必須先移植Contiki,由于Contiki己經安裝了6LoWPAN和RPL路由協議,直接可以對Contiki相關代碼進行覆寫,建立傳感器網絡。
6LoWPAN傳感器節點通電后,首先啟動Contiki系統,系統初始化完成后可監聽6LoWPAN邊緣路由器的狀態。一旦RF模塊收到6LoWPAN邊緣路由器發來的數據包,則對收到的數據包進行解析。解析結果如果是采集指令,則采集豬舍環境信息,并通過RF模塊發送給6LoWPAN邊緣路由器;解析結果如果是控制指令,則執行該控制指令,并將執行控制指令后各模塊最終狀態信息發送給6LoWPAN邊緣路由器,6LoWPAN傳感器節點軟件工作流程如圖4所示。


圖4 6LoWPAN傳感器節點軟件工作流程
6LoWPAN邊緣路由器軟件分為兩個部分,即以太網功能模塊軟件與6LoWPAN功能模塊軟件。以太網功能模塊端應用軟件的開發基于OpenWrt的Linux系統,主要創建兩個任務,第一個任務是將封裝好的數據發送至6LoWPAN功能模塊端;第2個任務是接收并解析串口數據,并通過IPv6網絡發送到上位機監測軟件。
6LoWPAN邊緣路由器通電后,雙系統進行初始化,初始化完畢處于監聽UDP端口信息狀態,等待上位機軟件通過UDP端口發來的數據包。一旦接收到上位機軟件發來數據包,先解析數據包,然后將解析后的數據包由邊緣路由器的RF模塊發送給6LoWPAN無線傳感網絡,最后6LoWPAN邊緣路由器會將響應狀態通過IPv6網絡發送給上位機監測軟件[19],具體流程如圖5所示。


圖5 邊緣路由器軟件工作流程
上位機監測軟件是豬舍環境實時監測的核心,其部署在PC端。上位監測軟件采用Visual C++ 6.0編程語言實現,開發環境為Visual C++ 6.0的MFC,數據庫采用MySQL。上位機監測軟件一方面負責向6LoWPAN邊緣路由器發送采集指令,同時在接收到6LoWPAN邊緣路由器上傳的環境數據時,將環境數據存儲到MySQL數據庫。另一方面負責與訪問上位機的移動端和PC端建立起遠程通信,以實現移動端和PC端遠程獲取環境監測數據。上位機監測軟件還可以開發異常數據報警模塊,當獲取的環境數據超過上位機預設的閥值時,可發出報警,提醒工作人員及時處理。
上位機軟件啟動后,將初始化Socket網絡和定時器,同時創建兩個Service端口,一個端口負責與6LoWPAN邊緣路由器進行通信,另一個端口負責與手機端APP進行通信。當網絡處于正常工作狀態時,定時器計數到設定的時間數時,上位機軟件向6LoWPAN邊緣路由器發送采集指令,當6LoWPAN邊緣路由器接收到該指令后,進行數據采集、處理和打包,并通過WIFI模塊傳輸給上位機軟件,上位機軟件接收該數據包后,對其進行解析是否上傳正確,當數據正確時將其存儲在MySQL數據庫中。用戶可通過移動端APP訪問上位機來獲取實時監測的環境數據。
移動端APP采用Google公司推出的Android Studio開發[20]。移動端APP與上位機之間的網絡采用Http通信方式,此通信采用的是“請求一響應”的方式,是一種“短連接”。移動端APP需要先與上位機建立連接,然后向上位機發送Http請求,上位機才會根據請求向移動端APP返回響應數據,并且在確認移動端APP收到返回的消息后,上位機就會主動釋放連接。
本系統在西北農林科技大學某場站養豬場進行測試試驗,在該養豬場的保育舍內布置了2個6LoWPAN傳感器節點,然后將溫濕度傳感器、光照強度傳感器、CO2傳感器、H2S傳感器、NH3傳感器連接到這兩個6LoWPAN傳感器節點,節點1配置的IPv6地址為:2001:250:1002:2002:9DF6:129B:7828:233C,節點2配置的IPv6地址為:2001:250:1002:2020:E557:99EF:FCEA:4380,將連通IPv6網絡后的6LoWPAN邊緣路由器放置在距離兩個6LoWPAN傳感節點4 M的地方,隨后在測試移動端安裝好上位機監測APP,讓其通過校內IPv6網絡與6LoWPAN傳感器網絡建立通信。6LoWPAN傳感器節點和6LoWPAN邊緣路由器加電后開始工作,節點1可在30 s內將采集的數據發送給6LoWPAN邊緣路由器;節點2可在28 s內將采集的數據發送給6LoWPAN邊緣路由器,6LoWPAN邊緣路由器可在15 s內將數據上傳至上位機監測APP,上位機監測APP接收到數據后,顯示結果如圖6所示。


圖6 監測APP接收數據后顯示界面
文章基于6LoWPAN傳感器網絡技術和IPv6網絡技術設計開發了一套豬舍環境遠程監測系統。該系統不但實現了豬舍內環境數據的遠程監測和環境異常報警,而且能夠持續獲取豬舍環境監測數據,運行穩定,能滿足豬舍環境遠程監測需求。