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

基于ZigBee與MQTT的物聯(lián)網(wǎng)網(wǎng)關通信框架的設計與實現(xiàn)

2017-05-23 08:02:24譚方勇王昂劉子寧
軟件工程 2017年4期

譚方勇+王昂+劉子寧

摘 要:提出了一種基于ZigBee與MQTT的物聯(lián)網(wǎng)網(wǎng)關協(xié)議轉換的通信框架的設計方法,主要目的是解決多協(xié)議、多消息格式的兼容與擴展的問題。用C#語言定義了符合框架的傳感器設備類和數(shù)據(jù)類,并利用“觀察者模式”和“簡單工廠模式”的設計思想,解決了多協(xié)議擴展和通信效率的問題。

關鍵詞:ZigBee;MQTT;物聯(lián)網(wǎng)網(wǎng)關;通信框架;JSON

中圖分類號:TP393.03 文獻標識碼:A

Abstract:The paper proposes a design method of the communication framework for internet of things gateway protocol conversion based on ZigBee and MQTT.The main purpose is to solve the compatibility and expansion problems of multi-protocol and multi-message formats.It defines the framework of the sensor device class and data class with the C# language,and solves the low efficiency problem of multi-protocol extension and communication through the design philosophy of Observer Pattern and Simple Factory Pattern.

Keywords:ZigBee;MQTT;IOT Gateway;communication framework;JSON

1 引言(Introduction)

隨著“智慧地球”“感知中國”等一系列有關物聯(lián)網(wǎng)相關的口號的提出,物聯(lián)網(wǎng)的在各行各業(yè)應用方案也在不斷地被提出并實施,這也使人們的生活變得更加便利和智能化[1]。此外,因為無線傳感器結構簡單、成本低廉的特點,使得其在物聯(lián)網(wǎng)中成為一個部分,但因為其使用的ZigBee協(xié)議與現(xiàn)有的互聯(lián)網(wǎng)的TCP/IP協(xié)議是屬于兩種不同的異構網(wǎng)絡的協(xié)議[2],兩者之間如有實時、可靠的傳輸數(shù)據(jù),也成了無線傳感網(wǎng),乃至物聯(lián)網(wǎng)能否快速發(fā)展的一個重要因素。本文將MQTT協(xié)議融合到物聯(lián)網(wǎng)網(wǎng)關協(xié)議轉換的設計中,通過ZigBee協(xié)議與MQTT協(xié)議的對接,解決物聯(lián)網(wǎng)在不同網(wǎng)絡結構、不同通信方式以及不同協(xié)議環(huán)境下的對接問題。

2 相關研究背景(Related research background)

物聯(lián)網(wǎng)網(wǎng)關技術是物聯(lián)網(wǎng)的關鍵技術之一,近年來國內外的研究也較多,在感知層的ZigBee協(xié)議與上層協(xié)議的對接轉換上提出了很多網(wǎng)關的實現(xiàn)技術和方案,如將ZigBee與Wi-Fi進行對接來實現(xiàn)智能家居網(wǎng)關的設計[3];將ZigBee與TCP協(xié)議之間進行有效轉換來實現(xiàn)網(wǎng)關軟硬件設計[4];也有文獻提出一種基于Zig Bee技術和GPRS技術的網(wǎng)關設計方案,實現(xiàn)監(jiān)控中心對現(xiàn)地水位的實時監(jiān)控[5]。以上的這類文獻主要研究的是針對某種具體物聯(lián)網(wǎng)的應用場合下對物聯(lián)網(wǎng)網(wǎng)關的設計,在一定程度上也提高了物聯(lián)網(wǎng)網(wǎng)關的效率,但對于異構網(wǎng)絡的不同上層協(xié)議與底層ZigBee協(xié)議的對接的研究還比較少。本文將主要研究物聯(lián)網(wǎng)網(wǎng)關設計中ZigBee與MQTT協(xié)議的對接,從而實現(xiàn)物聯(lián)網(wǎng)感知層與不同應用層協(xié)議之間的通信。

3 物聯(lián)網(wǎng)網(wǎng)關相關協(xié)議分析(Analysis of internet of

things gateway protocol)

