阮鑫 譚宗任 陳家
摘 要 為滿足遠洋環(huán)境實時監(jiān)測的實際需求,本文研究了基于MQTT服務器的遠洋環(huán)境監(jiān)測系統(tǒng)的設(shè)計方案,該方案采用STM32處理器,通過GPRS通信模塊實時動態(tài)聯(lián)網(wǎng)控制,利用傳感器模塊獲取船體位置、狀態(tài)及環(huán)境數(shù)據(jù),通過MQTT服務器對船體發(fā)送控制指令,完成對船體控制以及周圍水域環(huán)境實時動態(tài)監(jiān)測。實驗結(jié)果表明,該方案可實現(xiàn)控制功能及環(huán)境監(jiān)測功能,能充分滿足環(huán)境檢測的需求。
關(guān)鍵詞 環(huán)境監(jiān)測;MQTT服務器;物聯(lián)網(wǎng);GPS定位;GPRS通信
引言
當前的物聯(lián)網(wǎng)發(fā)展中在國家與營運商的推動下大力發(fā)展,中國的物聯(lián)網(wǎng)技術(shù)逐漸走到世界前列,成型的物聯(lián)網(wǎng)運營商有移動和電信,與此同時,阿里云,小米等互聯(lián)網(wǎng)供應商也擁有著完整的生態(tài)鏈,不再局限于RFID等短程通信手段,而是以互聯(lián)網(wǎng)為主的遠程互聯(lián)網(wǎng)連接將設(shè)備通過網(wǎng)絡(luò)控制起來,當前大多數(shù)物聯(lián)網(wǎng)設(shè)備只能遠程采集數(shù)據(jù),做簡單的開關(guān)控制,在此基礎(chǔ)上文章通過前人搭建服務器的方法自行構(gòu)建服務器,并利用市面上成型的物聯(lián)網(wǎng)通信模塊,通過GPRS通信對數(shù)據(jù)進行上傳和下載,遠程對設(shè)備進行定位與控制。
1系統(tǒng)結(jié)構(gòu)設(shè)計
如圖1所示,遠洋監(jiān)控系統(tǒng)包括數(shù)據(jù)服務器、控制端、物聯(lián)網(wǎng)、監(jiān)測船只、采集傳感器,采集傳感器用于采集當前船只所處海域的各類環(huán)境數(shù)據(jù),如水溫、海水渾濁度、海域的光照數(shù)據(jù),由船只中的中控進行數(shù)據(jù)匯總,將船只運行狀態(tài)、環(huán)境數(shù)據(jù)、海域坐標等匯總數(shù)據(jù)糾偏后通過GPRS模塊進行數(shù)據(jù)上傳至數(shù)據(jù)服務器,服務器對數(shù)據(jù)進行解析,并顯示于控制端,通過MQTT(Message Queuing Telemetry Transport)服務器進行會話傳輸數(shù)據(jù),控制端獲取到數(shù)據(jù)并應用于地圖定位與環(huán)境分析,控制端通過會話向監(jiān)控船只發(fā)出指令進行
航行實時控制。控制端使用Apache-Apollo搭建的MQTT服務器進行主題訂閱,通過客戶端與控制端同時訂閱發(fā)布的主題,客戶端可以向這個訂閱主題中發(fā)送數(shù)據(jù),控制端會收到這個訂閱主題發(fā)出來的數(shù)據(jù),反之亦然。以此來完成數(shù)據(jù)的推送,將該服務器作為一個數(shù)據(jù)中轉(zhuǎn)站,從而減少消息在服務器上的停留等待時間,進而減少指令傳輸?shù)臅r延。高效地對遠洋環(huán)境數(shù)據(jù)進行采集并控制船只位置[1-2]。
2系統(tǒng)方案設(shè)計
2.1 主控MCU方案
圖2為單片機控制程序流程圖??刂破鱏TM32F1擁有2個12位數(shù)模轉(zhuǎn)換器,電壓采集分辨率高,7通道DMA數(shù)據(jù)采集快,多達7個定時器和9個通信接口。相比于8051,STM32F1的優(yōu)勢更明顯,因此采用STM32F1作為主控芯片。
2.2 GPRS聯(lián)網(wǎng)與GPS定位方案
本項目中采用合宙的AIR800系列GPRS/GNSS集成模塊作為通信模塊,AIR800模塊是一款GPRS+GPS+北斗定位三合一的通信模塊,模塊外部結(jié)構(gòu)采用23.8mm × 14.8mm × 2.3mm的超小尺寸有利于狹小的船體空間電路布局。模塊內(nèi)嵌TCP、UDP、FTP、PPP等協(xié)議,已內(nèi)嵌的擴展AT命令可以更容易地使用這些互聯(lián)網(wǎng)協(xié)議,采用串口方式連接主控與模塊,通過 GPRS聯(lián)網(wǎng)使用MQTT協(xié)議進行服務器連接,主題訂閱和數(shù)據(jù)上傳。模塊中集成了GNSS定位,支持北斗,GPS,GLONASS等定位方式,快速啟動,該GPS模塊定位采用的是國際標準的地心坐標系坐標(WGS-84),而國內(nèi)使用的是基于國測局坐標系的國家大地坐標系(GCJ02),即采用的是非標坐標系,而不同的地圖(如百度,高德等)定位采用的是GCJ02坐標系基礎(chǔ)上加密的糾偏算法,所以為了更方便顯示與使用定位數(shù)據(jù),我們采用現(xiàn)有的百度地圖API接口作為糾偏方案,并對地址數(shù)據(jù)進行解析,顯示在百度地圖上,從而獲得監(jiān)測船的地理位置并實現(xiàn)圖形化,在廣袤的海域中準確定位船只位置,并將其地址坐標用于定點返航,達到回收設(shè)備的目的[3-5]。
2.3 服務器構(gòu)建方案
服務器在構(gòu)建時考慮過三個方案:
(1)采用TCP協(xié)議進行TCP服務器的構(gòu)建,利用TCP協(xié)議的特性進行設(shè)備間的點對點數(shù)據(jù)傳輸。
(2)采用HTTP協(xié)議進行服務器的構(gòu)建,利用HTTP協(xié)議達成設(shè)備與服務器的通信和設(shè)備數(shù)據(jù)的請求。
(3)采用Apache-Apollo進行MQTT服務器的構(gòu)建,使用MQTT通信協(xié)議進行設(shè)備到設(shè)備的數(shù)據(jù)交換。
在構(gòu)建后分別對三個方案測試,方案(1)優(yōu)點是點對點傳輸數(shù)據(jù)準確性高,缺點是時延太大,1.5S的時延操作對于在緊急事態(tài)下的操作過于緩慢協(xié)議對接稍微煩瑣。方案(2)優(yōu)點是它不僅可以保證設(shè)備可以正確快速地傳輸數(shù)據(jù),同時可以確定是該數(shù)據(jù)中的哪一部分,以及哪部分數(shù)據(jù)優(yōu)先顯示等,但缺點也明顯,顯然GPRS通信模塊在該協(xié)議下請求后等待響應數(shù)據(jù)流程操作不利于快速數(shù)據(jù)交換,而且時延比TCP協(xié)議的服務器更長。方案(3)的MQTT協(xié)議,采用的是M2M的輕量級設(shè)備對設(shè)備的數(shù)據(jù)傳遞協(xié)議,代碼占用量小且數(shù)據(jù)量較小,因此該協(xié)議是設(shè)備在缺乏網(wǎng)絡(luò)帶寬,且網(wǎng)絡(luò)速率不高的情況下的優(yōu)先選擇。MQTT協(xié)議還可以幫助減少技術(shù)和集成層。快速收發(fā)數(shù)據(jù)與重連服務器,結(jié)構(gòu)由圖4所示。為此,該協(xié)議消除了在不同組件與模塊之間轉(zhuǎn)換數(shù)據(jù)的需求,并且消除了使用第三方中間件在設(shè)備和IoT平臺之間進行通信的需求,是較為理想的數(shù)據(jù)通信協(xié)議。在傳輸測試時,時延降低至1秒內(nèi),是較為理想的交換服務器,所以本次采用MQTT服務器方案來進行遠程通信與控制。
2.4 傳感器方案
作為監(jiān)測船只的眼睛——感知層,船只中控采用開放式傳感器擴展接口,以求更好地兼容傳感器模塊以及更多的監(jiān)測數(shù)據(jù),實際使用中系統(tǒng)可監(jiān)測水體渾濁度,水溫,光照,空氣濕度等。
(1)渾濁度傳感器
水體的渾濁度是指水體中含有泥沙、黏土、浮塵、微生物等懸浮物造成的渾濁程度??蛇x用一款家用洗碗機中常用的采用光學原理的濁度傳感器TSW-30,通過檢測溶液中的透光度和散射率來判斷液體的渾濁程度,在傳感器探頭內(nèi)部有一對紅外對管,當紅外透過液體時,渾濁度越高透過的光越少,接收端光電轉(zhuǎn)化的電流越小,反之越大。模塊上的轉(zhuǎn)換芯片,將電流轉(zhuǎn)換為模擬電壓與數(shù)字電壓,只需要MCU采集并轉(zhuǎn)還數(shù)據(jù)即可判斷水體的渾濁度。
(2)溫度傳感器與濕度傳感器
檢測空氣溫度時可以采用DS18B12,DHT11,HDC1080等模塊,采用DHT11作為空氣的溫度濕度采樣,價格優(yōu)廉性價比高,單總線通訊抗干擾強,表面做防水處理即可正常在海面上正常工作,但這個模塊只局限于水面上,如果其進行防水處理并放入水中將會影響模塊的靈敏度以及數(shù)據(jù)的準確度且在水下不需要濕度監(jiān)測,所以為了能精確采集水下溫度,采用導熱性高的密封膠灌封裝好的DS18B20,引腳使用熱縮管進行防水處理,保證了這個傳感器的高靈敏性,同時它的單總線通信模式極大地提高到了抗干擾性更適合水下溫度的監(jiān)測。
(3)光照傳感器
光照傳感器擬定采用TEMT6000與GY-302,前者擁有570nm的高感應靈敏度,且可一直紅外光譜,提供近似“人眼”的更高可見光譜響應性,但IO輸出為模擬量電壓需要進行較為復雜的計算標定轉(zhuǎn)化勒克斯單位,后者不區(qū)分光源,提供接近視覺靈敏度的分光特性,可對廣泛亮度進行精確測定,精度1勒克斯,內(nèi)部內(nèi)置AD轉(zhuǎn)換器采用IIC通信直接通過通信協(xié)議對采集數(shù)據(jù)數(shù)字輸出省略復雜的計算與標定,相比之下決定采用算法復雜度更低的GY-302模塊作為光照采集模塊,該模塊13mm*18.5mm小型且面積寬的封裝,更適合固定在船頂表面[6-9]。
3測試效果
圖5為控制終端測試效果圖。終端具有遠程操控船只的功能,可顯示監(jiān)測的環(huán)境數(shù)據(jù),還可以通過上傳的GPS定位數(shù)據(jù)精確定位船只在地圖窗口所處的區(qū)域。
4結(jié)束語
通過實際的應用,遠洋監(jiān)測船可以通過服務器很好地解決了人工實地考察以及人工采集數(shù)據(jù)的不便之處,快速準確解決了中短程距離的海域環(huán)境監(jiān)測問題如圖5所示,針對三類服務器方案期間出現(xiàn)不同程度的問題,在服務器上做出相應的修正的算法方案,在大量的實驗測試后決定將MQTT服務器作為上端數(shù)據(jù)中轉(zhuǎn)站,能高效快速地進行數(shù)據(jù)傳輸并在控制端顯示與控制。
參考文獻
[1] 王松林.農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)應用及創(chuàng)新發(fā)展策略[J].電子測試,2018(3):159.
[2] 王彪.基于物聯(lián)網(wǎng)技術(shù)的智能家居系統(tǒng)[J].數(shù)字技術(shù)與應用,2018,334(4):79,81.
[3] 蘇程浩.物聯(lián)網(wǎng)技術(shù)在智慧城市建設(shè)中的應用[J].數(shù)字通信世界,2018,158(2):202.
[4] 肖鵬,陳健,姜培.基于物聯(lián)網(wǎng)的環(huán)境監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2018,8(1):14-16.
[5] 華凈,王秀娟,王浩宇,等.基于物聯(lián)網(wǎng)的日光溫室環(huán)境監(jiān)測在線校準[J].中國農(nóng)學通報,2018,36(5):120-124.
[6] 林敬學,李會平.基于物聯(lián)網(wǎng)的工業(yè)環(huán)境監(jiān)控平臺[J].電子設(shè)計工程,2019,27(7):47-50,55.
[7] 馬躍,顏睿陽,孫建偉.基于RocketMQ的MQTT消息推送服務器分布式部署方案[J].計算機系統(tǒng)應用,2018,27(6):85-88.
[8] 陳建剛,黃國偉,劉星明,等.基于MQTT協(xié)議與開源硬件的智能監(jiān)控系統(tǒng)[J].單片機與嵌入式系統(tǒng)應用,2017,17(10):59-61.
[9] 張玉杰,郭向陽,李棟.基于藍牙與MQTT服務器的DALI智能照明系統(tǒng)設(shè)計[J].陜西科技大學學報:自然科學版,2016(5):152-156.
作者簡介
陳家棟(1986-),男,廣西合浦人;畢業(yè)院校:桂林電子科技大學,專業(yè):測試計量技術(shù)及儀器,學歷:碩士,職稱:講師,現(xiàn)就職單位:桂林電子科技大學電子信息學院,研究方向:測試計量技術(shù)與儀器。
阮鑫(1999-),男,廣西博白人;學歷:本科生在讀,就讀院校:桂林電子科技大學電子信息學院,專業(yè):電子信息科學與技術(shù),研究方向:嵌入式與電子設(shè)計。
譚宗任(1999-),男,廣西欽州人;學歷:本科生在讀,就讀院校:桂林電子科技大學計算機工程學院,專業(yè):網(wǎng)絡(luò)工程,研究方向:網(wǎng)絡(luò)工程與嵌入式。