技術(shù)報(bào)告基于ZigBee與MQTT的物聯(lián)網(wǎng)網(wǎng)關(guān)通信框架_第1頁
技術(shù)報(bào)告基于ZigBee與MQTT的物聯(lián)網(wǎng)網(wǎng)關(guān)通信框架_第2頁
技術(shù)報(bào)告基于ZigBee與MQTT的物聯(lián)網(wǎng)網(wǎng)關(guān)通信框架_第3頁
技術(shù)報(bào)告基于ZigBee與MQTT的物聯(lián)網(wǎng)網(wǎng)關(guān)通信框架_第4頁
技術(shù)報(bào)告基于ZigBee與MQTT的物聯(lián)網(wǎng)網(wǎng)關(guān)通信框架_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、計(jì)劃類別 項(xiàng)目編號(hào) 項(xiàng)目技術(shù)報(bào)告課題名稱 項(xiàng)目主持人 承擔(dān)單位 題目:基于ZigBee與MQTT的物聯(lián)網(wǎng)網(wǎng)關(guān)通信框架的設(shè)計(jì)與實(shí)現(xiàn)提出了一種基于ZigBee與MQTT的物聯(lián)網(wǎng)網(wǎng)關(guān)協(xié)議轉(zhuǎn)換的通信框架的設(shè)計(jì)方法,主要目的是解決多協(xié)議、多消息格式的兼容與擴(kuò)展的問題。用C#語言定義了符合框架的傳感器設(shè)備類和數(shù)據(jù)類,并利用“觀察者模式”和“簡單工廠模式”的設(shè)計(jì)思想,解決了多協(xié)議擴(kuò)展和通信效率的問題。關(guān)鍵詞:ZigBee;MQTT;物聯(lián)網(wǎng)網(wǎng)關(guān);通信框架;JSONAbstract:The paper proposes a design method of the communication framework

2、 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 ef

3、ficiency 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;JSON1 引言(Introduction)隨著“智慧地球”“感知中國”等一系列有關(guān)物聯(lián)網(wǎng)相關(guān)的口號(hào)的提出,物聯(lián)網(wǎng)的在各行各業(yè)應(yīng)用方案也在不斷地被提出并實(shí)施,這也使人們的生活變得更加便利和智能化1。此外,因

4、為無線傳感器結(jié)構(gòu)簡單、成本低廉的特點(diǎn),使得其在物聯(lián)網(wǎng)中成為一個(gè)部分,但因?yàn)槠涫褂玫腪igBee協(xié)議與現(xiàn)有的互聯(lián)網(wǎng)的TCP/IP協(xié)議是屬于兩種不同的異構(gòu)網(wǎng)絡(luò)的協(xié)議2,兩者之間如有實(shí)時(shí)、可靠的傳輸數(shù)據(jù),也成了無線傳感網(wǎng),乃至物聯(lián)網(wǎng)能否快速發(fā)展的一個(gè)重要因素。本文將MQTT協(xié)議融合到物聯(lián)網(wǎng)網(wǎng)關(guān)協(xié)議轉(zhuǎn)換的設(shè)計(jì)中,通過ZigBee協(xié)議與MQTT協(xié)議的對(duì)接,解決物聯(lián)網(wǎng)在不同網(wǎng)絡(luò)結(jié)構(gòu)、不同通信方式以及不同協(xié)議環(huán)境下的對(duì)接問題。2 相關(guān)研究背景(Related research background)物聯(lián)網(wǎng)網(wǎng)關(guān)技術(shù)是物聯(lián)網(wǎng)的關(guān)鍵技術(shù)之一,近年來國內(nèi)外的研究也較多,在感知層的ZigBee協(xié)議與上層協(xié)議的對(duì)接轉(zhuǎn)換

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

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

7、議雖然也是可以做到比較低的功耗,但其組網(wǎng)上要比ZigBee復(fù)雜麻煩得多,不適合物聯(lián)網(wǎng)下大量節(jié)點(diǎn)的組網(wǎng)與數(shù)據(jù)傳輸。MQTT(Message Queueing Telemetry Transport Protocol,消息隊(duì)列遙測(cè)傳輸協(xié)議),它是IBM公司所推出的一種基于輕量級(jí)代理的發(fā)布/訂閱模式的消息傳輸協(xié)議,運(yùn)行在TCP協(xié)議棧之上,能夠提供有序、可靠、雙向連接的網(wǎng)絡(luò)連接保證6。它具有開放、簡單和易于實(shí)現(xiàn)等特點(diǎn),因此更適合于嵌入式系統(tǒng)以及網(wǎng)絡(luò)帶寬低等資源受限的環(huán)境中應(yīng)用,此外,它也被廣泛用于遙感勘測(cè)、智能家居、能源監(jiān)測(cè)和醫(yī)療應(yīng)用程序等各個(gè)領(lǐng)域,對(duì)于M2M或物聯(lián)網(wǎng)網(wǎng)關(guān)通信來說卻是一個(gè)不錯(cuò)的選擇。4

