王幃韜 火久元,2* 任智男
1(蘭州交通大學(xué)電子與信息工程學(xué)院 甘肅 蘭州 730070)2(賽爾網(wǎng)絡(luò)有限公司 北京 100084)
我國高寒與干旱地區(qū)的總面積占到國土面積的三分之二左右,寒旱區(qū)內(nèi)生態(tài)環(huán)境脆弱,但蘊藏著國民經(jīng)濟不可或缺的資源,因此其戰(zhàn)略地位突出[1]。傳統(tǒng)的寒旱區(qū)野外觀測體系中,觀測數(shù)據(jù)以人工收集為主,數(shù)據(jù)傳輸困難,導(dǎo)致數(shù)據(jù)的收集、傳輸、處理的實時性和準(zhǔn)確性較差。為了解決這些問題,許多學(xué)者將無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)應(yīng)用到寒旱區(qū)野外環(huán)境監(jiān)測中,并開展了一系列的研究。文獻[2]以黑河流域一級支流馬糞溝子流域為研究區(qū)域,配合現(xiàn)有定點觀測系統(tǒng),提出了一種適宜生態(tài)-水文模型需要的面向密集數(shù)據(jù)觀測的無線傳感器網(wǎng)絡(luò)系統(tǒng)。該系統(tǒng)的傳感節(jié)點采用TinyOS系統(tǒng),通過Xmesh協(xié)議組網(wǎng)。文獻[3]為了提升在黑河上游八寶河流域建立的生態(tài)-水文無線傳感器網(wǎng)絡(luò)的觀測水平,提出了一種基于回歸克里格模型的空間采樣布局優(yōu)化方法,經(jīng)驗證明優(yōu)化后的無線傳感器網(wǎng)絡(luò)可以較好地捕捉流域內(nèi)生態(tài)-水文要素的時空動態(tài)特征。文獻[4]設(shè)計并實現(xiàn)了一個在線的可視化Web系統(tǒng)來有效管理和應(yīng)用黑河流域生態(tài)-水文過程綜合遙感觀測聯(lián)合試驗中的無線傳感器網(wǎng)絡(luò)系統(tǒng)不斷產(chǎn)出的自動觀測數(shù)據(jù)。文獻[5]設(shè)計了一種新型低功耗、高穩(wěn)定性的冰川參數(shù)采集系統(tǒng),該系統(tǒng)以低功耗單片機MSP430F149為主控制器,將所測的數(shù)據(jù)通過ZigBee網(wǎng)絡(luò)傳輸?shù)綌?shù)據(jù)處理中心。
在這些研究中,所使用的傳統(tǒng)無線傳感器網(wǎng)絡(luò)標(biāo)準(zhǔn)存在著地址空間不足、無法與IP網(wǎng)絡(luò)實現(xiàn)端到端通信等弊端,這嚴(yán)重制約了寒旱區(qū)野外環(huán)境科學(xué)的發(fā)展。為了解決無線傳感器網(wǎng)絡(luò)所面臨的這些問題,互聯(lián)網(wǎng)工程任務(wù)組(The Internet Engineering Task Force,IETF)在2004年成立了基于IPv6的低功耗無線個域網(wǎng)(IPv6 Low Power Wireless Personal Area Network,6LoWPAN)[6]工作組,并制定了6LoWPAN協(xié)議。6LoWPAN協(xié)議使得WSN內(nèi)的每個節(jié)點都具有一個IPv6全球地址,實現(xiàn)了基于IEEE 802.15.4的網(wǎng)絡(luò)和基于IPv6的基礎(chǔ)設(shè)施之間的無縫連接[7]。
本文基于6LoWPAN技術(shù)和消息隊列遙測傳輸協(xié)議(Message Queuing Telemetry Transport,MQTT)設(shè)計了寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng)。監(jiān)測系統(tǒng)采用全IP的網(wǎng)絡(luò)架構(gòu),使得觀測網(wǎng)絡(luò)具有足夠的地址空間,同時能夠?qū)崿F(xiàn)觀測網(wǎng)絡(luò)中的嵌入式設(shè)備與IPv6網(wǎng)絡(luò)中主機的端到端通信。
6LoWPAN是物聯(lián)網(wǎng)的關(guān)鍵組成部分,其網(wǎng)絡(luò)拓撲一般支持樹狀、星狀和網(wǎng)狀拓撲結(jié)構(gòu)[8]。6LoWPAN網(wǎng)絡(luò)協(xié)議棧如圖1所示,其物理層和MAC層采用IEEE 802.15.4標(biāo)準(zhǔn),上層采用TCP/IPv6協(xié)議棧。

