999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MQTT協議的跨平臺工業級物聯網消息傳輸系統實現與設計

2020-10-09 11:01:23孫海濱張敬超
軟件 2020年8期
關鍵詞:跨平臺物聯網

孫海濱 張敬超

摘 ?要: 隨著物聯網技術的發展和移動終端的普及,人們更加希望能夠隨時隨地方便地獲取信息和服務,這時就涉及到物聯網硬件設備,windows客戶端,手機端,web網頁之間不同平臺,不同語言的信息交互。本文結合MQTT,windows服務,winform程序設計技術,windows消息隊列,串口通信,React Native等,提出了物聯網消息傳輸的一系列方法,實現了在云服務器資源較小的情況下,用戶可以方便快捷地多平臺訪問和控制物聯網硬件信息和設備,節約云服務器開支的同時,提高了數據訪問效率。

關鍵詞: MQTT;物聯網;跨平臺;Winform程序

中圖分類號: TP311.1 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.08.045

本文著錄格式:孫海濱, 張敬超. 基于MQTT協議的跨平臺工業級物聯網消息傳輸系統實現與設計[J]. 軟件,2020,41(08):168-171

【Abstract】: With the development of Internet of things technology and the popularization of mobile terminals, people are more willing to obtain information and services conveniently anytime and anywhere. At this time, information interaction between hardware devices of Internet of things, Windows client, mobile terminal and web page on different platforms and in different languages is designed. Based MQTT, Windows services, winform programming technology, Windows message queue, serial communication, the React Native and so on, puts forward the Internet message transmission of a series of methods, realized in the case of a small cloud server resources, the user can more convenient platform to Internet access and control hardware and equipment information, saving cloud server costs at the same time, improve the efficiency of data access.

【Key words】: MQTT; Internet of things; Cross-platform; Winform procedure

0 ?引言

隨著互聯網和移動手機技術的迅猛發展,物聯網平臺的概率廣泛被提及[1],物聯網平臺是提供應用支撐、數據存儲等能力的平臺[2],其物聯網技術已經應用到了各個場景,企業測量設備加入無線模塊后,即可遠程控制。但是在設備測量數據進行存儲時,若將大量數據存入云服務器,就會帶來一些問題。第一,當設備較多時,需要的云服務器的存儲空間比較大,需要前期的投入較大。第二,企業數據都將存入購買的運營商的服務器,數據在傳輸和保存時容易遭到泄露,這就降低了企業自己的測量數據的保密性。所以大多數企業要求將數據存入到自己的本地數據庫,同時要求可以手機,網站等不同方式來訪問數據和控制設備。

面對這些挑戰,我們設計出了一套跨平臺工業級物聯網消息傳輸系統[3],企業員工可以在公司計算機的客戶端上進行設備控制和數據查詢,又可以通過外網使用手機或者網頁訪問保存在企業本地的數據,并控制設備,在保證了數據的安全性的同時,數據在傳輸過程中更加及時、高效、省流量、省資源。

1 ?相關技術研究

1.1 ?MQTT介紹

MQTT是由IBM發布的一種輕量級跨平臺消息傳輸協議[4],MQTT 可以被解釋為一種低開銷,低帶寬占用的即時通訊協議,利用極少的代碼和帶寬的為連接遠程設備提供實時可靠的消息服務,它適用于硬件性能低下的遠程設備以及網絡狀況糟糕的環境下,因此 MQTT 協議在物聯網,小型設備應用,移動應用等方面有較廣泛的應用。

MQTT協議運行在TCP/IP或其他網絡協議,提供有序、無損、雙向連接[5]。其特點包括:

使用的發布/訂閱消息模式。提供了一對多消息分發機制,以實現與應用程序的解耦。對負載內容屏蔽的消息傳輸機制。

本文利用MQTT協議實現Web端與服務端進行交互,實現移動端和網頁端對物聯網設備的控制。

1.2 ?串口通信

串口通信是指以位(bit)為單位發送方和接收字節,且遵守時序的一種通信方式。可以將接收處理器發送的并行字符轉換為連續的串行數據流發送,反之也能將串行數據流發送給處理器。以傳輸方向進行區分通常分為三種模式:單工、半雙工和全工[6]。

本文利用無線模塊轉接串口,實現物聯網設備與服務端的收發消息。

1.3 ?Windows程序介紹

Winform是基于微軟公司開發的C#語言[7],利用.Net平臺開發應用程序,具有Windows窗口開發的特點[8]。

本文利用windows程序開發服務端與企業客戶端,服務端用于與物聯網設備收發消息,客戶端用于數據的解析以及數據庫操作,且面向客戶端用戶進行數據展示以及操作。

