加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • MQTT簡介
    •  
    • MQTT.fx簡介
    •  
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

與OneNET服務(wù)器連接初體驗(yàn)

2021/09/29
581
閱讀需 10 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

要想與OneNET服務(wù)器相連,我們首先要了解一下什么是MQTT。

MQTT簡介

MQTT (Message Queuing Telemetry Transport ),是由IBM開發(fā)的輕量級消息傳輸協(xié)議,相比其他通訊協(xié)議,MQTT更適合物聯(lián)網(wǎng)場景。

在MQTT中,主要有三個(gè)角色:

角色 說明
發(fā)布者(Publish) 發(fā)送消息的一方,可以為一個(gè)應(yīng)用程序或一臺(tái)設(shè)備
代理(Broker)(服務(wù)器) 管理消息隊(duì)列的一方,位于消息發(fā)布者和訂閱者之間
訂閱者(Subscribe) 訂閱主題的一方,主要用于接收消息

 

 

MQTT傳輸?shù)南⒎譃椋褐黝}(Topic--區(qū)分不同消息)和負(fù)載(payload--消息內(nèi)容)兩部分。

MQTT協(xié)議采用發(fā)布/訂閱(Publish/Subscribe)模式,MQTT是應(yīng)用層的協(xié)議,其底層為TCP協(xié)議,TCP是傳輸層協(xié)議,云端(服務(wù)器端)通過主題(Topic)的方式管理各個(gè)物聯(lián)網(wǎng)設(shè)備的訂閱,實(shí)現(xiàn)將設(shè)備與設(shè)備之間消息進(jìn)行轉(zhuǎn)發(fā)。

MQTT協(xié)議適合場景:

  • 客戶端數(shù)量眾多每次消息傳輸?shù)臄?shù)據(jù)量不大協(xié)議占用資源小,能夠方便移植到單片機(jī)硬件上提供不同等級的“服務(wù)質(zhì)量--Qos”在低帶寬、高延遲、不可靠的網(wǎng)絡(luò)和資源有限的硬件環(huán)境下,進(jìn)行相對可靠的數(shù)據(jù)傳輸支持一對多的消息分發(fā)

一般物聯(lián)網(wǎng)平臺(tái)都是支持MQTT協(xié)議的,比如我們今天要接入的OneNET——中國移動(dòng)物聯(lián)網(wǎng)開放平臺(tái),也是支持MQTT協(xié)議的,具體支持的協(xié)議包括以下幾種:

我們今天就看看基于MQTT協(xié)議,如何能夠接入OneNET服務(wù)器。

 

MQTT.fx簡介

OneNET平臺(tái)相當(dāng)于MQTT中的Broker(服務(wù)器),要想實(shí)現(xiàn)與OneNET平臺(tái)連接,我們需要一個(gè)客戶端,而MQTT.fx是目前最常用的MQTT客戶端,我們使用的MQTT.fx的版本為1.7.1。

MQTT.fx軟件下載后,默認(rèn)安裝即可,安裝完畢的軟件界面如下:

 

創(chuàng)建產(chǎn)品和設(shè)備

注冊并登錄 OneNET 平臺(tái)的控制臺(tái),網(wǎng)址為:

https://open.iot.10086.cn/console/

在后臺(tái)的 文檔中心-->MQTT物聯(lián)網(wǎng)套件(新版)-->快速入門  版塊:

我們找到如下有用信息:

創(chuàng)建產(chǎn)品

參考官網(wǎng)文檔:

https://open.iot.10086.cn/doc/mqtt/book/get-start/product&device/createProduct.html

創(chuàng)建設(shè)備

參考官方文檔:

https://open.iot.10086.cn/doc/mqtt/book/get-start/product&device/createDevice.html

我們按照上面網(wǎng)文教程創(chuàng)建一個(gè)產(chǎn)品和一個(gè)測試設(shè)備:

 

服務(wù)器地址

OneNET物聯(lián)網(wǎng)平臺(tái)的地址和端口在下面鏈接獲?。?/p>

https://open.iot.10086.cn/doc/iot_platform/book/device-connect&manager/MQTT/mqtt-device-development.html

Broker Address:studio-mqtt.heclouds.com

Broker Port:1883

進(jìn)入與MQTT服務(wù)器連接配置界面之后,將地址和端口填寫到下圖所示位置:

其他部分配置信息說明:

Profile Name:可以隨便命名,我命名為:OneNET

Profile Type:保持默認(rèn)設(shè)置,MQTT Broker