圖1 6LoWPAN網(wǎng)絡(luò)協(xié)議棧
6LoWPAN主要通過增加適配層來實現(xiàn)IPv6與IEEE 802.15.4的融合[9],6LoWPAN適配層的功能如下:
(1) IPv6數(shù)據(jù)報分片與重組。由于IPv6數(shù)據(jù)報的最大傳輸單元(MTU)可達1 280字節(jié),而IEEE 802.15.4規(guī)定MAC層的MTU僅有127字節(jié)[10],所以當(dāng)通過MAC層幀傳輸IP數(shù)據(jù)報時,需要將其分片。
(2) IPv6報頭壓縮與解壓。IEEE 802.15.4網(wǎng)絡(luò)中MAC層幀最大的負載(payload)為102字節(jié),而安全位、IPv6報頭和UDP頭等占用了大部分空間,實際有效負載只剩下28個字節(jié)[11]。因此有必要將IPv6報頭壓縮,以增加負載空間。6LoWPAN中定義了無狀態(tài)報頭壓縮和基于上下文的報頭壓縮兩種壓縮方案。
MQTT是一種針對資源受限的面向事件和消息的輕量級通信協(xié)議,于1999年被IBM發(fā)布,它允許設(shè)備跨受限網(wǎng)絡(luò)異步通信。MQTT基于發(fā)布/訂閱(publish/subscribe)機制,并構(gòu)建于TCP/IP之上。MQTT占用開銷低、帶寬低且易于實現(xiàn),十分適合于資源受限的物聯(lián)網(wǎng)場景[12],因此寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng)使用MQTT實現(xiàn)應(yīng)用層通信。
MQTT協(xié)議中有發(fā)布者(Publisher)、代理(Broker)和訂閱者(Subscriber)三種通信身份。MQTT服務(wù)器實現(xiàn)代理的功能,MQTT客戶端可同時實現(xiàn)發(fā)布者和訂閱者的功能[13]。MQTT傳輸?shù)南⒂芍黝}(Topic)和內(nèi)容(payload)兩部分組成。MQTT的消息主題可以通過分隔符表示多個層級的關(guān)系,用戶可以通過使用通配符訂閱不同層級的主題來獲取全部或者部分消息。MQTT發(fā)布/訂閱模型如圖2所示。

圖2 MQTT發(fā)布/訂閱模型
使用MQTT協(xié)議的設(shè)備通過客戶端實現(xiàn)通信,客戶端能夠與MQTT服務(wù)器建立MQTT連接。連接后,客戶端可以發(fā)布MQTT消息,也可以訂閱其他客戶端發(fā)布的MQTT消息,從而獲取該消息的內(nèi)容。MQTT服務(wù)器位于發(fā)布者和訂閱者之間,MQTT服務(wù)器可以建立與客戶端的MQTT連接、接收客戶端發(fā)布的MQTT消息、處理客戶端的主題訂閱以及將接收到的消息轉(zhuǎn)發(fā)給訂閱者。
為了增強系統(tǒng)的靈活性、穩(wěn)定性以及降低系統(tǒng)的耦合性,寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng)基于發(fā)布/訂閱模式設(shè)計,并使用MQTT協(xié)議實現(xiàn)應(yīng)用層通信。
監(jiān)測系統(tǒng)的結(jié)構(gòu)框圖如圖3所示。監(jiān)測系統(tǒng)由6LoWPAN節(jié)點、網(wǎng)關(guān)、MQTT服務(wù)器和遠程客戶端四部分構(gòu)成。6LoWPAN節(jié)點能夠通過傳感器采集野外環(huán)境信息,并將信息經(jīng)網(wǎng)關(guān)上傳至MQTT服務(wù)器;同時,6LoWPAN節(jié)點還能識別并執(zhí)行遠程客戶端下達的控制指令。網(wǎng)關(guān)建立并維護6LoWPAN網(wǎng)絡(luò)以及負責(zé)在6LoWPAN網(wǎng)絡(luò)和傳統(tǒng)IP網(wǎng)絡(luò)間轉(zhuǎn)發(fā)數(shù)據(jù)報。用戶在遠程客戶端可以查看采集到的環(huán)境信息以及下達對6LoWPAN節(jié)點的控制指令。MQTT服務(wù)器則用于接收6LoWPAN節(jié)點上傳的環(huán)境信息和遠程客戶端下達的控制指令。