1.4 ?React Native介紹

React Native(簡稱RN)是Facebook在2015年4月發布的一款移動應用開發框架,與FaceBook早先發布的UI框架React一樣具有開源的特性。RN既能擁有原生native的交互體驗,又能夠保持web的高效與靈活,且能支持IOS和Android兩大移動端平臺等特點[9]。

RN的優勢在于具有較強擴展性,且可以適用Native的原生動畫,避免了WebView的交互和性能問題。

本文利用RN構建web客戶端,為用戶移動端和瀏覽器訪問設備及其數據提供服務。

2 ?系統架構

整個跨平臺工業級物聯網消息傳輸系統提供給用戶對物聯網設備信息的查詢和設置,幫助用戶在企業局域網和外網上遠程控制設備,用戶通過手機客戶端,電腦客戶端和網址查詢儲存在企業本地服務器的測量設備,整個系統架構如圖1所示。

系統分為四部分,第一部分,物聯網硬件設備,主要負責對企業需要數據統計,對要測量的物體進行測量和分析,將數據通過無線通信模塊進行傳輸;第二部分,企業服務器終端,其中包括windows服務程序、Microsoft Message Queue服務器和監控物聯網設備的客戶端。windows服務程序其功能是接受第一部分物聯網硬件設備發來的數據信息,并解析,將數據保存的企業服務器的數據庫中[7]。Microsoft Message Queue服務器用于將服務信息和監控物聯網設備的客戶端的信息進行通信。第三部分,消息代理服務器(Message Broker)/Web Server,消息代理服務器主要負責實現MQTT協議的各項功能,提供發布/訂閱管理功能、連接管理功能等,為客戶端提供發布/取消發布、訂閱/取消訂閱等服務。通過消息代理各模塊協調工作,形成了完整的發布/訂閱消息推送系統。Web Server主要負責手機客戶端的用戶驗證登錄以及Web網頁對信息管理的實現。第四部分移動終端和web網頁層。主要提供給用戶展示設備狀態和信息的平臺。

MQTT消息處理架構,如圖2所示。

用戶Tom(移動端/Web網頁端)訪問企業服務器,必須通過App的API服務器的登錄驗證,然后會獲取到企業服務器訂閱的factory topic信息。企業的服務器啟動時會自動訂閱factory topic。Tom只需通過MQTT代理服務器將控制信息publish到factory topic上,企業服務器就會接到Tom的控制信息。在Tom的控制信息里包含著Tom所訂閱的Tom topic信息,企業服務器會將此信息保存并將查詢結果publish到Tom的 topic,Tom的移動終端就會獲得信息,以此完成移動端的遠程通信[10]。

這里用戶和企業服務器是多對多的關系,即一個用戶可以向多個企業服務器查詢數據,企業服務器也可以同時服務多個用戶,向用戶返回數據。且在這樣的情況下,對于云服務器(MQTT代理服務器)的負載十分小(因為只是轉發數據,并沒有將數據進行處理),所需要的數據存儲空間小,大部分的計算負載和所有的測量數據存儲都分載在不同企業的服務器上,提高了通信效率,保證了數據的安全性,降低了對于云服務器的硬件成本。

3 ?系統流程

3.1 ?企業服務器終端實現

企業服務器終端主要用于接收、發送、解析和計算物聯網設備的控制、數據指令,以此來監控物聯網設備和儲存設備測量的信息[11]。主要分為四個模塊,模塊一,其功能利用設備無線模塊和計算機的串口接收和發送設備指令;模塊二,連接MQTT,訂閱企業的topic,對移動終端設備的遠程控制和查詢提供接口;模塊三,利用消息隊列(MSMQ)實現服務和windows客戶端程序進程之間的通信,通信內容是從物聯網設備接收到的指令代碼;模塊四,客戶端對從服務器中接收到的物聯網設備的指令代碼進行解析顯示,并進行控制和歷史信息的查詢工作。

主要流程分為三部分:

(1)當服務器啟動時,Windows服務程序將自動啟動,檢查設備串口設備、Internet網絡連接情況和數據庫連接情況。并開啟消息隊列服務,等待企業電腦端的客戶端指令。當檢查網絡連接正常的時候,服務程序會自動連接MQTT代理服務器,并訂閱以自己編號為id的話題(topic)。