8、 基于ZigBee與MQTT協(xié)議的物聯(lián)網(wǎng)網(wǎng)關(guān)總體設(shè)計(jì)(Design of internet of things gateway based onZigBee and MQTT protocol)4.1 網(wǎng)關(guān)系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)如圖1所示,基于ZigBee/MQTT物聯(lián)網(wǎng)網(wǎng)關(guān)位于網(wǎng)絡(luò)傳輸層,其嵌入式網(wǎng)關(guān)/PC網(wǎng)關(guān)應(yīng)用程序?qū)⒋趥鱽淼膫鞲衅鲾?shù)據(jù)轉(zhuǎn)換為符合JSON消息格式的數(shù)據(jù),通過MQTT的發(fā)布者角色發(fā)布到MQTT代理服務(wù)器。MQTT代理服務(wù)器一方面對(duì)數(shù)據(jù)進(jìn)行持久化操作,將數(shù)據(jù)以文檔形式存入MongoDB數(shù)據(jù)庫。另一方面則將網(wǎng)關(guān)應(yīng)用程序發(fā)布的數(shù)據(jù)消息推送到已經(jīng)訂閱的PC或移動(dòng)端的客戶端。而應(yīng)用層則是P

9、C或移動(dòng)端的客戶端接收服務(wù)器推送的下位機(jī)發(fā)布的傳感器數(shù)據(jù)或發(fā)送控制傳感器的命令給代理服務(wù)器。 4.2 ZIGBEE與MQTT協(xié)議之間的通信框架設(shè)計(jì)(1)定義傳感器設(shè)備類對(duì)于不同消息的格式,需要設(shè)計(jì)一個(gè)標(biāo)準(zhǔn)的格式,使得無論程序接收的是哪種消息格式,都可以統(tǒng)一轉(zhuǎn)換成這個(gè)標(biāo)準(zhǔn)的格式,從而實(shí)現(xiàn)不同消息格式的統(tǒng)一化,方便消息格式的互相轉(zhuǎn)換。經(jīng)過對(duì)現(xiàn)有傳感器產(chǎn)品特性的歸納、總結(jié)定義了如下數(shù)據(jù)類和傳感器設(shè)備類,描述如下:上述傳感器設(shè)備類描述了傳感器設(shè)備的類型、所在的區(qū)域地址、區(qū)域號(hào)、設(shè)備號(hào),同時(shí)可以根據(jù)傳感器的不同,無限擴(kuò)充傳感器采集的數(shù)據(jù)的描述與數(shù)值。(2)“簡單工廠模式”在傳感器與協(xié)議中的應(yīng)用對(duì)于不同傳

10、感器或者協(xié)議,其實(shí)本質(zhì)傳輸?shù)膬?nèi)容并沒有太大的改變,都是傳感器相關(guān)的一系列屬性。這種情況下,如果在編程上一次編寫,然后根據(jù)不同的傳感器類型進(jìn)行相應(yīng)不同的實(shí)例化,而使得系統(tǒng)具有更好的擴(kuò)展性與較小的代碼修改量,這是一個(gè)好的通信框架需要具備的。該模式能解決多種傳感器與多種協(xié)議的擴(kuò)展性問題。在定義了一個(gè)統(tǒng)一的標(biāo)準(zhǔn)傳感器設(shè)備類后,可以根據(jù)不同的設(shè)備類型對(duì)其實(shí)例化。(3)“觀察者模式”設(shè)計(jì)當(dāng)前大多數(shù)物聯(lián)網(wǎng)網(wǎng)關(guān)的通信都是輪詢指令加同步通信的方式,但這種方式的通信會(huì)使數(shù)據(jù)傳輸有較大的延遲和阻塞,且隨著設(shè)備數(shù)量的增加會(huì)更加明顯。為了解決此問題,本網(wǎng)關(guān)的通信處理主要采用異步通信方式與“觀察者模式”,這樣使得通信在接