圖3 寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng)結(jié)構(gòu)框圖
6LoWPAN節(jié)點采用單芯片解決方案,單芯片方案使用片上系統(tǒng)射頻技術(shù),具有體積小、成本低的特點,因此適合需要大規(guī)模組網(wǎng)的寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng)。6LoWPAN節(jié)點設(shè)計框圖如圖4所示。

圖4 6LoWPAN節(jié)點的設(shè)計框圖
6LoWPAN節(jié)點主要由主控芯片、射頻單元、設(shè)備接口和電源電路等部分組成,各部分設(shè)計如下:
(1) 主控芯片設(shè)計。6LoWPAN節(jié)點的主控芯片負責(zé)處理數(shù)據(jù)和執(zhí)行指令,為滿足寒旱區(qū)野外環(huán)境中大量節(jié)點組網(wǎng)的需求,需要在保證節(jié)點性能的前提下,盡可能選擇價格較低的元器件,來降低總體的成本。TI公司生產(chǎn)的CC2538SF53芯片就符合這樣的要求。其內(nèi)核是ARM Cortex-M3,它具有高達32 MHz的時鐘速度、512 KB的FLASH和32 KB的RAM。CC2538SF53內(nèi)部資源豐富,性能強勁,能很好地支持最新的Contiki3.x版本[14],充分滿足了監(jiān)測系統(tǒng)對6LoWPAN節(jié)點運算能力的需求。CC2538SF53具有3種省電模式,喚醒時間4 μs,最低供電電流僅0.4 μA,通過休眠機制可以有效減少能耗。CC2538SF53是汽車級芯片,能保證在-40~125 ℃之間穩(wěn)定工作,這滿足了寒旱區(qū)野外環(huán)境的高低溫需求。
(2) 射頻單元設(shè)計。射頻單元采用CC2538SF53集成的支持2.4 GHz IEEE 802.15.4通信標(biāo)準(zhǔn)的RF兼容收發(fā)器,負責(zé)在6LoWPAN網(wǎng)絡(luò)中發(fā)送和接收信息。CC2538RF具有-97 dBm的接收器靈敏度和7 dBm的可編程輸出功率,傳輸速率最高可以達到250 kbit/s,并且在44 dB的ACR干擾情況下可靠耐用。CC2538RF功耗低且具有硬件加密功能,保證了數(shù)據(jù)的安全傳輸。CC2538RF通過RF_N和RF_P連接到天線,并將數(shù)字信號調(diào)制成模擬信號發(fā)送。
(3) 設(shè)備接口與傳感器設(shè)計。設(shè)備接口單元負責(zé)將傳感器與主控芯片連接,為豐富監(jiān)測系統(tǒng)的功能,節(jié)點需要連接多種不同類型傳感器,因此節(jié)點支持SPI、UART、IIC和USB等多種接口。下面介紹各傳感器的功能和連接方式。
空氣溫濕度傳感器選擇AM2320。AM2320具有尺寸小、測量精度高的特點,可輸出已校準(zhǔn)數(shù)字信號。其相對濕度測量范圍:0~99.9% RH,溫度測量范圍:-40~80 ℃,濕度分辨率:0.1% RH,溫度分辨率:0.1 ℃,這滿足了寒旱區(qū)野外環(huán)境對測量范圍和測量精度的需求。AM2320使用單總線通信,支持CRC校驗,保證了數(shù)據(jù)的傳輸可靠性。
PM2.5傳感器選擇ZPH01。ZPH01靈敏度高、重量輕、易于安裝和維護。其采用粒子計數(shù)原理,能夠檢測出1 μm以上顆粒物,檢測范圍是15 000個/283 ml。ZPH01預(yù)熱時間少于5 min,工作電壓5 V,工作電流小于150 mA,所以功耗較低。ZPH01采用UART與主控芯片相連。
氣壓傳感器選擇BMP180。BMP180具有體積小、精度高、能耗超低的特點。其測量范圍為300~1 100 hPa,絕對精度為0.03 hPa,標(biāo)準(zhǔn)模式下耗電量僅5 μA,待機電流0.1 μA。BMP180使用IIC接口輸出。
光照強度傳感器選擇BH1750。BH1750具有接近于視覺靈敏度的分光特性,測量范圍為0~65 535 lx,測量精度為1 lx。BH1750內(nèi)置了16 bit的A/D轉(zhuǎn)換器,直接數(shù)字輸出,通過IIC總線與主控芯片相連。
(4) 電池設(shè)計。由于節(jié)點需長期部署在野外,無法頻繁更換電池。因此,節(jié)點通過太陽能板,產(chǎn)生電能為蓄電池充電。蓄電池的欠壓和過充會導(dǎo)致壽命縮短,同時還會影響系統(tǒng)工作的穩(wěn)定性。因此,監(jiān)測系統(tǒng)會定期檢查蓄電池電量,在電量不足時,為其充電,在電量足夠時,停止充電。
在6LoWPAN節(jié)點制作完成后,使用由特殊材料3D打印的封裝盒將其封裝,能有效地防止外部環(huán)境對節(jié)點造成的破壞。
6LoWPAN節(jié)點的系統(tǒng)選擇嵌入式操作系統(tǒng)Contiki。Contiki是一個被廣泛使用的物聯(lián)網(wǎng)操作系統(tǒng)[15],由瑞典計算機科學(xué)研究所研發(fā),它的內(nèi)核基于事件驅(qū)動,進程機制使用Protothreads,搭載了支持6LoWPAN的uIPv6協(xié)議棧。Contiki是一款采用C語言開發(fā)的、開源的多任務(wù)操作系統(tǒng),具有輕量級、開源、易于移植等優(yōu)點,因此適合于寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng)中的6LoWPAN節(jié)點。
IBM專為WSN制定了基于UDP傳輸?shù)腗QTT-S協(xié)議,每個6LoWPAN節(jié)點使用MQTT-S客戶端與PC端的MQTT客戶端通信。嵌入式端的MQTT-S協(xié)議與PC端的完整MQTT協(xié)議的轉(zhuǎn)換是通過MQTT-S網(wǎng)關(guān)實現(xiàn)的。
系統(tǒng)中每個6LoWPAN節(jié)點各自對應(yīng)固定的MQTT的發(fā)布主題和訂閱主題,在遠程客戶端訂閱某個節(jié)點的發(fā)布主題,就可接收該節(jié)點發(fā)布的包含了環(huán)境信息的MQTT消息,每個節(jié)點使用訂閱主題訂閱的是遠程客戶端發(fā)布的對該節(jié)點的控制指令。每個6LoWPAN節(jié)點設(shè)定了多個發(fā)布主題,分別用于發(fā)布包含不同類型環(huán)境信息的消息,例如主題“ALL_DATA/該節(jié)點IPv6地址/temp”用于發(fā)布所監(jiān)測到的空氣溫度的消息。每個6LoWPAN節(jié)點的訂閱主題設(shè)定為“ALL_ORDER/該節(jié)點的IPv6地址”。在遠程客戶端訂閱主題為“ALL_DATA/#”,即可接收到所有節(jié)點發(fā)布的全部消息;當(dāng)遠程客戶端訂閱主題為“ALL_DATA/節(jié)點1的IPv6地址/#”時,則可以只接收節(jié)點1發(fā)布的消息。
6LoWPAN節(jié)點的工作流程如圖5所示。節(jié)點上電后,首先進行Contiki系統(tǒng)初始化、6LoWPAN協(xié)議棧初始化、時鐘設(shè)置、射頻模塊初始化等。初始化后節(jié)點加入6LoWPAN網(wǎng)絡(luò),然后啟動MQTT線程,嘗試連接MQTT服務(wù)器,并訂閱客戶端用于發(fā)布命令的主題。在連接后會對信道監(jiān)聽,若沒有收到信息,則節(jié)點執(zhí)行預(yù)定命令,按一定的時間間隔來采集環(huán)境信息,節(jié)點將所采信息作為MQTT消息的內(nèi)容,定時發(fā)布。所采信息會被按照IEEE 802.15.4標(biāo)準(zhǔn)封裝成MAC層數(shù)據(jù)幀,通過射頻單元多跳發(fā)送至網(wǎng)關(guān)再上傳至MQTT服務(wù)器。若接收到其他節(jié)點轉(zhuǎn)發(fā)的信息,則節(jié)點會把IEEE 802.15.4格式的數(shù)據(jù)幀提交給適配層,解析出IP數(shù)據(jù)報,如果該節(jié)點不是目的節(jié)點,則轉(zhuǎn)發(fā)該信息,如果是遠程客戶端下達的對此節(jié)點的控制指令則執(zhí)行該指令。

