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