牛萍娟 程崢 田海濤
摘要:針對(duì)目前溫室大棚環(huán)境調(diào)控方式落后、生產(chǎn)效率低的問題,設(shè)計(jì)了一種無線溫室監(jiān)控系統(tǒng)。該系統(tǒng)由終端設(shè)備、智能網(wǎng)關(guān)、手機(jī)APP這3個(gè)部分組成。采用STM32完成智能網(wǎng)關(guān)設(shè)計(jì),將溫室內(nèi)各種設(shè)備如電燈、卷簾機(jī)、加熱器、加濕器、各類傳感器等通過ZigBee、Wi-Fi、RF、紅外連接起來,并設(shè)計(jì)一種基于安卓(Android)平臺(tái)的人機(jī)交互界面,實(shí)現(xiàn)監(jiān)控功能。提出指紋庫(kù)定位方法的改進(jìn)策略,在ZigBee終端節(jié)點(diǎn)內(nèi)的Z-stack協(xié)議棧中加入卡爾曼濾波算法,在線定位階段加入貝葉斯概率定位法,實(shí)現(xiàn)無線網(wǎng)內(nèi)定位功能。說明該系統(tǒng)運(yùn)行可靠、靈敏度高、數(shù)據(jù)傳輸丟包率低、性價(jià)比高,能較好地滿足溫室智能監(jiān)控的應(yīng)用需求。
關(guān)鍵詞:溫室;STM32;智能網(wǎng)關(guān);多網(wǎng)融合;安卓(Android);ZigBee定位;手機(jī)APP;智能監(jiān)控系統(tǒng)
中圖分類號(hào): S126;TP277.2 ?文獻(xiàn)標(biāo)志碼: A ?文章編號(hào):1002-1302(2019)14-0239-04
隨著農(nóng)業(yè)現(xiàn)代化的飛速發(fā)展,溫室環(huán)境監(jiān)控成為國(guó)內(nèi)外研究的熱點(diǎn)之一[1]。溫室大棚作為一種現(xiàn)代農(nóng)業(yè)生產(chǎn)的輔助手段,不僅可以改善溫室氣候、減少外界4季變化和惡劣氣候?qū)厥掖笈飪?nèi)植物的影響,還可以調(diào)節(jié)溫室大棚內(nèi)的環(huán)境為植物生長(zhǎng)的最佳環(huán)境[2]。物聯(lián)網(wǎng)的技術(shù)日新月異,物聯(lián)網(wǎng)的應(yīng)用也趨于廣泛,設(shè)備的控制方式逐漸脫離了傳統(tǒng)的人工控制,趨向于無線控制[3]。溫室內(nèi)擁有眾多的智能設(shè)備,如電子顯示屏、各類傳感器、RF電燈開關(guān)、門禁電磁鎖等,各設(shè)備之間的相互獨(dú)立,給溫室管理員帶來了極大的不便。多網(wǎng)融合的溫室監(jiān)控系統(tǒng)可以兼容各種網(wǎng)絡(luò)接口的設(shè)備,對(duì)室內(nèi)各種設(shè)備進(jìn)行集中控制,并且具備無線網(wǎng)內(nèi)定位功能。本系統(tǒng)融合通信、計(jì)算機(jī)、自動(dòng)控制等技術(shù)為一體,集服務(wù)性、管理性于一體,溫室管理員能夠更便捷地通過手機(jī)APP控制溫室內(nèi)的各種設(shè)備,并掌握設(shè)備的使用狀況。
1 系統(tǒng)總體設(shè)計(jì)
溫室智能監(jiān)控系統(tǒng)由終端設(shè)備單元、智能網(wǎng)關(guān)單元、系統(tǒng)管理單元3個(gè)部分組成。終端設(shè)備包括室內(nèi)照明設(shè)備、卷簾機(jī)、加熱器、智能傳感器等,它們通過ZigBee、紅外、433 MHz的RF接口向智能網(wǎng)關(guān)傳送環(huán)境信息或者接收各類指令,ZigBee傳感器節(jié)點(diǎn)同時(shí)作為室內(nèi)定位的信標(biāo)節(jié)點(diǎn),在室內(nèi)檢測(cè)盲點(diǎn)的位置。智能網(wǎng)關(guān)通過Wi-Fi上傳室內(nèi)環(huán)境信息,解析來自APP的控制信息,向各個(gè)終端設(shè)備發(fā)送控制指令,并與室內(nèi)的ZigBee傳感器節(jié)點(diǎn)組成星形ZigBee網(wǎng)絡(luò),以太網(wǎng)接口將室內(nèi)的環(huán)境信息、設(shè)備使用狀態(tài)通過Internet上傳到溫室設(shè)備管理中心。系統(tǒng)管理單元包括安卓(Android)手機(jī)和室內(nèi)觸摸平板,它們運(yùn)行的均為基于Android平臺(tái)的上位機(jī)軟件,用戶可根據(jù)APP界面操控室內(nèi)各個(gè)設(shè)備,并獲得室內(nèi)的環(huán)境信息,實(shí)現(xiàn)方便快捷的管理功能。整個(gè)系統(tǒng)如圖1所示。
2 ZigBee指紋庫(kù)定位方法及其改進(jìn)
2.1 指紋庫(kù)定位方法
在1個(gè)擁有多個(gè)ZigBee傳感器節(jié)點(diǎn)的網(wǎng)絡(luò)里,所有信標(biāo)節(jié)點(diǎn)的位置都是已知的。盲點(diǎn)信息須要獲取大量的已知節(jié)點(diǎn)和盲點(diǎn)與其之間的信號(hào)強(qiáng)度(RSSI),并根據(jù)特定的測(cè)距公式和定位算法綜合估算出盲點(diǎn)的實(shí)時(shí)坐標(biāo)信息[4]。定位過程主要有3個(gè)部分,即測(cè)距、定位、修正。指紋庫(kù)定位方法過程如下[5]:第1步是建立離線定位系統(tǒng)的指紋庫(kù),在定位區(qū)域內(nèi)劃分成若干個(gè)網(wǎng)格,每一個(gè)網(wǎng)格點(diǎn)在一定時(shí)間內(nèi)接收幾個(gè)固定信標(biāo)節(jié)點(diǎn)的RSSI值作為該點(diǎn)的指紋特征。第2步為線上定位操作,采集該盲點(diǎn)在定位區(qū)域內(nèi)接收各信標(biāo)節(jié)點(diǎn)的RSSI值。然后將采集的實(shí)際RSSI坐標(biāo)與指紋庫(kù)內(nèi)的RSSI坐標(biāo)作對(duì)比,找到1個(gè)與指紋庫(kù)最接近的定位點(diǎn)。
2.2 改進(jìn)的指紋庫(kù)定位方法
指紋庫(kù)定位方法雖然在一定程度上大大地提高了定位精度,但是定位的穩(wěn)定性和可靠性仍然有明顯的不足。定位環(huán)節(jié)主要有2個(gè)點(diǎn)須要改進(jìn):首先,在室內(nèi),由于存在非視距、多重干擾,盲點(diǎn)接收來自信標(biāo)點(diǎn)的RSSI值可能不準(zhǔn)確。若想提高定位的準(zhǔn)確性,在建立指紋庫(kù)的過程中必須對(duì)每個(gè)網(wǎng)格點(diǎn)的信號(hào)作濾波處理。只有建立一個(gè)相對(duì)準(zhǔn)確的指紋庫(kù),才可以使后期的在線定位具有可靠性。指紋庫(kù)建立過程中存在多種噪聲干擾, 因此在建立庫(kù)的過程中加入卡爾曼濾波算法[6]
消除噪聲,從而提高系統(tǒng)的定位精度。其次,在線定位階段,在將測(cè)得的盲點(diǎn)的RSSI值與指紋庫(kù)的值作對(duì)比這個(gè)過程中加入貝葉斯定位算法[7],根據(jù)試驗(yàn)可得定位誤差大大減少。
2.3 試驗(yàn)以及性能分析
筆者采用6個(gè)信標(biāo)節(jié)點(diǎn)進(jìn)行試驗(yàn),分別對(duì)指紋庫(kù)建立階段進(jìn)行卡爾曼濾波操作和不進(jìn)行處理,以及在在線定位階段采取貝葉斯定位算法和最鄰近定位算法進(jìn)行處理,試驗(yàn)結(jié)果(表1)表明,在指紋庫(kù)建立階段加入卡爾曼濾波算法和貝葉斯定位算法可以有效地減小定位誤差,提高系統(tǒng)的整體定位精度。使用卡爾曼濾波和貝葉斯定位算法的平均偏差為0.32 m,而建立指紋庫(kù)的過程不采取任何措施、定位方法為最鄰近算法的平均偏差為1.18 m,誤差極大。由此可以看出,改進(jìn)的指紋庫(kù)定位方法效果改善明顯,具有實(shí)際的推廣意義。
3 硬件設(shè)計(jì)
本系統(tǒng)硬件由傳感器模塊、ZigBee通信模塊、智能網(wǎng)關(guān)模塊、電源模塊組成。傳感器模塊采集的環(huán)境信息包含室內(nèi)溫濕度、光照度、CO2濃度、土壤溫濕度等。ZigBee模塊分為終端節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)2種,終端節(jié)點(diǎn)留有傳感器接口,負(fù)責(zé)采集環(huán)境信息,并且作為信標(biāo)節(jié)點(diǎn)檢測(cè)盲點(diǎn)的RSSI值,協(xié)調(diào)器負(fù)責(zé)數(shù)據(jù)的匯總轉(zhuǎn)發(fā)[8]。智能網(wǎng)關(guān)模塊采用的是基于ARM的Cortex-M3內(nèi)核的STM32F103VET6,搭載μCOS-Ⅱ系統(tǒng),包含Wi-Fi模塊、433 MHz射頻發(fā)射模塊、紅外信號(hào)發(fā)射模塊、紅外接收模塊、ZigBee協(xié)調(diào)器模塊。電源模塊分為2部分:ZigBee傳感器結(jié)點(diǎn)模塊和智能網(wǎng)關(guān)模塊,ZigBee傳感器結(jié)點(diǎn)模塊采用USB和干電池供電2種模式,智能網(wǎng)關(guān)采用5~18 V電源和USB供電2種方案,USB供電均為調(diào)試備用供電。
3.1 ZigBee通信模塊
ZigBee通信模塊分為終端節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)。本次ZigBee選用的是TI的CC2530F256芯片,該芯片是一個(gè)集成2.4 GHz的ZigBee射頻模塊和8051內(nèi)核的微控制器,具備 8 kB 的RAM和256 kB的Flash,開發(fā)工具為IAR編譯器[9]。ZigBee傳感器節(jié)點(diǎn)硬件結(jié)構(gòu)圖如圖2所示,各個(gè)模塊電路有機(jī)地組成了一個(gè)整體發(fā)揮作用。CC2530作為一個(gè)集成ZigBee協(xié)議棧的微控制器,通過IIC接口采集傳感器數(shù)據(jù),并通過射頻電路將信號(hào)發(fā)送給協(xié)調(diào)器。該設(shè)備同時(shí)作為信標(biāo)節(jié)點(diǎn),通過CC2591配合增益天線檢測(cè)盲點(diǎn)的RSSI值,在CC2530的內(nèi)核中植入定位算法,確定盲點(diǎn)的位置。
3.2 智能網(wǎng)關(guān)模塊
智能網(wǎng)關(guān)是以基于ARM的Cortex-M3內(nèi)核的STM32F103VET6為核心。該芯片的SRAM為64 kB、Flash為512 kB,擁有2個(gè)基本定時(shí)器、4個(gè)通用定時(shí)器、2路DMA(共12個(gè)通道)、3個(gè)SPI、2個(gè)IIC接口、5個(gè)串口、1個(gè)USB接口、1個(gè)CAN接口、3個(gè)12位的ADC和1個(gè)SDIO接口[10]。芯片主頻可達(dá)72 MHz,指令周期為微秒級(jí)別,處理速度塊。支持ST-link的在線仿真調(diào)試。芯片外設(shè)與GPU集成度高,性能穩(wěn)定,因此選擇此款芯片作為智能網(wǎng)關(guān)的MCU。
智能網(wǎng)關(guān)的硬件結(jié)構(gòu)圖如圖3所示,此處的CC2530作為ZigBee協(xié)調(diào)器與STM32進(jìn)行串口通信,采集ZigBee傳感器節(jié)點(diǎn)上傳的環(huán)境變量以及盲節(jié)點(diǎn)的信號(hào)強(qiáng)度。Wi-Fi射頻電路采用上海漢楓電子科技有限公司的LPB100工業(yè) Wi-Fi 通信解決方案。LPB100為一個(gè)集成的Wi-Fi模塊,內(nèi)部的MCU集成了TCP/IP協(xié)議,自帶Wi-Fi通信固件,與STM32進(jìn)行串口通信。紅外驅(qū)動(dòng)電路由紅外接收管、紅外發(fā)射管、信號(hào)放大電路等組成。根據(jù)紅外通信相關(guān)協(xié)議,STM32軟件編碼解碼并通過驅(qū)動(dòng)電路收集和發(fā)送紅外信息。433 MHz 的RF接口電路由集成的PT2262/PT2272編碼解碼電路、外部接收和發(fā)送天線電路組成。
4 軟件設(shè)計(jì)
系統(tǒng)軟件由下位機(jī)程序和上位機(jī)程序2部分組成。下位機(jī)程序主要包含ZigBee各傳感器節(jié)點(diǎn)的程序和智能網(wǎng)關(guān)的程序,ZigBee各傳感器節(jié)點(diǎn)的程序采用針對(duì)CC2530的IAR編程實(shí)現(xiàn),智能網(wǎng)關(guān)的程序采用STM32搭載的μCOS-Ⅱ系統(tǒng)實(shí)現(xiàn)。上位機(jī)程序主要是基于Android的人機(jī)交互界面,采用Android Studio進(jìn)行開發(fā),具有良好的可遷移性和可擴(kuò)展性。
4.1 ZigBee傳感器節(jié)點(diǎn)軟件設(shè)計(jì)
ZigBee傳感器終端節(jié)點(diǎn)程序流程圖如圖4所示。本系統(tǒng)中共設(shè)置4個(gè)ZigBee傳感器結(jié)點(diǎn),它們承擔(dān)著采集環(huán)境變量(溫濕度、光照度、CO2濃度、土壤溫濕度)、ZigBee組網(wǎng)、采集盲點(diǎn)RSSI、整理數(shù)據(jù)包并根據(jù)協(xié)議上傳至協(xié)調(diào)器幾大任務(wù)。作為終端節(jié)點(diǎn)在加入ZigBee網(wǎng)絡(luò)后就進(jìn)入待命狀態(tài),在待命狀態(tài)下,除RSSI值獲取,所有傳感器停止執(zhí)行采集任務(wù),利用定時(shí)中斷調(diào)用SampleApp_GetRSSI(),定時(shí)時(shí)長(zhǎng)為500 ms,將采集到的盲點(diǎn)RSSI進(jìn)行1次去極值均值濾波,再調(diào)用SampleApp_Kalman filter()將盲點(diǎn)的RSSI進(jìn)行卡爾曼濾波。ZigBee傳感器節(jié)點(diǎn)接收到智能網(wǎng)關(guān)指令時(shí)觸發(fā)事件SampleApp_ProcessEvent,此事件中包含傳感器數(shù)值讀取函數(shù)、協(xié)議打包函數(shù)、串口發(fā)送緩存函數(shù)。最后調(diào)用HalUARTWrite()向智能網(wǎng)關(guān)上傳環(huán)境變量信息、設(shè)備序列號(hào)、盲點(diǎn)RSSI等。在空閑時(shí)刻,為了保障各個(gè)傳感器節(jié)點(diǎn)和信道連接穩(wěn)定,須要互相發(fā)送空閑心跳包。在上傳數(shù)據(jù)之前還須對(duì)節(jié)點(diǎn)上的各個(gè)硬件模塊電路進(jìn)行檢測(cè),如有故障、供電不足、傳感器數(shù)據(jù)失真等故障須要上傳對(duì)應(yīng)的故障碼給智能網(wǎng)關(guān)。
4.2 智能網(wǎng)關(guān)軟件設(shè)計(jì)
智能網(wǎng)關(guān)軟件流程圖如圖5所示。首先初始化系統(tǒng)外設(shè)接口,然后構(gòu)建μCOS-Ⅱ系統(tǒng),設(shè)計(jì)初始任務(wù)。初始任務(wù)中創(chuàng)建了各個(gè)等待任務(wù),主要根據(jù)客戶端指令執(zhí)行設(shè)備控制等任務(wù)。這些任務(wù)在μCOS-Ⅱ中作為一個(gè)并行的線程執(zhí)行。它們之間的信息通過信號(hào)量和郵箱互發(fā)信息,協(xié)調(diào)處理。整個(gè)過程構(gòu)成了多網(wǎng)融合的智能網(wǎng)關(guān)的軟件系統(tǒng)。
4.3 Andriod客戶端軟件設(shè)計(jì)
Andriod客戶端為多網(wǎng)融合的溫室監(jiān)控系統(tǒng)的人機(jī)交互界面,如圖6所示,分別為登錄界面、控制模式界面、環(huán)境監(jiān)測(cè)界面、定位界面。登錄界面的作用為設(shè)定智能網(wǎng)關(guān)內(nèi)部的IP和端口號(hào),建立TCP連接;控制模式界面是針對(duì)室內(nèi)的各個(gè)設(shè)備的操作界面;環(huán)境監(jiān)測(cè)界面顯示ZigBee傳感器節(jié)點(diǎn)上傳的環(huán)境信息;定位界面是顯示室內(nèi)盲點(diǎn)的坐標(biāo)信息。
5 系統(tǒng)測(cè)試
5.1 APP控制指令下發(fā)測(cè)試
本次測(cè)試選取的地點(diǎn)是天津工業(yè)大學(xué)電氣工程與自動(dòng)化學(xué)院植物照明實(shí)驗(yàn)室,以此來模擬溫室大棚的環(huán)境。在APP與智能網(wǎng)關(guān)建立連接的情況下,分別測(cè)試加熱器指令(紅外)、電燈指令(433 MHz的RF)、卷簾機(jī)指令(紅外)、任意2種組合指令、3種組合指令10、40、100、200、500次,計(jì)算指令碼失效的次數(shù),其中失效率為失效次數(shù)占測(cè)試次數(shù)的百分比。對(duì)于相同的紅外指令來看,加熱器指令的失效率比卷簾機(jī)的失效率要高,因?yàn)榧訜崞骷t外感應(yīng)的位置距離智能網(wǎng)關(guān)較遠(yuǎn)。相比之下,電燈的失效率要低一些。組合指令的失效率也明顯高于單個(gè)指令的失效率,可能的原因?yàn)榻M合指令之間互相有干擾。
5.2 ZigBee組網(wǎng)通信測(cè)試
多網(wǎng)融合的智能網(wǎng)關(guān)布置在室內(nèi)的中央,4個(gè)ZigBee傳感器節(jié)點(diǎn)布置在室內(nèi)的4個(gè)角落,如圖7所示,主要測(cè)試不同設(shè)備在不同距離的丟包率和誤包率,測(cè)試結(jié)果如表2所示。隨著距離的增加,同一設(shè)備的丟包率和誤包率均有所增加,ZigBee網(wǎng)絡(luò)趨向于不穩(wěn)定,但總體上滿足溫室大棚的應(yīng)用需求。
5.3 ZigBee定位精度測(cè)試
本次測(cè)試選取的環(huán)境為實(shí)驗(yàn)室內(nèi)1個(gè)6 m×6 m的空間,該空間放置長(zhǎng)桌, 4個(gè)拐角為4個(gè)ZigBee傳感器節(jié)點(diǎn)。空間劃分為10×10的網(wǎng)格,每個(gè)網(wǎng)格間距0.6 m,在網(wǎng)格點(diǎn)放置ZigBee路由器,即盲點(diǎn),在100個(gè)網(wǎng)格點(diǎn)中采樣50個(gè)網(wǎng)格點(diǎn)進(jìn)行測(cè)試。定位的坐標(biāo)以及實(shí)際位置分布圖如圖8所示。小星星點(diǎn)為定位坐標(biāo),黑色的小線段為定位坐標(biāo)與實(shí)際網(wǎng)格點(diǎn)的誤差距離。經(jīng)計(jì)算,選取的50個(gè)網(wǎng)格點(diǎn)的平均定位距離為0.28 m。因此可以判定該系統(tǒng)的定位精度為0.30 m。
6 結(jié)語(yǔ)
本研究立足于溫室大棚的應(yīng)用環(huán)境,不僅利用了多種無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)融合的技術(shù),將溫室內(nèi)常用的設(shè)備集中管理,還將ZigBee網(wǎng)絡(luò)和傳感器技術(shù)結(jié)合,設(shè)計(jì)了具備室內(nèi)定位和采集環(huán)境信息雙重功能的ZigBee節(jié)點(diǎn),與智能網(wǎng)關(guān)結(jié)合共同構(gòu)成了無線溫室智能監(jiān)控系統(tǒng)。經(jīng)過大量測(cè)試證明,該系統(tǒng)丟包率低、穩(wěn)定性高,具有一定的使用價(jià)值,為未來溫室的建設(shè)提供了理論依據(jù)。
參考文獻(xiàn):
[1]高 尚,陳景波. 智能溫室控制系統(tǒng)的研究與開發(fā)[J]. 中國(guó)高新技術(shù)企業(yè),2015,22(4):13-14.
[2]韓力英,楊宜菩,王 楊,等. 基于單片機(jī)的溫室大棚智能監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 中國(guó)農(nóng)機(jī)化學(xué)報(bào),2016,37(1):65-68,72.
[3]廖建尚. 基于物聯(lián)網(wǎng)的溫室大棚環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)方法[J]. 農(nóng)業(yè)工程學(xué)報(bào),2016,32(11):233-243.
[4]侯啟真,史秉鑫,劉衍帆. 基于RSSI的ZigBee定位技術(shù)研究[J]. 計(jì)算機(jī)應(yīng)用與軟件,2016,33(4):134-137.
[5]劉小康,郭 杭. 基于Zigbee室內(nèi)定位系統(tǒng)的指紋庫(kù)優(yōu)化算法[J]. 計(jì)算機(jī)工程,2014,40(2):193-198.
[6]安 雷,張國(guó)良,湯文俊. 基于RSSI的機(jī)器人室內(nèi)卡爾曼濾波定位算法研究[J]. 計(jì)算機(jī)工程與應(yīng)用,2012,48(8):230-232.
[7]羅 利,黃 平. 基于RFID的室內(nèi)定位貝葉斯算法仿真分析[J]. 產(chǎn)業(yè)與科技論壇,2016,15(3):64-65.
[8]宋文波,王 健. 基于多網(wǎng)融合技術(shù)的智能農(nóng)業(yè)信息監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 中國(guó)農(nóng)機(jī)化學(xué)報(bào),2017,38(2):88-94.
[9]高浩天,朱森林,常 歌,等. 基于農(nóng)業(yè)物聯(lián)網(wǎng)的智能溫室系統(tǒng)架構(gòu)與實(shí)現(xiàn)[J]. 農(nóng)機(jī)化研究,2018,40(1):183-188.
[10]武 征,花新峰. 基于STM32F103VET6的校園能耗監(jiān)測(cè)數(shù)據(jù)采集器的設(shè)計(jì)[J]. 工業(yè)控制計(jì)算機(jī),2016,29(5):18-19,21.