楊斷利 李 今 陳 輝 耿浩川 王德賀 張 然
(1.河北農(nóng)業(yè)大學(xué)信息科學(xué)與技術(shù)學(xué)院, 保定 071001; 2.河北農(nóng)業(yè)大學(xué)動(dòng)物科技學(xué)院, 保定 071000;3.辛集市動(dòng)物疫病預(yù)防控制中心, 辛集 052360)
封閉蛋雞舍環(huán)境中存在多種有害氣體,主要包括氨氣、硫化氫、二氧化碳等[1]。有害氣體的存在會(huì)對(duì)蛋雞的健康和生產(chǎn)性能產(chǎn)生不同程度的危害[2-4]。有害氣體中的硫化氫容易引起雞的肺部水腫,氨氣容易引起雞眼結(jié)膜發(fā)炎,二氧化碳濃度過(guò)高容易引起雞呼吸困難[5-7]。目前,部分蛋雞舍養(yǎng)殖條件較差,沒(méi)有安裝對(duì)養(yǎng)殖環(huán)境進(jìn)行有效監(jiān)測(cè)和調(diào)控的設(shè)備[8-9]。部分雞舍安裝有養(yǎng)殖環(huán)境監(jiān)控設(shè)備,但往往將傳感器測(cè)量的有害氣體濃度數(shù)據(jù)直接用于系統(tǒng)調(diào)控,而并未對(duì)數(shù)據(jù)進(jìn)行分析和處理[10]。氣體傳感器存在的交叉敏感性問(wèn)題往往導(dǎo)致測(cè)量結(jié)果誤差較大。
近年來(lái),國(guó)內(nèi)外對(duì)BP神經(jīng)網(wǎng)絡(luò)算法的研究已經(jīng)相對(duì)成熟,BP神經(jīng)網(wǎng)絡(luò)以其非線性映射及并行處理的能力,常被用于解決因交叉敏感性而導(dǎo)致氣體傳感器測(cè)量精度不夠的問(wèn)題。但是,BP神經(jīng)網(wǎng)絡(luò)算法在訓(xùn)練過(guò)程中存在易陷入局部極小值的情況,致使測(cè)量精度的提高程度往往并不理想。為了進(jìn)一步提高測(cè)量精度,利用改進(jìn)粒子群算法(Improved particle swarm optimization,IPSO)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型,可明顯改善BP神經(jīng)網(wǎng)絡(luò)易陷入局部極小值的現(xiàn)象。
國(guó)內(nèi)對(duì)雞舍有害氣體監(jiān)測(cè)系統(tǒng)的研究主要集中在數(shù)據(jù)采集和傳輸技術(shù)方面[11-13],利用智能算法對(duì)雞舍有害氣體數(shù)據(jù)進(jìn)行處理的相關(guān)研究較少,本文設(shè)計(jì)開(kāi)發(fā)蛋雞舍有害氣體監(jiān)測(cè)系統(tǒng),融合ZigBee無(wú)線傳輸[14-16]、傳感器、STM32技術(shù)及智能算法,對(duì)目前雞舍監(jiān)控系統(tǒng)常用的MQ137、MQ136、MQ135、TGS2602和SGP30 5種型號(hào)傳感器采集得到的數(shù)據(jù)進(jìn)行優(yōu)化處理,以期為改善現(xiàn)有雞舍監(jiān)控系統(tǒng)性能提供新方法。
雞舍有害氣體監(jiān)測(cè)系統(tǒng)由3部分構(gòu)成:有害氣體數(shù)據(jù)采集端、服務(wù)器端和手機(jī)APP端。數(shù)據(jù)采集端利用ZigBee節(jié)點(diǎn)自組網(wǎng)形成無(wú)線傳感器網(wǎng)絡(luò),將傳感器采集得到的數(shù)據(jù)無(wú)線傳輸至協(xié)調(diào)器,協(xié)調(diào)器利用串口將數(shù)據(jù)傳送至STM32模塊,并保存至SD卡中。讀取SD卡數(shù)據(jù),利用IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型,利用數(shù)據(jù)進(jìn)行訓(xùn)練,從而得到優(yōu)化模型。STM32利用GPRS模塊進(jìn)行遠(yuǎn)程連接,連接到服務(wù)器后,將數(shù)據(jù)傳輸至數(shù)據(jù)庫(kù)進(jìn)行保存。同時(shí)開(kāi)發(fā)手機(jī)APP軟件同步服務(wù)器數(shù)據(jù),實(shí)現(xiàn)傳感器數(shù)據(jù)實(shí)時(shí)顯示,并可進(jìn)行閾值設(shè)置,實(shí)現(xiàn)自動(dòng)報(bào)警等功能。雞舍有害氣體監(jiān)測(cè)系統(tǒng)總體結(jié)構(gòu)如圖1所示。
為了充分測(cè)量雞舍內(nèi)部多點(diǎn)有害氣體濃度,系統(tǒng)采用8個(gè)ZigBee終端節(jié)點(diǎn)采集數(shù)據(jù),1個(gè)ZigBee協(xié)調(diào)器節(jié)點(diǎn)接收數(shù)據(jù)。采用點(diǎn)對(duì)點(diǎn)通信方式,終端節(jié)點(diǎn)只能和協(xié)調(diào)器進(jìn)行通信,其他任意兩節(jié)點(diǎn)間都不能進(jìn)行通信,確保了數(shù)據(jù)傳輸?shù)陌踩院涂煽啃訹17]。每個(gè)終端節(jié)點(diǎn)連接5種型號(hào)傳感器,各傳感器的原理均為傳感器的阻值變化引起電壓變化從而反映濃度變化,各傳感器參數(shù)見(jiàn)表1。
表1 傳感器參數(shù)Tab.1 Sensor parameters
ZigBee協(xié)調(diào)器數(shù)據(jù)接收過(guò)程如圖2所示,ZigBee協(xié)調(diào)器上電,系統(tǒng)初始化并設(shè)定數(shù)據(jù)接收總時(shí)間,搜索信道并創(chuàng)建網(wǎng)絡(luò),若有節(jié)點(diǎn)成功加入,則協(xié)調(diào)器為該節(jié)點(diǎn)分配網(wǎng)絡(luò)地址并綁定,然后進(jìn)行數(shù)據(jù)的接收和存儲(chǔ),同時(shí)根據(jù)數(shù)據(jù)接收總時(shí)間判斷繼續(xù)或結(jié)束。ZigBee終端節(jié)點(diǎn)利用5種型號(hào)傳感器對(duì)有害氣體的濃度進(jìn)行采集。ZigBee終端節(jié)點(diǎn)數(shù)據(jù)采集過(guò)程如圖3所示,終端節(jié)點(diǎn)上電,系統(tǒng)初始化并設(shè)定數(shù)據(jù)采集間隔及采集總時(shí)間,發(fā)送加入網(wǎng)絡(luò)信息至協(xié)調(diào)器,若成功入網(wǎng),則每隔5 min采集并發(fā)送一次數(shù)據(jù)至協(xié)調(diào)器,直至達(dá)到數(shù)據(jù)采集總時(shí)間。
采用STM32F103RCT6單片機(jī)進(jìn)行數(shù)據(jù)的接收和傳輸,GPRS模塊選擇USR-GM3,ZigBee協(xié)調(diào)器和USR-GM3模塊與單片機(jī)通信方式均采用串口通信。STM32有多個(gè)串口,本次蛋雞舍有害氣體監(jiān)測(cè)系統(tǒng)利用串口1和串口2進(jìn)行開(kāi)發(fā),電路原理如圖4所示,將協(xié)調(diào)器的P0_2、P0_3引腳分別連接STM32的PA9(UART1_TX)、PA10(UART1_RX)引腳, USR-GM3模塊的TXD、RXD引腳分別連接STM32的PA3(UART2_RX)、PA2(UART2_TX)引腳,系統(tǒng)電壓為5 V。
STM32單片機(jī)主程序流程圖如圖5所示,初始化完成后,發(fā)送AT指令登錄服務(wù)器;登錄成功后,單片機(jī)進(jìn)行數(shù)據(jù)讀??;讀取到數(shù)據(jù)后對(duì)數(shù)據(jù)進(jìn)行解析,并將數(shù)據(jù)存儲(chǔ)至SD卡;最后發(fā)送至服務(wù)器端。發(fā)送成功后,清空標(biāo)志位并返回,讀取下一個(gè)要發(fā)送的數(shù)據(jù),繼續(xù)上述過(guò)程,直至所有數(shù)據(jù)發(fā)送完成。
2.3.1BP神經(jīng)網(wǎng)絡(luò)
蛋雞舍有害氣體監(jiān)測(cè)系統(tǒng)采用5種傳感器構(gòu)成的陣列對(duì)雞舍中3種有害氣體進(jìn)行檢測(cè),設(shè)a1、a2和a3分別為3種有害氣體濃度,傳感器陣列對(duì)這3種有害氣體的測(cè)量輸出值di(i=1,2,3,4,5)是一個(gè)非線性方程組,表示為
(1)
式中fi(a1,a2,a3)——濃度與傳感器響應(yīng)值之間的映射關(guān)系
將式(1)簡(jiǎn)寫(xiě)成
D=F(A)
其中
A=(a1,a2,a3)
D=(d1,d2,d3,d4,d5)F=(f1(·),f2(·),f3(·),f4(·),f5(·))
式中A——濃度向量
D——傳感器響應(yīng)值向量
F——濃度向量與傳感器響應(yīng)值向量之間的映射關(guān)系向量
可以簡(jiǎn)單描述為
Y=H(D)
(2)
因此,為了求得Y=A,須求H=F-1,所以建立BP神經(jīng)網(wǎng)絡(luò)求出傳感器響應(yīng)輸入與真實(shí)氣體濃度輸出之間的非線性關(guān)系。
建立優(yōu)化蛋雞舍內(nèi)多氣體傳感器數(shù)據(jù)監(jiān)測(cè)的BP神經(jīng)網(wǎng)絡(luò)模型,如圖6所示,采用隱含層數(shù)為1的3層網(wǎng)絡(luò)結(jié)構(gòu),輸入層為5種型號(hào)傳感器測(cè)量數(shù)據(jù),輸出層為3種氣體真實(shí)值,隱含層神經(jīng)元個(gè)數(shù)計(jì)算式為
(3)
式中NH——隱含層神經(jīng)元個(gè)數(shù)
Ni——輸入層神經(jīng)元個(gè)數(shù)
N0——輸出層神經(jīng)元個(gè)數(shù)
L——常數(shù)
本次實(shí)驗(yàn)綜合雞舍內(nèi)8個(gè)節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行BP神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,每個(gè)節(jié)點(diǎn)140個(gè)數(shù)據(jù)樣本,共1 120個(gè)數(shù)據(jù)樣本,隨機(jī)選用1 000個(gè)作訓(xùn)練樣本,剩余120個(gè)作測(cè)試樣本。每個(gè)樣本有5個(gè)輸入, 3個(gè)輸出。通過(guò)反復(fù)實(shí)驗(yàn)確定隱含層的傳遞函數(shù)為sigmoid,輸出層的傳遞函數(shù)為purelin。在定義輸入向量和輸出向量時(shí),對(duì)樣本實(shí)驗(yàn)數(shù)據(jù)進(jìn)行歸一化處理,計(jì)算式為
(4)
式中xmax——同一傳感器響應(yīng)值的最大值
xmin——同一傳感器響應(yīng)值的最小值
YMAX——?dú)w一化最大值,取1
YMIN——?dú)w一化最小值,取-1
根據(jù)式(3)確定隱含層神經(jīng)元個(gè)數(shù)為4~13,分別選取不同數(shù)量神經(jīng)元的神經(jīng)網(wǎng)絡(luò)輸出值與真實(shí)值進(jìn)行對(duì)比,其平均相對(duì)誤差對(duì)比結(jié)果如表2所示。結(jié)果表明,神經(jīng)元個(gè)數(shù)為10時(shí),3種氣體的平均相對(duì)誤差的平均數(shù)最小。所以最終選取隱含層節(jié)點(diǎn)個(gè)數(shù)為10。
表2 不同隱含層神經(jīng)元數(shù)的神經(jīng)網(wǎng)絡(luò)輸出值與真實(shí)值 平均相對(duì)誤差Tab.2 Average relative error between the output value and the real value of the neural network with different hidden layers
2.3.2粒子群原理及改進(jìn)
(1)粒子群原理
KENNEDY等[18]于1995年提出了粒子群優(yōu)化算法。該算法因其簡(jiǎn)單易懂、容易求得網(wǎng)絡(luò)全局的最優(yōu)解,已經(jīng)被廣泛應(yīng)用于很多領(lǐng)域[19-23]。本實(shí)驗(yàn)利用它優(yōu)化BP神經(jīng)網(wǎng)絡(luò)存在的收斂速度慢、局部極小等問(wèn)題。該算法中粒子依據(jù)自身以及其他粒子移動(dòng)經(jīng)驗(yàn)來(lái)改變并調(diào)節(jié)自身移動(dòng),適應(yīng)度函數(shù)決定粒子質(zhì)量[18]。所有粒子調(diào)整依據(jù)為
vi+1=ωvi+c1r1(pbest[i]-xi)+c2r2(gbest[i]-xi)
(5)
xi+1=xi+vi
(6)
式中c1、c2——學(xué)習(xí)因子,常數(shù),通常取2
ω——慣性權(quán)重
r1、r2——0~1間的隨機(jī)數(shù)
pbest[i]——粒子個(gè)體經(jīng)歷過(guò)的“最好”位置
gbest[i]——群體經(jīng)歷過(guò)的“最好”位置
vi——粒子當(dāng)前速度
xi——粒子當(dāng)前位置
(2) 學(xué)習(xí)因子和慣性權(quán)重改進(jìn)
本實(shí)驗(yàn)設(shè)計(jì)粒子在初始搜索時(shí)有大的個(gè)體認(rèn)知,小的群體認(rèn)知。在結(jié)束時(shí),有小的個(gè)體認(rèn)知和大的群體認(rèn)知。研究動(dòng)態(tài)調(diào)整慣性權(quán)重ω策略時(shí),發(fā)現(xiàn)權(quán)重ω較大時(shí),搜索時(shí)易于跳出局部極小,權(quán)重ω較小時(shí),算法收斂良好,因此本次實(shí)驗(yàn)最終采取權(quán)重線性遞減策略實(shí)現(xiàn)前期搜索中的全局作用,后期搜索的局部作用。c1、c2、ω計(jì)算式為
(7)
c2=4-c1
(8)
(9)
式中mj——最大迭代次數(shù)
mi——當(dāng)前迭代次數(shù)
cs——c1初始值,取4
ce——c1最終值,取1
ωs——權(quán)重ω初始值,取0.9
ωe——權(quán)重ω最終值,取0.4
由圖7可知,改進(jìn)后粒子群適應(yīng)度收斂速度更快,不易陷入局部極小值。
經(jīng)重復(fù)實(shí)驗(yàn)最終確定迭代次數(shù)為終止條件并設(shè)置為30,種群規(guī)模設(shè)置為20。然后進(jìn)行種群初始化,以給定訓(xùn)練樣本集的神經(jīng)網(wǎng)絡(luò)輸出均方誤差作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練問(wèn)題的適應(yīng)度函數(shù),迭代尋優(yōu)更新,最終根據(jù)判斷條件終止。將IPSO算法作用于BP神經(jīng)網(wǎng)絡(luò),圖8為IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)流程圖。
服務(wù)器端程序采用Java Mina框架。如圖9所示,在主類(lèi)MinaServer中分別開(kāi)啟STM32硬件端監(jiān)聽(tīng)端口3001和手機(jī)APP端監(jiān)聽(tīng)端口3000,并分別綁定SensorHandler處理類(lèi)和AppHandler處理類(lèi)。硬件端登錄成功后,服務(wù)器端利用SensorHandler處理類(lèi)進(jìn)行數(shù)據(jù)標(biāo)識(shí)DATA1的判斷,若為DATA1則將數(shù)據(jù)存入數(shù)據(jù)庫(kù),否則發(fā)送心跳回復(fù)給硬件端。若一段時(shí)間后仍未接收到數(shù)據(jù)證明硬件端與服務(wù)器斷連,則結(jié)束。手機(jī)APP軟件登錄成功后,在AppHandler類(lèi)的messageReceived方法中,利用JSONObject解析APP發(fā)送的JSON格式的數(shù)據(jù),然后通過(guò)receivejson.getInt(“TYPE”)獲取TYPE類(lèi)型,在switch(TYPE)中判斷類(lèi)型值然后執(zhí)行對(duì)應(yīng)代碼,并發(fā)送數(shù)據(jù)給手機(jī)APP。判斷是否成功發(fā)送數(shù)據(jù),若發(fā)送成功,則繼續(xù)監(jiān)聽(tīng)并解析收到的數(shù)據(jù),否則延時(shí)一段時(shí)間再次發(fā)送,若仍未發(fā)送成功則證明服務(wù)器與手機(jī)APP斷連,則結(jié)束。
手機(jī)APP設(shè)計(jì)時(shí)采用一個(gè)Activity管理多個(gè)Fragment的方式,這種方式的優(yōu)點(diǎn)是界面切換方便[24],在每一個(gè)Fragment類(lèi)中,首先重寫(xiě)onCreateView方法,應(yīng)用該方法調(diào)用LayoutInflater對(duì)象的inflate方法,用來(lái)設(shè)置顯示界面和定義控件,利用View.findViewById方法將控件的ID傳入,即可獲得布局控件的實(shí)例對(duì)象,在代碼中可動(dòng)態(tài)管理控件的位置、文本和顏色信息。如圖10所示,主活動(dòng)MainActivity管理歡迎、登錄、修改密碼、注冊(cè)賬號(hào)和主界面,主界面中關(guān)聯(lián)我的界面和設(shè)備界面,設(shè)備界面下關(guān)聯(lián)開(kāi)關(guān)界面和傳感器界面。手機(jī)APP主要開(kāi)發(fā)界面如圖11所示。
2020年8月8日在河北省保定市某封閉式養(yǎng)雞場(chǎng)雞舍進(jìn)行測(cè)試實(shí)驗(yàn)。雞舍內(nèi)部尺寸為長(zhǎng)27 m,寬7 m,檐高2.3 m,頂高2.7 m,2列雞籠,每列雞籠共3層,飼養(yǎng)2 500只雞。為了充分地掌握雞群各點(diǎn)氣體濃度信息,如圖1所示在每列雞籠上均勻布置4個(gè)采集節(jié)點(diǎn),共8個(gè)采集節(jié)點(diǎn),8個(gè)采集節(jié)點(diǎn)分別布置在雞籠下雞糞傳送帶上方約5 cm處。1個(gè)協(xié)調(diào)器采集節(jié)點(diǎn)置于一側(cè)雞籠的中間位置。由于雞舍中有害氣體主要是糞便發(fā)酵產(chǎn)生的[25],并且由于北方夏季高溫高濕的條件相較于其他3個(gè)季節(jié)更易促使糞便發(fā)酵,從而導(dǎo)致有害氣體濃度相較其他3個(gè)季節(jié)變化更快、濃度更高,所以在本次實(shí)驗(yàn)中,測(cè)量季節(jié)選定為夏季。為了降溫,夏季白天雞舍一直處于通風(fēng)狀態(tài),通風(fēng)時(shí)間段為08:00—20:00。為了檢驗(yàn)系統(tǒng)能否正常工作,系統(tǒng)安裝時(shí)間為18:00,在18:00—20:00通風(fēng)時(shí)間段內(nèi),系統(tǒng)測(cè)量到的氨氣質(zhì)量濃度保持在1.60 mg/m3左右,硫化氫質(zhì)量濃度保持在0.15 mg/m3左右,二氧化碳質(zhì)量濃度保持在1 334 mg/m3左右,系統(tǒng)工作正常。由于在通風(fēng)時(shí)間段,氣體濃度沒(méi)有大的變化且較低,所以主要選擇在不通風(fēng)的時(shí)間段進(jìn)行數(shù)據(jù)采集。在風(fēng)機(jī)停止工作的20:00至次日08:00共進(jìn)行了12 h的數(shù)據(jù)采集,采集工作順利完成。在數(shù)據(jù)采集期間,傳感器每隔5 min進(jìn)行一次采集,為了將傳感器測(cè)量值與有害氣體真實(shí)值進(jìn)行對(duì)比,采用保時(shí)安BH-90A型精密手持測(cè)量?jī)x對(duì)各節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行采集,將手持儀采集到的數(shù)據(jù)作為真實(shí)值??紤]到人員頻繁進(jìn)入雞舍會(huì)使雞產(chǎn)生應(yīng)激反應(yīng),并且氣體濃度在30 min內(nèi)的變化相對(duì)穩(wěn)定,因此間隔30 min依次對(duì)8個(gè)采集節(jié)點(diǎn)利用手持儀進(jìn)行測(cè)量。雞舍內(nèi)布置的8個(gè)節(jié)點(diǎn)共采集數(shù)據(jù)1 120個(gè),達(dá)到了實(shí)驗(yàn)預(yù)期,證實(shí)了該系統(tǒng)的可行性。
經(jīng)統(tǒng)計(jì)分析采集的1 120個(gè)數(shù)據(jù)樣本,可以看出各傳感器的測(cè)量值與真實(shí)值誤差較大,如表3所示。
表3 各傳感器測(cè)量值與真實(shí)值誤差對(duì)比Tab.3 Comparison of error range between measured and true values of each sensor
分別利用BP神經(jīng)網(wǎng)絡(luò)模型和IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型對(duì)1 000個(gè)樣本訓(xùn)練完成后,保存網(wǎng)絡(luò),并利用120個(gè)測(cè)試樣本進(jìn)行測(cè)試,為了能在圖中清晰地展現(xiàn)結(jié)果,隨機(jī)選取20個(gè)測(cè)試樣本數(shù)據(jù)作圖,測(cè)試結(jié)果如圖12所示??梢钥闯?,利用BP神經(jīng)網(wǎng)絡(luò)模型處理后的數(shù)據(jù)比傳感器測(cè)量數(shù)據(jù)接近真實(shí)值, IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型處理后的數(shù)據(jù),相比于BP神經(jīng)網(wǎng)絡(luò)模型處理后的數(shù)據(jù)更進(jìn)一步接近真實(shí)值。
為了更客觀地對(duì)模型進(jìn)行評(píng)價(jià),利用平均相對(duì)誤差百分比和擬合優(yōu)度兩種評(píng)價(jià)指標(biāo)對(duì)兩種模型的處理結(jié)果進(jìn)行對(duì)比。表4為120個(gè)測(cè)試樣本在BP神經(jīng)網(wǎng)絡(luò)模型和IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型下平均相對(duì)誤差和決定系數(shù)的對(duì)比結(jié)果,從表4可以看出,利用IPSO優(yōu)化BP模型優(yōu)化雞舍內(nèi)有害氣體數(shù)據(jù),平均相對(duì)誤差和擬合優(yōu)度均優(yōu)于BP神經(jīng)網(wǎng)絡(luò)模型。經(jīng)IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)后二氧化碳、氨氣、硫化氫的平均相對(duì)誤差為5.32%、8.78%和7.20%,優(yōu)化效果良好。
表4 2種模型處理結(jié)果對(duì)比Tab.4 Comparison of processing results of two models
由表5可以看出,各傳感器數(shù)據(jù)精度均有提高,其中SGP30型、MQ135型、MQ137型、MQ136型和TGS2602型傳感器精度分別提高了12.94、29.4、21.05、30.45、29.83個(gè)百分點(diǎn)。實(shí)驗(yàn)結(jié)果表明,基于IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型將傳感器測(cè)得的數(shù)據(jù)進(jìn)行優(yōu)化處理,提高了有害氣體數(shù)據(jù)精度,改善了傳感器之間的交叉敏感問(wèn)題。
表5 各傳感器測(cè)量數(shù)據(jù)優(yōu)化前后精度對(duì)比Tab.5 Comparison of measurement accuracy of each sensor before and after optimization %
以封閉蛋雞舍有害氣體精確監(jiān)測(cè)為目的,設(shè)計(jì)并實(shí)現(xiàn)了結(jié)合ZigBee技術(shù)、STM32技術(shù)及IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)智能算法的有害氣體精確監(jiān)測(cè)系統(tǒng)。系統(tǒng)實(shí)現(xiàn)了氣體數(shù)據(jù)采集和存儲(chǔ)、GPRS模塊遠(yuǎn)程上傳、手機(jī)APP端實(shí)時(shí)顯示及數(shù)據(jù)超出閾值進(jìn)行振動(dòng)報(bào)警等功能。針對(duì)氣體傳感器因存在交叉干擾而導(dǎo)致雞舍有害氣體數(shù)據(jù)精度較低的問(wèn)題,采用IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型優(yōu)化氣體傳感器測(cè)得的數(shù)據(jù),有效提高了數(shù)據(jù)精度。實(shí)驗(yàn)結(jié)果表明,監(jiān)測(cè)系統(tǒng)運(yùn)行良好,實(shí)現(xiàn)了系統(tǒng)設(shè)計(jì)的功能,同時(shí),利用IPSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型處理后,3種有害氣體的平均測(cè)量精度均不小于91.23%,能夠滿足對(duì)雞舍有害氣體精確監(jiān)測(cè)的要求。該系統(tǒng)方便可靠、容易部署,且可移植性強(qiáng),為禽舍養(yǎng)殖環(huán)境精確監(jiān)測(cè)提供了有效手段。