(西北農(nóng)林科技大學(xué) 網(wǎng)絡(luò)與教育技術(shù)中心,陜西 楊凌 712100)
豬的生產(chǎn)水平大約20%取決于遺傳,40%~50%取決于營養(yǎng),30%~40%取決于環(huán)境條件[1]。影響豬生長的環(huán)境因素包括溫度、濕度、二氧化碳濃度、光照強(qiáng)度、有害氣體等,這些因素對豬的繁殖性能、仔豬成活率和生長機(jī)能等方面都有影響。為了提高豬的健康水平和生產(chǎn)效率,可建立實(shí)時(shí)監(jiān)測系統(tǒng)對豬舍環(huán)境信息進(jìn)行采集與分析。養(yǎng)殖環(huán)境的監(jiān)測與控制一直是國外內(nèi)專家研究的熱點(diǎn),國外例如:美國、巴西、丹麥、加拿大起步較早,利用多種信息技術(shù)已建立成熟的養(yǎng)殖環(huán)境信息監(jiān)測系統(tǒng)。國內(nèi),李立峰等設(shè)計(jì)了1種以工業(yè)組態(tài)King View為開發(fā)平臺,利用可編程序邏輯控制器(PLC)實(shí)時(shí)監(jiān)測豬舍溫度、相對濕度和氨氣濃度參數(shù)的測試系統(tǒng)[2];周晨飛利用Zigbee技術(shù)設(shè)計(jì)了用于監(jiān)測舍內(nèi)環(huán)境數(shù)據(jù)的豬舍環(huán)境監(jiān)測系統(tǒng)[3];朱偉興等使用ZigBee和WIFI網(wǎng)絡(luò)實(shí)現(xiàn)了保育舍環(huán)境可視化調(diào)控系統(tǒng)[4];梁萬杰等基于改進(jìn)后的低功耗自適應(yīng)集簇分層型協(xié)議搭建了一個(gè)豬舍環(huán)境監(jiān)測系統(tǒng)[5];劉樹香等利用WSN技術(shù)設(shè)計(jì)并實(shí)現(xiàn)了豬舍環(huán)境遠(yuǎn)程監(jiān)測系統(tǒng)[6];范留偉設(shè)計(jì)并實(shí)現(xiàn)了基于STM32的豬舍環(huán)境自動(dòng)監(jiān)控系統(tǒng)[7];王嬌嬌為研究豬舍內(nèi)環(huán)境因素的變化規(guī)律,獲取有害氣體排放量及其濃度在豬舍中長時(shí)間和多測點(diǎn)的實(shí)時(shí)測量數(shù)據(jù),利用Mesh網(wǎng)絡(luò)實(shí)現(xiàn)了豬舍環(huán)境監(jiān)測系統(tǒng)[8];李理等利用ZigBee物聯(lián)網(wǎng)技術(shù),設(shè)計(jì)基于無線傳感器的豬舍環(huán)境自動(dòng)監(jiān)控系統(tǒng)[9];崔勇等采用ZigBee技術(shù)、PLC機(jī)電控制技術(shù)、組態(tài)技術(shù)、物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)了對豬舍養(yǎng)殖環(huán)境進(jìn)行遠(yuǎn)程自動(dòng)控制[10]。但是,在上述這些研究中,大都采用ZigBee技術(shù)和Mesh網(wǎng)絡(luò)技術(shù),網(wǎng)絡(luò)傳輸效率低、系統(tǒng)延遲大;且都是IPv4網(wǎng)絡(luò),還沒有研究將6LoWPAN網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)應(yīng)用于豬舍環(huán)境監(jiān)測。
實(shí)際部署中,隨著傳感器節(jié)點(diǎn)的增多,采用IPv4網(wǎng)絡(luò)傳輸會(huì)必然牽涉到IP地址不夠用地問題。為了滿足物聯(lián)網(wǎng)中海量節(jié)點(diǎn)對IP地址的需求,基于IPv6傳輸網(wǎng)絡(luò)的物聯(lián)網(wǎng)技術(shù)解決方案成為技術(shù)人員關(guān)注的熱點(diǎn)。
6LoWPAN具有適應(yīng)性強(qiáng)、易開發(fā)、擁有海量IPv6地址、易接入IPv4/IPv6網(wǎng)絡(luò)、易利用IP網(wǎng)絡(luò)的技術(shù)進(jìn)行發(fā)展的特性[11]。考慮到6LoWPAN網(wǎng)絡(luò)技術(shù)IPv6網(wǎng)絡(luò)技術(shù)的優(yōu)勢,文章設(shè)計(jì)了一種基于6LoWPAN網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)技術(shù)的豬舍環(huán)境遠(yuǎn)程監(jiān)測系統(tǒng),該系統(tǒng)可實(shí)現(xiàn)豬舍環(huán)境內(nèi)溫度、濕度、光照強(qiáng)度、CO2濃度、H2S濃度、NH3濃度等環(huán)境因子實(shí)時(shí)監(jiān)測。
溫度是豬舍主要環(huán)境因素之一,舍內(nèi)溫度過高或過低都會(huì)影響豬體健康和生產(chǎn)性能。初生仔豬、1月齡斷奶仔豬、空懷母豬、懷孕母豬、產(chǎn)仔后的母豬、種公豬對外界的溫度要求均不相同。例如,空懷母豬的適宜溫度是16~19℃,而種公豬的適宜溫度是10~18℃[12-13]。
豬舍內(nèi)不同的環(huán)境溫度會(huì)直接影響舍內(nèi)相對濕度。豬舍內(nèi)相對濕度太大同樣也會(huì)影響豬的生產(chǎn)性能[14]。光照強(qiáng)度對豬有促進(jìn)新陳代謝、加速骨骼生長以及活化和增強(qiáng)免疫機(jī)能的作用[15],種公豬和肥育豬對光照沒有過多的要求,但光照對繁育母豬和生長中的仔豬有重要影響。
養(yǎng)豬生產(chǎn)中產(chǎn)生的CO2、H2S、NH3等有害氣體會(huì)對豬舍內(nèi)動(dòng)物及工人的健康產(chǎn)生一定影響。比如,NH3排放到空氣中引起土壤酸化、水體富營養(yǎng)化;H2S濃度太大時(shí),會(huì)引起呼吸停止甚至死亡。為了對豬舍環(huán)境進(jìn)行控制,有必要豬舍環(huán)境進(jìn)行監(jiān)測,以保證豬的健康生長及生態(tài)系統(tǒng)的穩(wěn)定性。
(1)實(shí)現(xiàn)WSN和IPv6網(wǎng)絡(luò)的通信,實(shí)時(shí)獲取豬舍環(huán)境信息。
(2)豬舍內(nèi)溫度、濕度、光照強(qiáng)度、CO2濃度、H2S濃度、NH3濃度異常時(shí)及時(shí)告警。
系統(tǒng)總體架構(gòu)分為為豬舍環(huán)境數(shù)據(jù)采集、豬舍環(huán)境數(shù)據(jù)傳輸、豬舍環(huán)境數(shù)據(jù)處理三大部分。
(1)豬舍環(huán)境數(shù)據(jù)采集模塊。
溫濕度、光照強(qiáng)度、CO2、H2S、NH3傳感器跟6LoWPAN傳感器節(jié)點(diǎn)一起負(fù)責(zé)采集豬舍內(nèi)溫濕度、光照強(qiáng)度、CO2濃度、H2S濃度、NH3濃度等環(huán)境數(shù)據(jù),通過6LoWPAN網(wǎng)絡(luò)將采集的環(huán)境數(shù)據(jù)發(fā)送給6LoWPAN邊緣路由器。
(2)豬舍環(huán)境數(shù)據(jù)傳輸模塊。
由6LoWPAN邊緣路由器將采集的豬舍環(huán)境數(shù)據(jù)通過IPv6網(wǎng)絡(luò)上傳至上位機(jī)監(jiān)測軟件。
(3)豬舍環(huán)境數(shù)據(jù)處理模塊。
由開發(fā)的上位機(jī)監(jiān)測軟件來處理豬舍環(huán)境數(shù)據(jù),用戶可通過IPv6網(wǎng)絡(luò)訪問該上位機(jī)以實(shí)現(xiàn)豬舍環(huán)境數(shù)據(jù)的實(shí)時(shí)監(jiān)測。具體設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)
6LoWPAN無線傳感器網(wǎng)絡(luò)由6LoWPAN傳感器節(jié)點(diǎn)和6LoWPAN邊緣路由器組成,每個(gè)6LoWPAN傳感器節(jié)點(diǎn)均配置有溫濕度、光照強(qiáng)度、CO2、H2S、NH3傳感器;每個(gè)傳感節(jié)點(diǎn)均可配置IPv6地址,整個(gè)6LoWPAN網(wǎng)絡(luò)采用樹形組網(wǎng)方式。6LoWPAN無線傳感器網(wǎng)絡(luò)將采集的數(shù)據(jù)通過邊緣路由器傳輸?shù)絀Pv6網(wǎng)絡(luò),最終經(jīng)過IPv6網(wǎng)絡(luò)傳輸至上位機(jī)管理軟件,上位機(jī)監(jiān)測軟件實(shí)時(shí)顯示當(dāng)前環(huán)境參數(shù)。豬舍環(huán)境異常時(shí),可發(fā)出告警,提醒管理人員及時(shí)采取措施進(jìn)行控制。
系統(tǒng)硬件設(shè)計(jì)包含兩部分,6LoWPAN傳感器節(jié)點(diǎn)硬件設(shè)計(jì)和6LoWPAN邊緣路由器硬件設(shè)計(jì)。
6LoWPAN傳感器節(jié)點(diǎn)由主控制單元MCU(main control unit)、RF(Radio Frequency)收發(fā)器及傳感單元組成,具體設(shè)計(jì)如圖2所示。
圖2 傳感器節(jié)點(diǎn)硬件架構(gòu)
文章選用CC2538SF53為主控制單元,其比CC2530運(yùn)行更加穩(wěn)定,接口更加豐富。RF收發(fā)器同時(shí)連接USB轉(zhuǎn)串口電路、時(shí)鐘和復(fù)位電路。傳感單元由溫濕度、光照強(qiáng)度、CO2、H2S、NH3傳感器組成,主要負(fù)責(zé)采集數(shù)據(jù),其選用型號如表1所示。
表1 選用的傳感器
文章采用雙MCU架構(gòu)來實(shí)現(xiàn)6LoWPAN邊緣路由器,即將6LoWPAN傳感節(jié)點(diǎn)和支持OpenWrt的Linux開發(fā)板用串口連接起來,這樣的架構(gòu)可以實(shí)現(xiàn)6LoWPAN網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)的相互通信。具體設(shè)計(jì)如圖3所示。
圖3 邊緣路由器節(jié)點(diǎn)硬件架構(gòu)
支持OpenWrt的Linux開發(fā)板文章選用AR9344為主控制單元,AR9344主頻高達(dá)533MHz,集成了一個(gè)PCI-E Root Complex及一個(gè)PCI-E Endpoint接口,一個(gè)MII/RMII/RGMII接口,并支持SPI接口的Flash和NAND Flash[16-17]。
6LoWPAN傳感器節(jié)點(diǎn)和邊緣路由器的軟件設(shè)計(jì)基于嵌入式操作系統(tǒng)Contiki, Contiki由瑞典計(jì)算機(jī)科學(xué)院Adam dunkels團(tuán)隊(duì)以及ETH大學(xué)開發(fā),常用來實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)、物聯(lián)網(wǎng)[18]。6LoWPAN傳感器節(jié)點(diǎn)進(jìn)行配置錢必須先移植Contiki,由于Contiki己經(jīng)安裝了6LoWPAN和RPL路由協(xié)議,直接可以對Contiki相關(guān)代碼進(jìn)行覆寫,建立傳感器網(wǎng)絡(luò)。
6LoWPAN傳感器節(jié)點(diǎn)通電后,首先啟動(dòng)Contiki系統(tǒng),系統(tǒng)初始化完成后可監(jiān)聽6LoWPAN邊緣路由器的狀態(tài)。一旦RF模塊收到6LoWPAN邊緣路由器發(fā)來的數(shù)據(jù)包,則對收到的數(shù)據(jù)包進(jìn)行解析。解析結(jié)果如果是采集指令,則采集豬舍環(huán)境信息,并通過RF模塊發(fā)送給6LoWPAN邊緣路由器;解析結(jié)果如果是控制指令,則執(zhí)行該控制指令,并將執(zhí)行控制指令后各模塊最終狀態(tài)信息發(fā)送給6LoWPAN邊緣路由器,6LoWPAN傳感器節(jié)點(diǎn)軟件工作流程如圖4所示。
圖4 6LoWPAN傳感器節(jié)點(diǎn)軟件工作流程
6LoWPAN邊緣路由器軟件分為兩個(gè)部分,即以太網(wǎng)功能模塊軟件與6LoWPAN功能模塊軟件。以太網(wǎng)功能模塊端應(yīng)用軟件的開發(fā)基于OpenWrt的Linux系統(tǒng),主要?jiǎng)?chuàng)建兩個(gè)任務(wù),第一個(gè)任務(wù)是將封裝好的數(shù)據(jù)發(fā)送至6LoWPAN功能模塊端;第2個(gè)任務(wù)是接收并解析串口數(shù)據(jù),并通過IPv6網(wǎng)絡(luò)發(fā)送到上位機(jī)監(jiān)測軟件。
6LoWPAN邊緣路由器通電后,雙系統(tǒng)進(jìn)行初始化,初始化完畢處于監(jiān)聽UDP端口信息狀態(tài),等待上位機(jī)軟件通過UDP端口發(fā)來的數(shù)據(jù)包。一旦接收到上位機(jī)軟件發(fā)來數(shù)據(jù)包,先解析數(shù)據(jù)包,然后將解析后的數(shù)據(jù)包由邊緣路由器的RF模塊發(fā)送給6LoWPAN無線傳感網(wǎng)絡(luò),最后6LoWPAN邊緣路由器會(huì)將響應(yīng)狀態(tài)通過IPv6網(wǎng)絡(luò)發(fā)送給上位機(jī)監(jiān)測軟件[19],具體流程如圖5所示。
圖5 邊緣路由器軟件工作流程
上位機(jī)監(jiān)測軟件是豬舍環(huán)境實(shí)時(shí)監(jiān)測的核心,其部署在PC端。上位監(jiān)測軟件采用Visual C++ 6.0編程語言實(shí)現(xiàn),開發(fā)環(huán)境為Visual C++ 6.0的MFC,數(shù)據(jù)庫采用MySQL。上位機(jī)監(jiān)測軟件一方面負(fù)責(zé)向6LoWPAN邊緣路由器發(fā)送采集指令,同時(shí)在接收到6LoWPAN邊緣路由器上傳的環(huán)境數(shù)據(jù)時(shí),將環(huán)境數(shù)據(jù)存儲(chǔ)到MySQL數(shù)據(jù)庫。另一方面負(fù)責(zé)與訪問上位機(jī)的移動(dòng)端和PC端建立起遠(yuǎn)程通信,以實(shí)現(xiàn)移動(dòng)端和PC端遠(yuǎn)程獲取環(huán)境監(jiān)測數(shù)據(jù)。上位機(jī)監(jiān)測軟件還可以開發(fā)異常數(shù)據(jù)報(bào)警模塊,當(dāng)獲取的環(huán)境數(shù)據(jù)超過上位機(jī)預(yù)設(shè)的閥值時(shí),可發(fā)出報(bào)警,提醒工作人員及時(shí)處理。
上位機(jī)軟件啟動(dòng)后,將初始化Socket網(wǎng)絡(luò)和定時(shí)器,同時(shí)創(chuàng)建兩個(gè)Service端口,一個(gè)端口負(fù)責(zé)與6LoWPAN邊緣路由器進(jìn)行通信,另一個(gè)端口負(fù)責(zé)與手機(jī)端APP進(jìn)行通信。當(dāng)網(wǎng)絡(luò)處于正常工作狀態(tài)時(shí),定時(shí)器計(jì)數(shù)到設(shè)定的時(shí)間數(shù)時(shí),上位機(jī)軟件向6LoWPAN邊緣路由器發(fā)送采集指令,當(dāng)6LoWPAN邊緣路由器接收到該指令后,進(jìn)行數(shù)據(jù)采集、處理和打包,并通過WIFI模塊傳輸給上位機(jī)軟件,上位機(jī)軟件接收該數(shù)據(jù)包后,對其進(jìn)行解析是否上傳正確,當(dāng)數(shù)據(jù)正確時(shí)將其存儲(chǔ)在MySQL數(shù)據(jù)庫中。用戶可通過移動(dòng)端APP訪問上位機(jī)來獲取實(shí)時(shí)監(jiān)測的環(huán)境數(shù)據(jù)。
移動(dòng)端APP采用Google公司推出的Android Studio開發(fā)[20]。移動(dòng)端APP與上位機(jī)之間的網(wǎng)絡(luò)采用Http通信方式,此通信采用的是“請求一響應(yīng)”的方式,是一種“短連接”。移動(dòng)端APP需要先與上位機(jī)建立連接,然后向上位機(jī)發(fā)送Http請求,上位機(jī)才會(huì)根據(jù)請求向移動(dòng)端APP返回響應(yīng)數(shù)據(jù),并且在確認(rèn)移動(dòng)端APP收到返回的消息后,上位機(jī)就會(huì)主動(dòng)釋放連接。
本系統(tǒng)在西北農(nóng)林科技大學(xué)某場站養(yǎng)豬場進(jìn)行測試試驗(yàn),在該養(yǎng)豬場的保育舍內(nèi)布置了2個(gè)6LoWPAN傳感器節(jié)點(diǎn),然后將溫濕度傳感器、光照強(qiáng)度傳感器、CO2傳感器、H2S傳感器、NH3傳感器連接到這兩個(gè)6LoWPAN傳感器節(jié)點(diǎn),節(jié)點(diǎn)1配置的IPv6地址為:2001:250:1002:2002:9DF6:129B:7828:233C,節(jié)點(diǎn)2配置的IPv6地址為:2001:250:1002:2020:E557:99EF:FCEA:4380,將連通IPv6網(wǎng)絡(luò)后的6LoWPAN邊緣路由器放置在距離兩個(gè)6LoWPAN傳感節(jié)點(diǎn)4 M的地方,隨后在測試移動(dòng)端安裝好上位機(jī)監(jiān)測APP,讓其通過校內(nèi)IPv6網(wǎng)絡(luò)與6LoWPAN傳感器網(wǎng)絡(luò)建立通信。6LoWPAN傳感器節(jié)點(diǎn)和6LoWPAN邊緣路由器加電后開始工作,節(jié)點(diǎn)1可在30 s內(nèi)將采集的數(shù)據(jù)發(fā)送給6LoWPAN邊緣路由器;節(jié)點(diǎn)2可在28 s內(nèi)將采集的數(shù)據(jù)發(fā)送給6LoWPAN邊緣路由器,6LoWPAN邊緣路由器可在15 s內(nèi)將數(shù)據(jù)上傳至上位機(jī)監(jiān)測APP,上位機(jī)監(jiān)測APP接收到數(shù)據(jù)后,顯示結(jié)果如圖6所示。
圖6 監(jiān)測APP接收數(shù)據(jù)后顯示界面
文章基于6LoWPAN傳感器網(wǎng)絡(luò)技術(shù)和IPv6網(wǎng)絡(luò)技術(shù)設(shè)計(jì)開發(fā)了一套豬舍環(huán)境遠(yuǎn)程監(jiān)測系統(tǒng)。該系統(tǒng)不但實(shí)現(xiàn)了豬舍內(nèi)環(huán)境數(shù)據(jù)的遠(yuǎn)程監(jiān)測和環(huán)境異常報(bào)警,而且能夠持續(xù)獲取豬舍環(huán)境監(jiān)測數(shù)據(jù),運(yùn)行穩(wěn)定,能滿足豬舍環(huán)境遠(yuǎn)程監(jiān)測需求。