圖5 6LoWPAN節(jié)點工作流程圖
6LoWPAN節(jié)點主要具有以下兩個功能:
(1) 信息采集上傳功能。在6LoWPAN節(jié)點的信息采集程序中,設(shè)置定時器定時周期10分鐘,該定時周期在實際工作期間可以根據(jù)遠程客戶端的控制指令進行調(diào)整。定時器超時會觸發(fā)事件,然后會調(diào)用傳感器和RTC時鐘的接口函數(shù),實現(xiàn)對環(huán)境信息和當(dāng)前時間的獲取。6LoWPAN節(jié)點采集信息后,使用MQTT-S客戶端經(jīng)6LoWPAN網(wǎng)絡(luò)、網(wǎng)關(guān)和IPv6網(wǎng)絡(luò)把信息發(fā)布到MQTT服務(wù)器上。
6LoWPAN節(jié)點的微處理器使用電子開關(guān)與各傳感器相連,可通過程序控制開關(guān)閉合。為了減少6LoWPAN節(jié)點的能耗,信息采集程序會控制微處理器在不工作的時間內(nèi)進入低功耗模式,并停止給傳感器供電,直到事件觸發(fā)時才進入工作狀態(tài)以及給外圍電路供電。這樣能夠有效地延長節(jié)點在寒旱區(qū)野外環(huán)境中的使用壽命。
(2) 控制指令識別執(zhí)行功能。用戶在遠程客戶端發(fā)布控制指令控制6LoWPAN節(jié)點,需要把具體的控制操作編碼成為特定的指令參數(shù)。用戶把這些指令參數(shù)放入對應(yīng)于某一個節(jié)點訂閱主題的消息中發(fā)布,則該節(jié)點在接收到消息后,會把這些指令參數(shù)通過switch-case語句解析,識別出對應(yīng)的具體操作,然后執(zhí)行。
網(wǎng)關(guān)負責(zé)連接6LoWPAN網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò),為了滿足性能要求,網(wǎng)關(guān)采用雙芯片解決方案來設(shè)計。網(wǎng)關(guān)由6LoWPAN網(wǎng)卡與主處理器兩部分組成,兩部分通過UART串口相連。6LoWPAN網(wǎng)卡負責(zé)與6LoWPAN網(wǎng)絡(luò)進行無線通信,主處理器負責(zé)以有線方式與IPv6網(wǎng)絡(luò)通信。
為縮短研發(fā)周期,現(xiàn)階段主處理器先選用由迅為公司生產(chǎn)的iTOP-4412開發(fā)板進行開發(fā)。該開發(fā)板包含核心板和底板,核心板使用三星公司生產(chǎn)的Exynos4412四核處理器,采用Cortex-A9架構(gòu),主頻為1.4 GHz,具有1 GB DDR3 RAM,4 GB EMMC存儲器,完全滿足了網(wǎng)關(guān)對運算、存儲等性能的需求。6LoWPAN網(wǎng)卡的結(jié)構(gòu)與6LoWPAN節(jié)點基本相同。
6LoWPAN網(wǎng)卡部分仍采用Contiki系統(tǒng),主處理器部分則采用Linux系統(tǒng)。網(wǎng)關(guān)工作流程如圖6所示。
網(wǎng)關(guān)主要有如下三個功能:
(1) 建立和維護6LoWPAN網(wǎng)絡(luò),在6LoWPAN節(jié)點請求加入網(wǎng)絡(luò)時,對其進行無狀態(tài)地址自動配置;
(2) 在6LoWPAN網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò)間轉(zhuǎn)發(fā)數(shù)據(jù)報;
(3) 集成MQTT-S網(wǎng)關(guān),實現(xiàn)MQTT-S與MQTT協(xié)議的轉(zhuǎn)換。
主處理器上搭載了IP協(xié)議棧可以實現(xiàn)與IPv6網(wǎng)絡(luò)通信。主處理器與6LoWPAN網(wǎng)卡間采用串行線路協(xié)議(Serial Line Intemet Protocol,SLIP)通信,實現(xiàn)兩個模塊之間的IP數(shù)據(jù)報傳輸。主處理器通過RADVD(Router Advertisement Daemon for Linux IPv6)軟件配置網(wǎng)絡(luò)接口,實現(xiàn)無狀態(tài)地址自動配置和數(shù)據(jù)報轉(zhuǎn)發(fā)功能。網(wǎng)關(guān)的協(xié)議棧模型如圖7所示。