ZigBee是物聯(lián)網(wǎng)感知層的協(xié)議之一,它具有近距離、低功耗、低復雜度、低數(shù)據(jù)傳輸率以及自組織等特點,其低功耗的特點可以使其在有限能源供應的場合下能夠存活更長的時間;自組織的特點在物聯(lián)網(wǎng)感知節(jié)點的部署中可以通過多跳的方式來進行數(shù)據(jù)傳輸,而不需要專門部署固定的基礎設施。相比于其他物聯(lián)網(wǎng)感知層的短距離無線通信協(xié)議,如Wi-Fi、藍牙等,雖然Wi-Fi組網(wǎng)方便,但傳輸快、流量大的特點會導致其具有太大的功耗與成本開銷。對于物聯(lián)網(wǎng)感知層來說,對傳輸?shù)乃俣扰c流量并沒有很大要求,反而更需要低流量的緩解流量開銷的問題;藍牙協(xié)議雖然也是可以做到比較低的功耗,但其組網(wǎng)上要比ZigBee復雜麻煩得多,不適合物聯(lián)網(wǎng)下大量節(jié)點的組網(wǎng)與數(shù)據(jù)傳輸。

MQTT(Message Queueing Telemetry Transport Protocol,消息隊列遙測傳輸協(xié)議),它是IBM公司所推出的一種基于輕量級代理的發(fā)布/訂閱模式的消息傳輸協(xié)議,運行在TCP協(xié)議棧之上,能夠提供有序、可靠、雙向連接的網(wǎng)絡連接保證[6]。它具有開放、簡單和易于實現(xiàn)等特點,因此更適合于嵌入式系統(tǒng)以及網(wǎng)絡帶寬低等資源受限的環(huán)境中應用,此外,它也被廣泛用于遙感勘測、智能家居、能源監(jiān)測和醫(yī)療應用程序等各個領域,對于M2M或物聯(lián)網(wǎng)網(wǎng)關通信來說卻是一個不錯的選擇。

4 基于ZigBee與MQTT協(xié)議的物聯(lián)網(wǎng)網(wǎng)關總體設

計(Design of internet of things gateway based on

ZigBee and MQTT protocol)

4.1 網(wǎng)關系統(tǒng)總體結構設計

如圖1所示,基于ZigBee/MQTT物聯(lián)網(wǎng)網(wǎng)關位于網(wǎng)絡傳輸層,其嵌入式網(wǎng)關/PC網(wǎng)關應用程序將串口傳來的傳感器數(shù)據(jù)轉換為符合JSON消息格式的數(shù)據(jù),通過MQTT的發(fā)布者角色發(fā)布到MQTT代理服務器。MQTT代理服務器一方面對數(shù)據(jù)進行持久化操作,將數(shù)據(jù)以文檔形式存入MongoDB數(shù)據(jù)庫。另一方面則將網(wǎng)關應用程序發(fā)布的數(shù)據(jù)消息推送到已經訂閱的PC或移動端的客戶端。而應用層則是PC或移動端的客戶端接收服務器推送的下位機發(fā)布的傳感器數(shù)據(jù)或發(fā)送控制傳感器的命令給代理服務器。

4.2 ZIGBEE與MQTT協(xié)議之間的通信框架設計

(1)定義傳感器設備類

對于不同消息的格式,需要設計一個標準的格式,使得無論程序接收的是哪種消息格式,都可以統(tǒng)一轉換成這個標準的格式,從而實現(xiàn)不同消息格式的統(tǒng)一化,方便消息格式的互相轉換。經過對現(xiàn)有傳感器產品特性的歸納、總結定義了如下數(shù)據(jù)類和傳感器設備類,描述如下:

上述傳感器設備類描述了傳感器設備的類型、所在的區(qū)域地址、區(qū)域號、設備號,同時可以根據(jù)傳感器的不同,無限擴充傳感器采集的數(shù)據(jù)的描述與數(shù)值。

(2)“簡單工廠模式”在傳感器與協(xié)議中的應用

對于不同傳感器或者協(xié)議,其實本質傳輸?shù)膬热莶]有太大的改變,都是傳感器相關的一系列屬性。這種情況下,如果在編程上一次編寫,然后根據(jù)不同的傳感器類型進行相應不同的實例化,而使得系統(tǒng)具有更好的擴展性與較小的代碼修改量,這是一個好的通信框架需要具備的。該模式能解決多種傳感器與多種協(xié)議的擴展性問題。在定義了一個統(tǒng)一的標準傳感器設備類后,可以根據(jù)不同的設備類型對其實例化。