(2)用戶打開企業電腦端的客戶端對設備進行操作時,服務程序會通過MSMQ消息隊列接受客戶端的指令[12],解析組裝成物聯網設備能夠識別的十六進制指令后,通過串口發送給設備。設備接收指令后進行測量或者其他設置參數的操作,將返回的信息傳回服務,服務通過串口接收十六進制指令根據通信協議進行解析,將數據保存到數據庫中用于客戶端和手機APP的查詢或者將指令直接通過MSMQ轉發給企業電腦端,用于實時顯示設備情況[8]。

(3)服務器訂閱自己的MQTT topic話題,向Internet開放控制和查詢設備的接口,用于解析手機和Web網頁發來的用戶控制指令。當服務接到移動終端用戶通過MQTT發送給自己的指令時,服務將自動開啟線程,對指令進行解析。分析出移動端的用戶topic和指令類型,按照指令的類型進行操作,并將返回結果組裝成JSON字符串,通過MQTT發布(publish)到移動終端用戶的topic中。

在通訊過程中,需要三種通訊協議。

協議一:設備和服務之間的通訊協議。

協議二:服務和windows客戶端之間利用消息隊列傳輸的通訊協議。

協議三:服務和移動終端之間利用MQTT傳輸的通訊協議。

3.2 ?消息代理服務器的實現

實現MQTT的代理服務器的工作,管理訂閱賬號,消息轉發等。同時提供手機和網站查詢和儲存用戶,企業的信息。通過網站來設置用戶的管理權限,實現一個用戶對應管理多個企業服務的關系。在手機端,用戶可以根據自己的id查詢到企業的服務訂閱的MQTT topic,以此來通過手機進行對企業設備的遠程控制。

3.3 ?手機端實現

手機客戶端主要提供給用戶登錄的驗證及自動登錄的實現,對物聯網設備的遠程監控和歷史數據的查詢。

主要分為三個模塊:

(1)登錄模塊,用戶登錄時輸入正確的用戶名和密碼,當服務器驗證通過后,會將該用戶的token發送給手機客戶端。客戶端通過React Native的AsyncStorage將token保存在手機中。當用戶下次開啟軟件時,將直接用token驗證用戶信息,不需要用戶重新輸入用戶名和密碼。

(2)MQTT通信和指令解析,登錄成功后,手機連接MQTT代理服務器,并訂閱以用戶id為topic的話題。同時獲取服務器保存的該用戶所管理的設備信息。當MQTT接收到發往這個topic的信息的時候,進行解析,得出數據信息在手機端進行展示。同時用戶發送控制設備信息時,將用戶、控制、設備、企業服務的話題(topic)信息和發送的數據信息組裝成JSON,publish給企業windows服務器訂閱的話題(topic),并設置callback函數,等企業服務器的待響應,響應成功后會將數據信息呈現到客戶端中。

(3)遠程控制和歷史查詢模塊,用戶選擇設備發送控制指令,手機App將用戶信息和指令信息封裝成JSON,通過MQTT發布到企業服務訂閱的topic。企業服務獲取指令解析出用戶信息,用戶信息中包含著手機訂閱的topic。服務執行完對設備的操作后將結果發布到手機訂閱的topic。

4 ?系統測試

本研究應用某物聯網系統取得良好成果,其測試物聯網設備為激光傳感器、步進電機等組成的測量設備,主要應用于立筒倉內部物料體積和重量測量[13],以及倉內溫濕度監控。通過本系統客戶端和手機端進行控制物聯網設備工作,收發設備的工作狀態,接收到設備采集的數據。測試結果為該系統傳輸效果可靠穩定,能適應復雜的傳輸情況,無數據丟失的現象。

5 ?結論

本文以MQTT協議為基礎,Windows程序開發為核心,遵照消息傳遞的過程,開發了一套物聯網消息傳輸系統,適用復雜條件下消息的收發,解決不同平臺之間消息協議的解析,利用多個協議之間的通信,實現了不同平臺間對設備的控制以及數據的接收,可利用在多種物聯網系統中,降低了數據丟失的概率,極大的提高了消息傳遞的穩定性。

參考文獻

[1] 李燕. 計算機監控系統中物聯網技術應用探究[J]. 軟件, 2018, 39(10): 220-223.

[2] 嚴新巧. 基于移動開發現狀探討React Native[J]. 電腦知識與技術, 2016, 12(32): 76-77+82.

[3] 王歡. 分布式移動性管理協議研究[J]. 軟件, 2015, 36(2): 80-85.

[4] Haripriya A. P.,Kulothungan K.. Secure-MQTT: an efficient fuzzy logic-based approach to detect DoS attack in MQTT protocol for internet of things[J]. EURASIP Journal on Wireless Communications and Networking, 2019, 2019(1).

