尹晶晶
(安徽國防科技職業(yè)學院 電氣技術(shù)學院,安徽 六安 237011)
研究溫室環(huán)境自動監(jiān)測系統(tǒng)對于提高溫室環(huán)境控制的自動化水平和溫室生產(chǎn)效率等具有重要意義。傳統(tǒng)的溫室環(huán)境監(jiān)測系統(tǒng)采用有線連接方式,存在著布線復雜、成本高、設備移動性差、傳感器節(jié)點擴展性差等問題。將無線傳感器網(wǎng)絡應用于溫室環(huán)境監(jiān)測系統(tǒng),可以克服有線監(jiān)控網(wǎng)絡的上述諸多缺陷。
近幾年,國內(nèi)外許多研究者已嘗試將無線傳感器網(wǎng)絡應用于溫室小氣候環(huán)境監(jiān)測。在眾多相關(guān)研究中,ZigBee技術(shù)是應用最多的無線通信技術(shù)[1-8]。ZigBee技術(shù)是一種近距離、低功耗、低速率、低成本的雙向無線通訊技術(shù),工作于ISM頻段。相關(guān)研究中所采用的ZigBee技術(shù)大多工作于2.4 GHz頻段。除ZigBee技術(shù)之外,也有不少學者采用TinyOS操作系統(tǒng)以開發(fā)溫室環(huán)境無線監(jiān)測系統(tǒng)[9-14]。TinyOS操作系統(tǒng)是加州大學伯克利分校開發(fā)的開放源代碼操作系統(tǒng),專為嵌入式無線傳感網(wǎng)絡設計。基于TinyOS操作系統(tǒng)的無線通信技術(shù)大多工作于433 MHz頻段。基于ZigBee協(xié)議棧和TinyOS操作系統(tǒng)而開發(fā)的短距離無線監(jiān)測系統(tǒng)具有低功耗、易開發(fā)等優(yōu)點,但傳輸距離有限,無線傳輸?shù)目煽啃砸灿写岣?。窄帶物?lián)網(wǎng)(Narrow Band Internet of Things,NB-IoT)是近兩年興起的無線通信技術(shù)[15]。與現(xiàn)有網(wǎng)絡相比,窄帶物聯(lián)網(wǎng)的優(yōu)勢表現(xiàn)在以下四點:(1) 依靠移動通信基站,NB-IoT的覆蓋面極其廣泛;(2) 在同樣的頻段下,NB-IoT比現(xiàn)有網(wǎng)絡增益20 dB,相當于提升了100倍覆蓋區(qū)域的能力;(3) NB-IoT屬于準5G通信,因此具有良好的無線通信質(zhì)量;(4) NB-IoT功耗很低,其終端模塊的待機時間可長達10年。
溫室小氣候環(huán)境包括室內(nèi)空氣溫度、相對濕度、二氧化碳氣體濃度和照度等多個環(huán)境因子。因此,從所監(jiān)測的室內(nèi)環(huán)境因子來看,溫室小氣候環(huán)境監(jiān)測可以分為單因子監(jiān)測和多因子監(jiān)測。在單因子監(jiān)測中,室內(nèi)空氣溫度是關(guān)注度最高的環(huán)境因子[16],因為在眾多室內(nèi)環(huán)境因子當中,溫度條件因晝夜、季節(jié)和地區(qū)的不同而發(fā)生變化的范圍很大,最容易出現(xiàn)不滿足作物生長條件的狀況。當然,也有少數(shù)文獻關(guān)注溫室內(nèi)其它環(huán)境因子的監(jiān)測,如二氧化碳濃度[17]等。在多因子監(jiān)測中,大多關(guān)注溫室內(nèi)空氣溫度和相對濕度,而同時關(guān)注室內(nèi)空氣溫度、相對濕度、二氧化碳氣體濃度和照度等四個或更多環(huán)境因子的研究則較少。這是由于溫室環(huán)境因子之間的相互耦合特性及其控制的相互沖突性所決定的。不過,從應用的角度考慮,溫室小氣候環(huán)境監(jiān)測與控制確實需要同時考慮這些重要的室內(nèi)環(huán)境因子?;谝陨峡紤],本文將采用NB-IoT技術(shù)設計面向溫室環(huán)境多因子的遠程監(jiān)測系統(tǒng)。
基于NB-IoT的溫室環(huán)境遠程監(jiān)測系統(tǒng)架構(gòu)如圖1所示。該系統(tǒng)架構(gòu)包括三個層次:最底層為感知層,在該層布設若干傳感器節(jié)點,用于實時監(jiān)測溫室內(nèi)的環(huán)境因子,并以無線方式把數(shù)據(jù)發(fā)送至NB-IoT基站;中間層為傳輸層,主要由NB-IoT基站和云服務器構(gòu)成,實現(xiàn)數(shù)據(jù)的遠距離傳輸;最上層為應用層,用戶在該層使用各種終端設備與云服務器相連,以便遠程查看溫室環(huán)境數(shù)據(jù)。
圖1 基于NB-IoT的溫室環(huán)境遠程監(jiān)測系統(tǒng)架構(gòu)
在該系統(tǒng)中,開發(fā)者的重點工作是開發(fā)底層的無線傳感器節(jié)點。傳感器節(jié)點的硬件結(jié)構(gòu)如圖2所示??紤]到本系統(tǒng)中需要采集的環(huán)境因子較多,需要較多的I/O接口,因此選擇了STM32單片機。該系列單片機采用了ARM的Cortex架構(gòu),I/O接口眾多,功能強大。關(guān)于NB-IoT模塊,則是選擇了市場上應用最廣泛的BC35-G型號NB模塊。由于一般溫室內(nèi)都有多種電氣設備,因此取電方便,使用交流220 V轉(zhuǎn)直流5 V的模塊給傳感器節(jié)點中的各個模塊供電。
圖2 傳感器節(jié)點的硬件結(jié)構(gòu)
由于空氣溫度和空氣相對濕度之間具有很強的耦合性,因此許多傳感器元件可以同時測量溫度和相對濕度,常見的有SHT系列和DHT系列?,F(xiàn)行的國家行業(yè)標準《JB-T10306-2013溫室控制系統(tǒng)設計規(guī)范》給出了連棟溫室環(huán)境溫濕度、照度和CO2氣體濃度等的測量要求,連棟溫室測量內(nèi)容、測量范圍和準確度如表1所示[18]。
表1 連棟溫室測量內(nèi)容、測量范圍和準確度
根據(jù)表1的要求,選擇SHT30數(shù)字溫濕度傳感器。該傳感器的溫度測量范圍為-40~+125 ℃,測量精度為±0.3 ℃,濕度測量范圍為0~100%RH,測量精度為±2.0%,完全滿足行業(yè)標準中的測量要求。SHT30傳感器及其接口電路如圖3所示。該傳感器共有四個管腳,依次為電源(VCC)、地(GND)、串行時鐘(SCL)和串行數(shù)據(jù)傳輸(SDA),其中,SCL和SDA分別與STM32單片機的PB7和PB6相連接。
(a) SHT30傳感器
根據(jù)表1所給出的測量要求,可知現(xiàn)在廣泛應用的TSL2561型號和BH1750型號的照度傳感器并不能應用于溫室環(huán)境照度監(jiān)測,因為它們的量程僅為0~65535 lx。為此,選擇了型號為B-LUX-V30B的照度傳感器,該傳感器為數(shù)字傳感器,其量程可達20萬lx,能夠滿足測量要求。B-LUX-V30B型照度傳感器及其接口電路如圖4所示,該傳感器元件的接口共有五個管腳,除了電源和地線之外,還有串行時鐘、串行數(shù)據(jù)傳輸和使能管腳。使能管腳(EN)可以懸空,表示該器件一直處于使能狀態(tài)。照度傳感器的串行時鐘(SCL)和串行數(shù)據(jù)傳輸(SDA)分別連接單片機的PB8和PB9引腳。
(a) B-LUX-V30B型照度傳感器
根據(jù)表1所給出的測量要求,可知現(xiàn)行的行業(yè)標準要求溫室CO2濃度的測量范圍為10~2500 ppm,為此,選擇了JX-CO2-102型號的CO2氣體傳感器。該傳感器為數(shù)字傳感器,其量程為0~5000 ppm,滿足測量要求。JX-CO2-102型傳感器及其接口電路如圖5所示。JX-CO2-102型傳感器的管腳定義如表2所示??梢?,該傳感器可以以多種形式來輸出CO2濃度信號。在本系統(tǒng)的節(jié)點電路設計中,采用了PWM輸出方式,在硬件結(jié)構(gòu)上,PWM只占用單片機一個管腳,該管腳與單片機的PA1管腳相連接。
(a) JX-CO2-102型傳感器
表2 JX-CO2-102型傳感器的管腳定義
節(jié)點軟件開發(fā)是采用Keil軟件而實現(xiàn)的。主程序的主要功能描述如下:首先,進行系統(tǒng)初始化及NB模塊的初始化;然后,NB模塊通過基站嘗試接入云服務器;最后,開始采集溫濕度、照度和CO2濃度信息。相關(guān)數(shù)據(jù)可以在本地顯示,同時也發(fā)送至云服務器端。定時器用于設置數(shù)據(jù)采集和發(fā)送的周期。節(jié)點的主程序流程如圖6所示。
圖6 節(jié)點的主程序流程
微處理器和SHT30溫濕度傳感器通信采用串行二線接口SCL和SDA,其中:SCL用于同步微控制器和傳感器之間的通信,時鐘頻率可以在0~1000 kHz之間自由選擇,支持按I2C標準進行時鐘擴展的命令;SDA引腳用于向傳感器傳遞數(shù)據(jù)和從傳感器傳遞數(shù)據(jù),從傳感器說明書可知,測量數(shù)據(jù)總是以16位值(無符號整數(shù))傳輸,這些數(shù)值已經(jīng)線性化,并補償了溫度和電源電壓的影響。假設單片機從SHT30傳感器中讀取到的溫濕度數(shù)值分別記為ST和SRH,那么可以根據(jù)式(1)和式(2)直接計算出溫濕度值。溫濕度的測量精度分別為±0.3 ℃和±2.0%。
微處理器和B-LUX-V30B照度傳感器通信也采用串行二線接口SCL和SDA。傳感器通過 SDA 發(fā)送數(shù)據(jù),與主機產(chǎn)生的 SCL 脈沖同步,主機在接收到每個字節(jié)數(shù)據(jù)后對其進行應答??偩€空閑時,SDA和SCL的空閑狀態(tài)為高電平。主機通過發(fā)送START條件啟動通信,START條件是:SCL為高電平時,SDA由高到低的跳變;STOP條件是:SCL為高電平時,SDA由低到高的跳變。來自主機的START條件通知傳感器開始傳輸,主機通過發(fā)送STOP條件終止傳輸,并釋放總線。該型號照度傳感器模塊出廠時已經(jīng)進行校正。單片機讀取32位的測量數(shù)據(jù)SI之后,依據(jù)式(3)進行計算實際的光照度I。
I=1.4(SI÷1000) (3)
其中,1.4為本模塊照度傳感器上方的透明外殼對光線衰減的校正系數(shù)。
微處理器和JX-CO2-102紅外吸收二氧化碳傳感器之間的通信有DA輸出模式(模擬電壓信號)、PWM輸出模式和串口輸出模式等。經(jīng)過比較,PWM模式輸出只占用單片機一個I/O管腳,直接輸出數(shù)字信號,且輸出值與所檢測到濃度值之間的換算關(guān)系非常簡單,故采用了PWM輸出模式。傳感器的使用說明書給出了通過 PWM脈沖寬度以獲得當前 CO2濃度值C的計算公式:
C=5(正向脈沖寬度-2) (4)
其中,5表示每毫秒所對應的CO2氣體濃度值。
單片機和NB模塊通過MQTT協(xié)議,把所采集到的環(huán)境數(shù)據(jù)上傳到OneNET物聯(lián)網(wǎng)云平臺。該協(xié)議工作在TCP/IP協(xié)議族上,是為硬件性能低下的遠程設備以及網(wǎng)絡狀況糟糕的情況下而設計的發(fā)布/訂閱型消息協(xié)議。MQTT協(xié)議主要有以下幾個特性:使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,解除應用程序耦合;對負載內(nèi)容屏蔽的消息傳輸;使用 TCP/IP 提供網(wǎng)絡連接;有三種消息發(fā)布服務質(zhì)量。云端設計主要分以下幾個步驟:
第一步:登錄OneNET服務器。先注冊賬號,登錄完成后,進入開發(fā)者中心,找到物聯(lián)網(wǎng)平臺,進入后點擊“多協(xié)議接入”即可。
第二步:添加MQTT產(chǎn)品。選擇 MQTT(舊版)協(xié)議,選擇“添加產(chǎn)品”“產(chǎn)品名稱”和“產(chǎn)品簡介”按自己的要求填寫即可,“產(chǎn)品行業(yè)”和“產(chǎn)品類型”自由選擇,“接入?yún)f(xié)議”選擇“MQTT”,在確定添加產(chǎn)品后,就可以添加設備了。雙擊“設備”列表,選擇“添加設備”即可。
第三步:編輯應用。首先,選擇“應用管理”后選擇“添加應用”;然后,新增加應用,按自己的要求填寫帶*的即可,寫完后點“新增”;最后,編輯應用,雙擊以下生成的應用后,選擇“編輯應用”。
手機App借助了OneNET 平臺提供的App設備云。它的功能是數(shù)據(jù)監(jiān)測,且具有數(shù)據(jù)存儲功能,與云平臺相通,可以實時觀看數(shù)據(jù)動態(tài)變化,以及查看任何一種環(huán)境因子的詳細數(shù)據(jù)。這里不再詳細介紹。
把傳感器節(jié)點放置在校園草坪上,測量環(huán)境參數(shù),以檢驗傳感器節(jié)點的測量結(jié)果,測試中的傳感器節(jié)點如圖7所示。數(shù)據(jù)采集周期為10 min,測試時間為2021年5月27日9:00-17:00,共8 h。手機端以儀表盤的形式進行實時顯示,手機端的數(shù)據(jù)顯示如圖8所示。該時段內(nèi)環(huán)境因子監(jiān)測數(shù)據(jù)如圖9所示。從測量結(jié)果看,該傳感器節(jié)點能夠?qū)崿F(xiàn)四個環(huán)境參數(shù)的實時采集、傳輸和顯示,表明該系統(tǒng)能夠穩(wěn)定工作。四種環(huán)境因子的監(jiān)測均采用了數(shù)字式傳感器,且具有自動校驗功能,從而保證了一定的測量精度。同時,數(shù)字式傳感器還具有低功耗的特點,有利于采用太陽能供電或電池供電方式,為所設計的傳感器節(jié)點應用于溫室環(huán)境監(jiān)測和大田農(nóng)業(yè)環(huán)境監(jiān)測奠定了基礎。
圖7 測試中的傳感器節(jié)點
圖8 手機端的數(shù)據(jù)顯示
(a)空氣溫度測量數(shù)據(jù)
本文采用NB-IoT技術(shù)設計了溫室環(huán)境遠程監(jiān)測系統(tǒng)。在簡要介紹監(jiān)測系統(tǒng)架構(gòu)的基礎上,首先重點介紹了傳感器節(jié)點的硬件設計;然后,依次介紹了節(jié)點的軟件設計、云端軟件及手機App開發(fā)等;最后,對所設計的傳感器節(jié)點進行了測試檢驗,能夠?qū)崿F(xiàn)數(shù)據(jù)的遠程無線傳輸,且無線通信質(zhì)量穩(wěn)定。研究結(jié)果為該檢測系統(tǒng)進一步應用于農(nóng)業(yè)溫室環(huán)境監(jiān)測和其它領(lǐng)域環(huán)境監(jiān)測等奠定了基礎。