(3)“觀察者模式”設計

當前大多數(shù)物聯(lián)網(wǎng)網(wǎng)關的通信都是輪詢指令加同步通信的方式,但這種方式的通信會使數(shù)據(jù)傳輸有較大的延遲和阻塞,且隨著設備數(shù)量的增加會更加明顯。為了解決此問題,本網(wǎng)關的通信處理主要采用異步通信方式與“觀察者模式”,這樣使得通信在接收時不用一直處在等待阻塞狀態(tài),可以更實時的獲取下位機傳感器數(shù)據(jù)。在.NET下,使用委托可以很好的實現(xiàn)。C#委托的使用,如圖2所示。

(4)數(shù)據(jù)傳送中消息格式的確定

在數(shù)據(jù)交換中,JSON數(shù)據(jù)格式是一種輕量級別的“key/value”數(shù)據(jù)交換格式。與XML相比,JSON在描述同一設備的情況下,具有更少的容量,使得在傳輸中能夠用較少的流量傳輸相同的數(shù)據(jù)。

(5)網(wǎng)關協(xié)議轉換的實現(xiàn)流程

首先是ZIGBEE無線網(wǎng)絡經過ZIGBEE協(xié)調器的串口與程序進行通信,程序的數(shù)據(jù)層在收到串口數(shù)據(jù)后,將數(shù)據(jù)傳遞給程序的邏輯層。邏輯層根據(jù)改寫MODBUS協(xié)議的自定義協(xié)議解析成框架內統(tǒng)一的傳感器設備對象實例,然后再經過JSON格式處理類將轉化來的傳感器設備實例打包成JSON格式字符串。再通過MQTT客戶端將數(shù)據(jù)發(fā)布到MQTT服務器,從而推送到訂閱者的客戶端上,最終實現(xiàn)不同通信方式、不同協(xié)議、不同數(shù)據(jù)格式的轉換與傳輸。

5 ZIGBEE與MQTT協(xié)議轉換的實現(xiàn)(Implementation

of ZIGBEE and MQTT protocol conversion)

在.NET開發(fā)中,M2Mqtt.Net是一個支持MQTT v3.1協(xié)議版本的MQTT客戶端開源庫。在通信框架核心網(wǎng)關程序中,使用M2Mqtt.Net開源庫,并根據(jù)需求對源代碼進行修改,來實現(xiàn)MQTT客戶端上數(shù)據(jù)的發(fā)布與訂閱。對于此類庫的操作,如圖3所示。

通過對MqttClient實例化并操作,可以實現(xiàn)客戶端與MQTT代理服務器的連接、發(fā)布、訂閱主題消息。發(fā)布消息是推送感知層數(shù)據(jù),訂閱消息則是接收應用層客戶端的控制指令。

C#中有相應的JSON打包與解析開源庫,如Newtonsoft.Json開源庫。使用Newtonsoft.Json可以對一個設備對象類直接打包成JSON格式的字符串,也可以將JSON格式的字符串中解析為一個設備對象類,簡化了開發(fā)過程、提高了開發(fā)效率。

這樣就基本實現(xiàn)了將感知層數(shù)據(jù)收集后轉換到JSON格式的MQTT協(xié)議中,進行推送,如圖4所示。

6 結論 (Conclusion)

物聯(lián)網(wǎng)網(wǎng)關的通信框架中協(xié)議的數(shù)據(jù)傳輸與不同的協(xié)議轉換是其關鍵所在。基于ZigBee/MQTT的物聯(lián)網(wǎng)網(wǎng)關協(xié)議框架能很好的解決了多協(xié)議、多消息格式的兼容與擴展的問題。通信方式不同,根據(jù)不同的通信類獲取數(shù)據(jù)后委托給邏輯處理層來處理,邏輯處理層把委托來的消息,通過不同的消息格式處理類來解析或打包消息,最終統(tǒng)一轉化為框架內標準的傳感器設備對象,用于后續(xù)的傳輸或界面顯示。