11、收時(shí)不用一直處在等待阻塞狀態(tài),可以更實(shí)時(shí)的獲取下位機(jī)傳感器數(shù)據(jù)。在.NET下,使用委托可以很好的實(shí)現(xiàn)。C#委托的使用,如圖2所示。(4)數(shù)據(jù)傳送中消息格式的確定在數(shù)據(jù)交換中,JSON數(shù)據(jù)格式是一種輕量級(jí)別的“key/value”數(shù)據(jù)交換格式。與XML相比,JSON在描述同一設(shè)備的情況下,具有更少的容量,使得在傳輸中能夠用較少的流量傳輸相同的數(shù)據(jù)。(5)網(wǎng)關(guān)協(xié)議轉(zhuǎn)換的實(shí)現(xiàn)流程首先是ZIGBEE無線網(wǎng)絡(luò)經(jīng)過ZIGBEE協(xié)調(diào)器的串口與程序進(jìn)行通信,程序的數(shù)據(jù)層在收到串口數(shù)據(jù)后,將數(shù)據(jù)傳遞給程序的邏輯層。邏輯層根據(jù)改寫MODBUS協(xié)議的自定義協(xié)議解析成框架內(nèi)統(tǒng)一的傳感器設(shè)備對(duì)象實(shí)例,然后再經(jīng)過JSON

12、格式處理類將轉(zhuǎn)化來的傳感器設(shè)備實(shí)例打包成JSON格式字符串。再通過MQTT客戶端將數(shù)據(jù)發(fā)布到MQTT服務(wù)器,從而推送到訂閱者的客戶端上,最終實(shí)現(xiàn)不同通信方式、不同協(xié)議、不同數(shù)據(jù)格式的轉(zhuǎn)換與傳輸。5 ZIGBEE與MQTT協(xié)議轉(zhuǎn)換的實(shí)現(xiàn)(Implementationof ZIGBEE and MQTT protocol conversion)在.NET開發(fā)中,M2Mqtt.Net是一個(gè)支持MQTT v3.1協(xié)議版本的MQTT客戶端開源庫。在通信框架核心網(wǎng)關(guān)程序中,使用M2Mqtt.Net開源庫,并根據(jù)需求對(duì)源代碼進(jìn)行修改,來實(shí)現(xiàn)MQTT客戶端上數(shù)據(jù)的發(fā)布與訂閱。對(duì)于此類庫的操作,如圖3所示。通過

13、對(duì)MqttClient實(shí)例化并操作,可以實(shí)現(xiàn)客戶端與MQTT代理服務(wù)器的連接、發(fā)布、訂閱主題消息。發(fā)布消息是推送感知層數(shù)據(jù),訂閱消息則是接收應(yīng)用層客戶端的控制指令。C#中有相應(yīng)的JSON打包與解析開源庫,如Newtonsoft.Json開源庫。使用Newtonsoft.Json可以對(duì)一個(gè)設(shè)備對(duì)象類直接打包成JSON格式的字符串,也可以將JSON格式的字符串中解析為一個(gè)設(shè)備對(duì)象類,簡化了開發(fā)過程、提高了開發(fā)效率。這樣就基本實(shí)現(xiàn)了將感知層數(shù)據(jù)收集后轉(zhuǎn)換到JSON格式的MQTT協(xié)議中,進(jìn)行推送,如圖4所示。6 結(jié)論 (Conclusion)物聯(lián)網(wǎng)網(wǎng)關(guān)的通信框架中協(xié)議的數(shù)據(jù)傳輸與不同的協(xié)議轉(zhuǎn)換是其關(guān)鍵所在?;赯igBee/MQTT的物聯(lián)網(wǎng)網(wǎng)關(guān)協(xié)議框架能很好的解決了多協(xié)議、多消息格式的兼容與擴(kuò)展的問題。通信方式不同,根據(jù)不同的通信類獲取數(shù)據(jù)后委托給邏輯處理層來處理,邏輯處理層把委托來的消息,通過不同的消息格式處理類來解析或打包消息,最終統(tǒng)一轉(zhuǎn)化為框架內(nèi)標(biāo)準(zhǔn)的傳感器設(shè)備對(duì)象,用于后續(xù)的傳輸或界面顯示。參考文獻(xiàn)(References)1 張藝粟,等.物聯(lián)網(wǎng)ZigBee網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)J.計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(6):34-38.2 牛作領(lǐng).物聯(lián)網(wǎng)ZigBee網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)方法J.電子技術(shù)與軟件工程,2016(24

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論