圖7 網(wǎng)關(guān)協(xié)議棧模型
在網(wǎng)關(guān)接入網(wǎng)絡(luò)后,網(wǎng)關(guān)一方面從6LoWPAN網(wǎng)絡(luò)中獲取6LoWPAN節(jié)點發(fā)布的包含環(huán)境信息的MQTT消息,將其上傳至MQTT服務(wù)器;另一方面接收來自IPv6網(wǎng)絡(luò)中遠程客戶端發(fā)布的包含了控制指令的MQTT消息,并將消息轉(zhuǎn)化成IEEE 802.15.4標(biāo)準(zhǔn)的數(shù)據(jù)幀,再經(jīng)6LoWPAN無線網(wǎng)絡(luò)多跳發(fā)送給目標(biāo)6LoWPAN節(jié)點。
基于發(fā)布/訂閱模式的系統(tǒng)具有松耦性和很好的可擴展性,因此寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng)的應(yīng)用層使用MQTT協(xié)議通信。監(jiān)測系統(tǒng)的MQTT服務(wù)器選擇支持MQTT v3.1版本的MQTT代理服務(wù)器Mosquitto。Mosquitto具有輕量級、開源等優(yōu)點,它使設(shè)備對設(shè)備之間的通信簡單化,所以非常適合物聯(lián)網(wǎng)的信息傳遞。
遠程客戶端可供用戶查看監(jiān)測系統(tǒng)所采集到的環(huán)境信息以及下達控制指令。遠程客戶端選擇MQTT的客戶端軟件Eclipse paho。Eclipse paho依靠集成方便、使用簡單的特性,而被廣泛使用。
遠程客戶端的功能實現(xiàn)流程如圖8所示,首先客戶端初始化連接參數(shù),包括客戶端名稱、服務(wù)器地址和端口號等。然后客戶端嘗試與服務(wù)器建立MQTT連接。連接后,用戶可以在訂閱主題中通過使用通配符來篩選獲取的消息。若用戶想要下達對某6LoWPAN節(jié)點的控制指令,可將控制參數(shù)作為消息內(nèi)容,將該節(jié)點訂閱的主題作為發(fā)布主題,發(fā)布后消息會被服務(wù)器推送到該節(jié)點,進而控制該節(jié)點。