參考文獻(References)

[1] 張藝粟,等.物聯(lián)網(wǎng)ZigBee網(wǎng)關的設計與實現(xiàn)[J].計算機系統(tǒng)應用,2013,22(6):34-38.

[2] 牛作領.物聯(lián)網(wǎng)ZigBee網(wǎng)關的設計與實現(xiàn)方法[J].電子技術與軟件工程,2016(24):19-19.

[3] 岑榮瀅,等.面向智能家居應用的ZigBee-WiFi網(wǎng)關[J].計算機系統(tǒng)應用,2017,3:232-235.

[4] 程春潘,王可.基于Zigbee與TCP的物聯(lián)網(wǎng)網(wǎng)關設計[J].電子信息與計算機科學,2014,9:1.

[5] 杜崗,等.一種ZigBee-GPRS網(wǎng)關系統(tǒng)設計[J].自動化應用,2015,3:60-62.

[6] 林滸,張家銘,楊海波.基于MQTT協(xié)議的即時消息業(yè)務設計與實現(xiàn)[J].計算機系統(tǒng)應用,2017,3:219-224.

作者簡介:

譚方勇(1976-),男,碩士,副教授.研究領域:物聯(lián)網(wǎng)應用開發(fā).

王 昂(1993-),男,大專,工程師.研究領域:物聯(lián)網(wǎng)網(wǎng)關技術傳感器.

劉子寧(1995-),男,大專生.研究領域:移動應用開發(fā).

主站蜘蛛池模板: 国产一二三区视频| 久久99久久无码毛片一区二区| 内射人妻无码色AV天堂| 99在线视频精品| 2020极品精品国产| 黄色网站在线观看无码| 久久国产拍爱| 玖玖精品视频在线观看| 国产97视频在线| 国产精品自在在线午夜区app| 日韩在线观看网站| 国产成人久久777777| 国产美女无遮挡免费视频网站| 五月婷婷亚洲综合| 国产综合日韩另类一区二区| 色噜噜在线观看| 国产99精品久久| 欧美人与性动交a欧美精品| 日韩精品欧美国产在线| 国产呦精品一区二区三区网站| 国产在线观看一区精品| 全部免费毛片免费播放 | 麻豆精选在线| 欧美另类视频一区二区三区| 亚洲成a人片7777| 日本尹人综合香蕉在线观看| 亚洲日韩国产精品综合在线观看| a毛片基地免费大全| 18禁黄无遮挡免费动漫网站| 国产精品永久在线| 亚洲无码37.| 国产精品尤物铁牛tv| 欧美成人在线免费| 波多野结衣的av一区二区三区| 亚洲无码37.| 免费看一级毛片波多结衣| 亚洲精品国产自在现线最新| 色婷婷综合激情视频免费看| 午夜一区二区三区| 亚洲香蕉伊综合在人在线| 中文字幕啪啪| 免费观看国产小粉嫩喷水| 亚洲国产成人精品一二区| 久久99国产视频| 国产成人精品无码一区二| 99无码中文字幕视频| 亚洲黄色视频在线观看一区| 日韩第九页| 制服无码网站| 亚洲欧美日韩动漫| 国产乱子精品一区二区在线观看| 久久亚洲天堂| 欧美日韩精品一区二区视频| 青青国产视频| 亚洲国产精品国自产拍A| 福利视频一区| 成人精品午夜福利在线播放 | 青青青伊人色综合久久| 五月天久久综合| 亚洲综合在线最大成人| 亚洲午夜久久久精品电影院| 丰满人妻一区二区三区视频| 亚洲天堂网视频| 国产一区二区视频在线| 一区二区三区四区精品视频 | 国产迷奸在线看| 国产中文在线亚洲精品官网| 97精品久久久大香线焦| 国产高潮流白浆视频| 免费看美女自慰的网站| 亚洲国产av无码综合原创国产| 欧美日韩免费观看| 久久精品国产亚洲麻豆| 亚洲制服丝袜第一页| 亚洲色图综合在线| 国产欧美在线| 亚洲中文无码h在线观看| 五月婷婷伊人网| 国产免费一级精品视频 | 国产极品美女在线| 美女视频黄频a免费高清不卡| 国产黑丝一区|