Broker Address:MQTT服務(wù)器的地址,studio-mqtt.heclouds.com

Broker Port:服務(wù)器端口,1883

Client ID:客戶端ID,此處填寫 設(shè)備名稱 :XiaoHaLED

General 標(biāo)簽下的內(nèi)容,MQTT Version后面的復(fù)選框取消,其他默認(rèn)即可。

 

填寫用戶憑證信息

在 User Credentials 標(biāo)簽頁下面,需要我們填寫 User Name 和 Password 。

其中,User Name 就是產(chǎn)品管理頁面的產(chǎn)品ID ,對應(yīng)我創(chuàng)建的測試設(shè)備就是:hg8zt6E3LP

Password 處應(yīng)該填寫鑒權(quán)信息,此處即為一個(gè)token。

生成token

token的介紹

token算法詳解參考下面鏈接:

https://open.iot.10086.cn/doc/mqtt/book/manual/auth/token.html

token生成工具

OneNET提供了token生成的上位機(jī)軟件,可以通過下面鏈接下載并使用:

https://open.iot.10086.cn/doc/mqtt/book/manual/auth/tool.html

其中:res:products/{pid}/devices/{device_name}

上面是 res 的值由產(chǎn)品ID和設(shè)備名稱組成,通過上面我們知道,我們創(chuàng)建的測試設(shè)備的產(chǎn)品ID值為:hg8zt6E3LP ,設(shè)備名稱 的值為:XiaoHaLED 。

所以,最終res 的值為:products/hg8zt6E3LP/devices/XiaoHaLED

et:expiration time ,表示過期時(shí)間,此時(shí)間要求大于當(dāng)前時(shí)間,為了避免太快過期,可以適當(dāng)加大此參數(shù)數(shù)值,此處為unix時(shí)間。

簡單來說,unix時(shí)間戳就是從1970年1月1日(UTC/GMT的午夜)開始所經(jīng)過的秒數(shù)。

除了使用程序獲得當(dāng)前unix時(shí)間以外,還可以使用網(wǎng)上現(xiàn)成的 unix時(shí)間戳 << >> 北京時(shí)間 轉(zhuǎn)換的在線工具完成,比如下面的網(wǎng)址即可:

https://tool.lu/timestamp/

2021-12-27 16:38:28 <==> et:1640594308

key:這個(gè)參數(shù)就是 產(chǎn)品key 這個(gè)參數(shù),所在位置如下圖所示:

其他參數(shù)默認(rèn)即可。

將上面得到的 res 、 et 、 key 代入 token計(jì)算工具 軟件中,點(diǎn)擊 Generate 按鈕:

 

生成的字符串即為 User Credentials 標(biāo)簽頁下面, Password 文本框內(nèi)需要填寫的內(nèi)容,即填寫如下內(nèi)容:

version=2018-10-31&res=products%2Fhg8zt6E3LP%2Fdevices%2FXiaoHaLED&et=1640594308&method=md5&sign=yBG2008b6SMfxiW6q6KmnA%3D%3D

其他參數(shù)默認(rèn)即可,然后點(diǎn)擊 OK 退出配置頁面。

連接OneNET服務(wù)器

下圖下拉列表中,選擇剛剛創(chuàng)建的Profile Name:OneNET,點(diǎn)擊“Connect”按鈕,成功連接至OneNET平臺(tái)服務(wù)器,效果如下圖所示:

 

連接之后,我們查看OneNET控制臺(tái),在 設(shè)備接入與管理-->設(shè)備管理 頁面,可以看到 XiaoHaLED 設(shè)備已經(jīng)處于在線狀態(tài)。

好了,我們已經(jīng)順利連接上了OneNET服務(wù)器,今天的分享就到這里,用這個(gè) MQTT.fx 軟件也可以連接其他物聯(lián)網(wǎng)平臺(tái),比如阿里云物聯(lián)網(wǎng)平臺(tái),感興趣的可以自己試試哈~

 

 

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

公眾號(hào)『嵌入式從0到1』,號(hào)主:程序員小哈,是一個(gè)軟硬件全棧開發(fā)工程師(12年工作經(jīng)驗(yàn)的老司機(jī)),電子發(fā)燒友論壇鴻蒙版塊版主,公眾號(hào)內(nèi)容專注于嵌入式學(xué)習(xí)。堅(jiān)持原創(chuàng),寫有圖、有視頻的保姆級教程文章,篇篇有干貨。做一個(gè)講清楚,說明白,大家學(xué)得會(huì)的交流平臺(tái)。