圖8 遠程客戶端工作流程
我國高寒地區(qū)主要分布在甘肅、青海、新疆、西藏和四川內(nèi)的三千五百米以上的高原地區(qū),月均溫度最低值可達-10 ℃以下。我國寒區(qū)分布在整個西北和東北地區(qū),一月份平均氣溫最低,有些區(qū)域最低可達-30 ℃左右。我國的干旱與半干旱地區(qū)主要分布在陜西、甘肅、新疆和內(nèi)蒙古等地區(qū),有4個月以上的平均氣溫在10 ℃以上,年降水量在500 mm以下,在夏季平均氣溫最高可達35 ℃以上。
為了驗證監(jiān)測系統(tǒng)在寒旱區(qū)野外環(huán)境內(nèi)工作的穩(wěn)定性和測量的準(zhǔn)確性,在實驗室內(nèi)模擬寒旱區(qū)野外的氣候環(huán)境,并測量模擬環(huán)境中的空氣溫濕度。實驗地點:蘭州市安寧區(qū)蘭州交通大學(xué)第六教學(xué)樓,海拔約1 550 m,實驗時間:2019年5月17日7時至21時。將3個6LoWPAN節(jié)點分別命名為節(jié)點1、節(jié)點2和節(jié)點3,3個節(jié)點放置的位置相隔約5 m。節(jié)點1放置在實驗室窗外測量自然環(huán)境下室外空氣溫濕度;節(jié)點2放置在模擬高寒地區(qū)低溫環(huán)境的冰箱冷凍室中;節(jié)點3放置在模擬高溫干旱地區(qū)環(huán)境的暖風(fēng)機前約20 cm處。同時,將一個網(wǎng)關(guān)和兩臺計算機也布置在實驗室中。計算機1配置成IPv6環(huán)境,并在Ubuntu平臺上搭建Mosquitto服務(wù)器環(huán)境。計算機2配置成IPv6環(huán)境,并在Windows平臺上安裝Eclipse paho客戶端。
首先在計算機1中開啟Mosquitto服務(wù)器,然后在計算機2中打開Eclipse paho客戶端,并與Mosquitto服務(wù)器建立MQTT連接。根據(jù)網(wǎng)關(guān)設(shè)定的網(wǎng)絡(luò)內(nèi)全球可聚合單播地址前綴2001:250:1403:2003::/64和節(jié)點1的MAC地址可知其全球可聚合單播地址是2001:250:1403:2003:212:4b00:5af:7ee4。此時在計算機2中,使用ping命令發(fā)送ICMP報文至節(jié)點1測試連通性,如圖9所示。

