肖 楊,嚴(yán)李強(qiáng),宋 赫,田 博
(西藏大學(xué)信息科學(xué)技術(shù)學(xué)院,拉薩 850000)
西藏?fù)碛幸宿r(nóng)耕地680.57萬畝,僅占全區(qū)土地總面積的0.42%[1]。自西藏地區(qū)引入了以日光溫室為主的設(shè)施農(nóng)業(yè)后,耕種條件得到了極大改善,但目前很多與設(shè)施農(nóng)業(yè)相適配的物聯(lián)網(wǎng)設(shè)備在高原地區(qū)使用時往往會出現(xiàn)高原不適應(yīng)性,不能很好地在高原地區(qū)使用。以拉薩地區(qū)為例,不少農(nóng)戶都曾引入過內(nèi)地先進(jìn)設(shè)備來改善生產(chǎn),因設(shè)備適應(yīng)性差,使用壽命短等原因,最終還是選擇傳統(tǒng)的人工模式進(jìn)行生產(chǎn),這種模式對農(nóng)戶的經(jīng)驗依賴性太強(qiáng),不利于進(jìn)一步發(fā)展。此外,現(xiàn)有的日光溫室環(huán)境系統(tǒng)主要側(cè)重于監(jiān)測與作物生長直接相關(guān)的因素,而很少關(guān)注溫室外部環(huán)境的影響以及溫室安全生產(chǎn)問題;為了進(jìn)一步改善農(nóng)戶的生產(chǎn)條件,本文結(jié)合西藏地區(qū)的網(wǎng)絡(luò)情況和電氣特性,提出了一種基于NB-IoT的高原日光溫室環(huán)境監(jiān)測系統(tǒng),通過無線傳感器網(wǎng)絡(luò)和物聯(lián)網(wǎng)技術(shù),持續(xù)穩(wěn)定地對溫室環(huán)境進(jìn)行全時空監(jiān)測,同時考慮了外部環(huán)境非生物因子在內(nèi)部環(huán)境調(diào)節(jié)過程中可能造成的影響,提高了農(nóng)戶決策的科學(xué)性和準(zhǔn)確性,減少因突發(fā)情況造成的損失,發(fā)揮了智慧農(nóng)業(yè)的先進(jìn)性。
基于NB-IoT的高原日光溫室環(huán)境監(jiān)測系統(tǒng)包括硬件系統(tǒng)和軟件系統(tǒng)兩部分[2],涉及溫室內(nèi)外環(huán)境信息的采集、處理、傳輸以及監(jiān)測信息的多端顯示??傮w框架可分為感知層、數(shù)據(jù)處理層、傳輸層以及應(yīng)用層[3]。感知層主要依靠各傳感器節(jié)點采集環(huán)境信息;數(shù)據(jù)處理層由主控芯片,存儲電路構(gòu)成;傳輸層使用NB-IoT網(wǎng)絡(luò)經(jīng)基站與MQTT服務(wù)器端建立連接,再由服務(wù)器端通過公網(wǎng)連接應(yīng)用層;應(yīng)用層則以微信小程序的形式為用戶和硬件系統(tǒng)提供一種可跨空間的交互模式,系統(tǒng)整體框架如圖1所示。
圖1 系統(tǒng)整體框架
硬件系統(tǒng)主要由各傳感器節(jié)點組成的監(jiān)測模塊、用戶交互模塊、數(shù)據(jù)處理模塊、通信模塊構(gòu)成。受高原地區(qū)海拔相對較高、空氣壓力和密度較低、空氣絕對濕度小、空氣溫度低、溫差大以及紫外線強(qiáng)[4]等特殊條件影響,內(nèi)地生產(chǎn)的很多農(nóng)業(yè)物聯(lián)網(wǎng)設(shè)備到了高原常會出現(xiàn)功率下降、放電電壓降低,甚至無法正常工作等問題。系統(tǒng)設(shè)計時也著重考慮了硬件設(shè)備的高原適應(yīng)性,即所有的電氣設(shè)備必須滿足國標(biāo)GB∕T22580—2008(特殊環(huán)境條件高原電氣設(shè)備技術(shù)要求低壓成套開關(guān)設(shè)備和控制設(shè)備)[5]中的相關(guān)要求,且具有較好的耐凍性,確保在高原環(huán)境下能夠持續(xù)穩(wěn)定地工作。
常見的日光溫室環(huán)境監(jiān)測系統(tǒng)中很少涉及對火情等災(zāi)害監(jiān)控,但類似于2019年3月26日,唐山市突發(fā)大火,近300座溫室大棚被燒毀,直接造成多于5 000萬元經(jīng)濟(jì)損失的情況每年都在上演[6]。為了避免此類悲劇再次發(fā)生,系統(tǒng)中加入了煙霧傳感器實時監(jiān)測溫室內(nèi)部的煙霧情況,一旦出現(xiàn)火災(zāi)等情況時能夠及時報警提醒農(nóng)戶,避免產(chǎn)生更大的損失。此外,現(xiàn)有的溫室監(jiān)測系統(tǒng)中很少對所處的外部環(huán)境進(jìn)行監(jiān)測,但近年來農(nóng)業(yè)受洪澇、干旱、大風(fēng)、冰雹、冰霜凍、低溫冷害、雷電災(zāi)害等自然災(zāi)害影響嚴(yán)重[7],僅僅依靠天氣預(yù)報進(jìn)行預(yù)警往往存在準(zhǔn)確性低或農(nóng)戶未及時關(guān)注等情況,因此在本系統(tǒng)中搭建了外部環(huán)境監(jiān)測網(wǎng)絡(luò),有利于準(zhǔn)確掌握溫室所處的小氣候條件,作為調(diào)控內(nèi)部環(huán)境的參考依據(jù);在現(xiàn)代農(nóng)業(yè)趨利避害和防災(zāi)減災(zāi)中發(fā)揮著重要作用[8]。
傳感器采集信息的準(zhǔn)確性對整個監(jiān)測系統(tǒng)至關(guān)重要;高原地區(qū)高寒、晝夜溫差巨大、紫外線強(qiáng)等氣候特征也為傳感器的性能提出了更高的要求,為確保系統(tǒng)能在極端高原條件下能夠持續(xù)穩(wěn)定地采集信息,所選擇的傳感器技術(shù)參數(shù)如表1所示。
表1 傳感器技術(shù)參數(shù)
此外,考慮傳感器應(yīng)用場景不同,將系統(tǒng)的監(jiān)測模塊分為了室內(nèi)監(jiān)測模塊和室外監(jiān)測模塊兩部分。室內(nèi)監(jiān)測模塊由煙霧傳感器、土壤和空氣溫濕度傳感器、CO2濃度傳感器以及光照光強(qiáng)傳感器組成,在溫室內(nèi)部采用分布式布局,保證監(jiān)測數(shù)據(jù)全局準(zhǔn)確性。室外監(jiān)測模塊由光照傳感器、雨雪傳感器、風(fēng)速傳感器組成[9],負(fù)責(zé)監(jiān)測外部天氣災(zāi)害。
為了提升農(nóng)戶的使用體驗,降低農(nóng)戶的學(xué)習(xí)成本,硬件系統(tǒng)中設(shè)計了由按鍵模塊、蜂鳴器以及OLED顯示屏組成的用戶交互模塊。通過按鍵模塊,農(nóng)戶可自主地選擇想要的模式,并根據(jù)溫室內(nèi)實際情況自主地設(shè)置各環(huán)境參數(shù)的報警閾值;同時根據(jù)監(jiān)測信息的實時情況以不同的形式展示在OLED屏上,若監(jiān)測到出現(xiàn)異常數(shù)據(jù)或數(shù)據(jù)突變等情況時蜂鳴器則發(fā)出不同的聲音提醒農(nóng)戶。
數(shù)據(jù)處理模塊由主控芯片和SD卡存儲模塊構(gòu)成。主控制芯片選用意法半導(dǎo)體公司的STM32F103ZET6型芯片;STM32F103系列采用ARM32位的CortexTM-M3 CPU,帶64 K存儲器、兩個12位模數(shù)轉(zhuǎn)換器以及眾多快速I∕O端口、定時器和通信接口。芯片還提供了休眠、停止和待機(jī)3種工作模式,能夠針對不同能耗需求進(jìn)行選擇實現(xiàn)系統(tǒng)的低功耗運(yùn)行,該芯片能夠滿足傳感器數(shù)據(jù)采集、處理以及傳輸?shù)裙δ苄枨骩10]。為保證數(shù)據(jù)傳輸?shù)耐暾栽O(shè)置了SD卡存儲模塊,當(dāng)主控芯片接收監(jiān)測信息時,先對數(shù)據(jù)進(jìn)行簡單處理后存入存儲模塊中,再經(jīng)通信模塊上傳至MQTT服務(wù)器端進(jìn)行存儲,若傳輸過程中出現(xiàn)丟包等情況,則從存儲模塊中再次調(diào)出相應(yīng)的數(shù)據(jù)字段重新傳輸。SD卡存儲模塊采用可拆卸式,允許農(nóng)戶在本地讀取數(shù)據(jù)進(jìn)行分析,數(shù)據(jù)存儲模塊部分電路如圖2所示。
圖2 數(shù)據(jù)存儲模塊部分電路
當(dāng)前階段的農(nóng)業(yè)物聯(lián)網(wǎng)設(shè)備大多采用ZigBee、GSM、Bluetooth等無線通信技術(shù),這些技術(shù)普遍存在通信受限制、消耗的功率大、終端數(shù)量易飽和等問題[10]。同時,受西藏地區(qū)特殊的環(huán)境條件影響,基礎(chǔ)設(shè)施的建設(shè)相比內(nèi)地稍微緩慢些,部分地區(qū)網(wǎng)絡(luò)質(zhì)量也不太穩(wěn)定。從西藏地區(qū)的實際條件出發(fā),系統(tǒng)的通信模塊采用BC35-G,它使用NB-IoT網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。NB-IoT構(gòu)建于蜂窩網(wǎng)絡(luò),只消耗大約180 kHz的帶寬,可直接部署于GSM網(wǎng)絡(luò)、UMTS網(wǎng)絡(luò)或LTE網(wǎng)絡(luò)之上;與3G或4G相比,有著單位帶寬內(nèi)可攜帶更高能量,覆蓋更遠(yuǎn)的距離,具有覆蓋范圍廣、成本低廉的技術(shù)優(yōu)勢,能滿足覆蓋范圍廣的農(nóng)村地區(qū)通信需求,還能提供比較全面的室內(nèi)蜂窩數(shù)據(jù)連接覆蓋[11],符合項目需要。經(jīng)調(diào)查,西藏地區(qū)電信網(wǎng)絡(luò)覆蓋面積最為廣泛,則選用電信物聯(lián)網(wǎng)卡進(jìn)行數(shù)據(jù)傳輸,增強(qiáng)系統(tǒng)的適應(yīng)性,通信模塊電路如圖3所示。
圖3 通信模塊電路
目前市面上主流的物聯(lián)網(wǎng)平臺有移動公司的OneNET開放平臺、電信公司的CTWing、百度智能云天工以及阿里云IoT等,平臺大都支持CoAP(LWM2M)、MQTT、Modbus、HTTP、HTTPS、TCP、UDP等主流協(xié)議[12]。但這些平臺在接入終端設(shè)備時,需要編寫設(shè)備Profile文件和解析設(shè)備數(shù)據(jù)的編解碼插件,增加了用戶在接入平臺時的難度;此外,這些平臺大都不支持用戶根據(jù)自身需要存儲、分析上傳至平臺端的數(shù)據(jù),很難在其基礎(chǔ)上進(jìn)行個性化開發(fā)?;谏鲜鰡栴},系統(tǒng)采用輕量級的MQTT消息服務(wù)器存儲、轉(zhuǎn)發(fā)、訂閱相應(yīng)的數(shù)據(jù)。
MQTT是一個基于發(fā)布∕訂閱(publish∕subscribe)模式的消息傳輸協(xié)議。它具有輕量級、開放、簡單,易于實現(xiàn),通信帶寬要求低等特點,能夠在不可靠網(wǎng)絡(luò)下保證遠(yuǎn)距離傳輸質(zhì)量。在通訊時,MQTT協(xié)議中包含有3種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可同時為訂閱者。每個發(fā)布者可以發(fā)送不同類型的消息,發(fā)送消息的類型叫做主題(Topic),MQTT通信中的消息都屬于某一個主題,只有這個主題的訂閱者才能收到該主題的消息[13]。系統(tǒng)使用EMQX服務(wù)器作為中介建立溫室內(nèi)的終端設(shè)備與微信小程序端的連接;服務(wù)器端能夠?qū)⒔K端發(fā)送過來的數(shù)據(jù)信息利用JSON格式解析還原為所代表的參數(shù)類型及實際參數(shù),然后存儲至MYSQL數(shù)據(jù)庫中。農(nóng)戶在微信小程序端訂閱自己溫室對應(yīng)的主題即可查看溫室內(nèi)環(huán)境信息,鏈接過程如圖4所示。
圖4 終端設(shè)備與用戶端鏈接示意圖
系統(tǒng)使用KEIL MDK5集成開發(fā)環(huán)境進(jìn)行STM32程序的編寫與編譯,并通過USB連接電腦和終端設(shè)備對系統(tǒng)進(jìn)行調(diào)試與程序燒寫;STM32與NB模塊之間采用USART通信,而NB模塊與EMQX服務(wù)器端識用MQTT協(xié)議進(jìn)行連接;在使用MQTT協(xié)議連接終端設(shè)備與用戶端設(shè)備時,需要使用AT指令建立終端設(shè)備與服務(wù)器之間的連接,在使用用戶端對終端進(jìn)行操作過程中也需要用到AT指令。NB通信模塊的生產(chǎn)商提供了大量的AT指令,在系統(tǒng)中可以直接進(jìn)行調(diào)用,系統(tǒng)配置中使用的部分AT指令集及其注釋如表2所示。
表2 建立通信使用AT指令及其注釋
自2017年12月微信小程序正式上線以來,其憑借便捷性、跨平臺性等優(yōu)勢得到了極大地發(fā)展;本文基于微信小程序隨掃隨用、無需下載、易于開發(fā)等特點,開發(fā)了日光溫室環(huán)境監(jiān)測系統(tǒng)作為系統(tǒng)的用戶端,包含用戶注冊、用戶信息管理、設(shè)備管理、設(shè)備數(shù)據(jù)訂閱、查詢以及簡單控制終端設(shè)備等功能。
要在微信小程序端實時查閱溫室內(nèi)環(huán)境參數(shù)信息需要與MQTT服務(wù)器端進(jìn)行連接,這一過程基于HTTP協(xié)議實現(xiàn)。當(dāng)EMQX服務(wù)器端設(shè)備處于在線狀態(tài)時,在微信小程序端即可成功訂閱設(shè)備所對應(yīng)的Topic;此時,一旦EMQX服務(wù)器端收到監(jiān)測數(shù)據(jù),小程序端就能同步查收到相應(yīng)內(nèi)容。此外,微信小程序端除了能夠接收到數(shù)據(jù)外也能發(fā)送下行命令,與服務(wù)器端具體的通信過程如圖5所示。
圖5 小程序與服務(wù)器端的通信
目前終端設(shè)備仍處于在開發(fā)板測試階段,并未將設(shè)備集成化。設(shè)備開啟后,串口、傳感器、通信模塊等進(jìn)入初始化狀態(tài),并不斷檢查設(shè)備的網(wǎng)絡(luò)狀態(tài);各模塊初始化完成后則進(jìn)入數(shù)據(jù)采集程序,以串口通信方式將傳感器采集到的信息顯示在OLED屏幕上,系統(tǒng)的采樣周期為10 s一次。通過屏幕上的提示信息,能清楚地知道當(dāng)前終端設(shè)備所處的狀態(tài),并根據(jù)提示信息進(jìn)行相應(yīng)的調(diào)整。
在實驗室內(nèi),用微濕的紙巾包裹住土壤濕度傳感器模擬傳感器插入土壤中的效果,其他傳感器未做干預(yù);通過終端上的OLED屏幕,可清楚的看到當(dāng)前實驗室內(nèi)各環(huán)境參數(shù)值以及對應(yīng)的報警閾值,如圖6所示。在測試中,實際監(jiān)測到的空氣溫度為30.6℃,濕度為43.2%,而設(shè)置的空氣溫度上限為45℃,空氣濕度上限為70%,屬于閾值內(nèi),因而蜂鳴器未發(fā)出報警信息。當(dāng)用手捂住溫度傳感器后,溫度超過上限閾值發(fā)出警報提醒,表明預(yù)警功能正常。
圖6 終端數(shù)據(jù)監(jiān)測界面展示
首次進(jìn)入小程序時按照提示:注冊賬號→登錄→設(shè)置用戶信息→綁定終端設(shè)備(即根據(jù)終端上的iemi號訂閱相應(yīng)的主題),在成功綁定設(shè)備后即可進(jìn)入數(shù)據(jù)查看界面,得到如圖7所示的界面。與圖6終端顯示的監(jiān)測信息進(jìn)行對比,可以看出終端設(shè)備上的信息能夠很好的同步到微信小程序端(由于室內(nèi)測試時未接入風(fēng)速傳感器和雨雪傳感器,因此小程序端相應(yīng)的數(shù)值顯示為0)。
圖7 小程序監(jiān)測數(shù)據(jù)查看界面
待終端設(shè)備連續(xù)工作一段時間后,即可在微信小程序中點擊想要查看的環(huán)境參數(shù)圖標(biāo)進(jìn)入對應(yīng)參數(shù)歷史數(shù)據(jù)查看界面。在此界面中可查看一段時間內(nèi)溫室參數(shù)的變化情況以及某一時間點的具體值。拉到小程序的底部,點擊查看全部數(shù)據(jù)記錄圖還可查看全部參數(shù)的變化情況,如圖8所示,通過觀察參數(shù)的歷史數(shù)據(jù),能夠直觀地了解溫室內(nèi)外環(huán)境在一天的不同時段內(nèi)的實際情況以及變化規(guī)律。
圖8 參數(shù)變化趨勢
本文基于NB-IoT網(wǎng)絡(luò)搭建了一套高原日光溫室環(huán)境監(jiān)測系統(tǒng),實現(xiàn)對溫室內(nèi)外環(huán)境參數(shù)的全時空監(jiān)測,為精準(zhǔn)化調(diào)控溫室內(nèi)環(huán)境非生物因子提供判斷依據(jù),且具有良好的高原適應(yīng)性。利用與硬件端相適配的微信小程序能夠?qū)崿F(xiàn)異地查看溫室內(nèi)外環(huán)境,確保溫室內(nèi)環(huán)境的穩(wěn)定性;當(dāng)系統(tǒng)監(jiān)測到溫室內(nèi)外環(huán)境發(fā)生異常變化時能夠及時的向用戶發(fā)送報警信息,有效地降低因溫室內(nèi)環(huán)境劇烈變化造成的損失,同時保障溫室內(nèi)作業(yè)人員的安全。通過查看、分析溫室內(nèi)各環(huán)境參數(shù)在一天中各時段的變化趨勢,亦能夠更好地幫助農(nóng)戶總結(jié)規(guī)律,提高生產(chǎn)。綜上所述,使用本系統(tǒng)可有效提高農(nóng)業(yè)生產(chǎn)決策的科學(xué)性,促進(jìn)高原地區(qū)農(nóng)業(yè)生產(chǎn)現(xiàn)代化。