[5] 耿云飛. 融合通信消息引擎的設計與實現[D]. 中國科學院研究生院(沈陽計算技術研究所), 2016.

[6] 張幼麟. 51單片機串口應用[J]. 內江科技, 2019, 40(10): 32+12.

[7] 孫毓蔓, 左小清, 蘇文豪. 基于ArcGIS Engine與C#.net的地塊合并功能的實現[J]. 軟件, 2018, 39(10): 150-155.

[8] 代鴻元. 基于WinForm的脈沖安防報警系統設計與實現[D]. 天津大學, 2017.

[9] 金昱東. 一種基于ReactNative的代碼壓縮與動態加載的實現方法[J]. 軟件, 2016, 37(02): 81-84.

[10] 明鳴. 以Windows服務為基礎的網口與串口通信設計淺析[J]. 中國新通信, 2018, 20(03):66.

[11] 陳星, 霍珊珊, 劉健. 物聯網信息系統安全測評服務模式的研究[J]. 軟件, 2016, 37(3): 09-15.

[12] 莫洪艷. 在.NET平臺利用MSMQ實現不同應用間的異步通訊[J]. 天津冶金, 2017(06): 46-48.

[13] 楊棟, 劉錚. 淺談激光測距技術對料堆盤庫的應用[J]. 衡器, 2016, 45(12): 15-18.

猜你喜歡
跨平臺物聯網
跨層級網絡、跨架構、跨平臺的數據共享交換關鍵技術研究與系統建設
一款游戲怎么掙到全平臺的錢?
電腦報(2021年11期)2021-07-01 08:10:05
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
基于物聯網的煤礦智能倉儲與物流運輸管理系統設計與應用
基于高職院校物聯網技術應用人才培養的思考分析
基于LABVIEW的溫室管理系統的研究與設計
論智能油田的發展趨勢及必要性
中國或成“物聯網”領軍者
環球時報(2016-08-01)2016-08-01 07:04:45
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
主站蜘蛛池模板: 免费激情网站| 中文字幕乱码二三区免费| 国产毛片不卡| 免费国产高清精品一区在线| 亚洲男人的天堂网| 97超爽成人免费视频在线播放| 久青草网站| 天堂av高清一区二区三区| 制服丝袜国产精品| 欧美成人午夜影院| 四虎永久在线精品影院| 性做久久久久久久免费看| 亚洲天堂网站在线| 午夜福利免费视频| 色综合天天操| 亚洲码在线中文在线观看| 午夜精品国产自在| 青青久久91| 成人av专区精品无码国产| 暴力调教一区二区三区| 99re在线免费视频| 亚洲成人高清在线观看| 97se亚洲综合在线韩国专区福利| 天天综合色网| 免费国产高清视频| 日韩欧美综合在线制服| 老司机久久99久久精品播放| 成人va亚洲va欧美天堂| 九色视频在线免费观看| 亚洲精品卡2卡3卡4卡5卡区| 亚洲中文字幕无码mv| 亚洲欧美日韩中文字幕在线一区| 色综合天天综合| 中国一级特黄大片在线观看| 五月天丁香婷婷综合久久| 无码精品国产dvd在线观看9久| 亚洲啪啪网| 国产91九色在线播放| 18禁不卡免费网站| 国产99视频免费精品是看6| www.国产福利| 国产成人亚洲精品蜜芽影院| 久久亚洲中文字幕精品一区 | 波多野结衣中文字幕一区二区| 欧美国产日韩在线观看| 国产极品美女在线播放| 无码网站免费观看| 在线色国产| 亚洲精品人成网线在线| 永久免费AⅤ无码网站在线观看| 日本午夜精品一本在线观看| 免费视频在线2021入口| 精品在线免费播放| 国产欧美精品一区aⅴ影院| 欧美成在线视频| 天天色天天操综合网| 九色视频在线免费观看| 波多野吉衣一区二区三区av| 91小视频版在线观看www| 亚洲欧美日本国产专区一区| 成人毛片在线播放| 国产一区二区三区日韩精品| 日本精品一在线观看视频| 久久精品国产一区二区小说| 天堂在线视频精品| 日本AⅤ精品一区二区三区日| 免费国产小视频在线观看| 人人艹人人爽| 99在线观看精品视频| 欧美午夜视频在线| 婷婷99视频精品全部在线观看| 久久特级毛片| 国产伦片中文免费观看| 极品av一区二区| 欧美日韩国产高清一区二区三区| 日本午夜影院| 欧美a网站| 午夜在线不卡| 亚洲欧美日韩精品专区| 国产AV毛片| 亚洲浓毛av| 亚洲人成影视在线观看|