圖9 測試端到端通信
可以看出,計算機2接收到了節(jié)點1的回復(fù),這說明計算機2與6LoWPAN節(jié)點之間是連通的。因此,監(jiān)測系統(tǒng)的6LoWPAN網(wǎng)絡(luò)構(gòu)建成功,能夠?qū)崿F(xiàn)WSN中嵌入式設(shè)備與IPv6網(wǎng)絡(luò)中主機的端到端通信。
在Eclipse paho客戶端訂閱主題為“ALL_DATA/fe80::212:4b00:5af:7ee4/temp”和“ALL_DATA/fe80::212:4b00:5af:7ee4/hum”的消息。接收到的消息內(nèi)容如圖10所示,在2019年5月17日的7時01分43秒和7時02分11秒,在Eclipse paho客戶端接收到了節(jié)點1所采集的空氣溫度和濕度的消息。測試結(jié)果說明寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng)實現(xiàn)了信息采集與上傳的功能。

(a) 空氣溫度

(b) 空氣濕度圖10 節(jié)點1發(fā)布的消息
接下來再來測試對6LoWPAN節(jié)點上RGB指示燈的控制。如圖11所示,在Eclipse paho客戶端發(fā)布主題是“ALL_ORDER/fe80::212:4b00:5af:7ee4”的消息,消息內(nèi)容輸入“‘l’‘2’”,然后發(fā)布,‘l’是指控制節(jié)點的RGB指示燈,‘2’是指讓RGB顯示紅色。

圖11 發(fā)布控制指示燈的指令
控制指令發(fā)布前后,節(jié)點1的RGB指示燈狀態(tài)如圖12所示。

(a)下達指令前

(b)下達指令后圖12 控制指令下達前后RGB指示燈狀態(tài)
從圖12中可以看出,節(jié)點1接收到控制指令后,執(zhí)行了指令的控制操作,將RGB顯示為紅色。測試結(jié)果表明寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng)能夠?qū)崿F(xiàn)控制指令的下達和執(zhí)行。
將3個節(jié)點在不同環(huán)境下多個時刻監(jiān)測到的溫濕度數(shù)據(jù)和實測溫濕度值進行對比,結(jié)果分別如表1-表3所示。

表1 室外實測溫濕度與節(jié)點1監(jiān)測值比較表

表2 冰箱內(nèi)實測溫濕度與節(jié)點2監(jiān)測值比較表

表3 暖風(fēng)機前實測溫濕度與節(jié)點3監(jiān)測值比較表
可以看出,當(dāng)節(jié)點工作在高溫、低溫以及不同濕度環(huán)境下時,監(jiān)測系統(tǒng)所測量的溫濕度誤差均小于5%,這說明監(jiān)測系統(tǒng)具有較高的工作穩(wěn)定性和測量精確度,基本可以滿足寒旱區(qū)極端環(huán)境的要求。
基于6LoWPAN和MQTT設(shè)計的寒旱區(qū)野外環(huán)境監(jiān)測系統(tǒng),經(jīng)過測試節(jié)點功能正常,數(shù)據(jù)傳輸準(zhǔn)確、穩(wěn)定,系統(tǒng)功能完整。該研究可提升野外監(jiān)測信息化,提高數(shù)據(jù)的采集密度和質(zhì)量,對于提升寒旱區(qū)野外環(huán)境監(jiān)測的自動化水平和實時性具有一定的實際意義,也為未來構(gòu)建寒旱區(qū)跨學(xué)科、跨區(qū)域的虛擬同步聯(lián)合觀測系統(tǒng)做好了前期技術(shù)儲備,在理論研究和應(yīng)用研究方面都具有重要意義和價值。