阮鑫 譚宗任 陳家



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