日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 21ic電子網(wǎng)
[導(dǎo)讀]給大家分享一下連接OneNet的MQTT的方法(TCP層)。


出品?21ic論壇 小葉三千

網(wǎng)站:bbs.21ic.com

由于項(xiàng)目上用到了中移云OneNet平臺(tái),現(xiàn)在對(duì)OneNet也算是比較了解,給大家分享一下連接OneNet的MQTT的方法(TCP層)。

OneNet上有兩種MQTT協(xié)議,一種是多協(xié)議里面的MQTT(舊版),一種是MQTT物聯(lián)網(wǎng)套件(新版)?,F(xiàn)在平臺(tái)主推MQTT新版的,也就是MQTTS協(xié)議,協(xié)議層上面基本沒(méi)有變化,都是基于MQTT標(biāo)準(zhǔn)協(xié)議來(lái)的,但是一些參數(shù)有了很大的變化。

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

先說(shuō)一下MQTT的連接的協(xié)議,一個(gè)MQTT數(shù)據(jù)包由:固定頭、可變頭、消息體三部分構(gòu)成。固定報(bào)文頭就是固定的參數(shù),具體代表什么意思網(wǎng)上有很多,就不說(shuō)了。可變報(bào)文頭是一些協(xié)議版本啊,標(biāo)識(shí)等等,用不到的話一般也當(dāng)作固定的就行。消息體就是一個(gè)參數(shù)的長(zhǎng)度,后面再跟上參數(shù)的內(nèi)容,例如:02(消息體長(zhǎng)度) 31 31(2個(gè)長(zhǎng)度的消息體”1””1”)等等,后續(xù)有具體的內(nèi)容賦值。

? ?首先,先在OneNet上面創(chuàng)建MQTT物聯(lián)網(wǎng)套件產(chǎn)品,之后再產(chǎn)品里面添加一個(gè)設(shè)備。

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

? ??下載一個(gè)網(wǎng)絡(luò)調(diào)試助手,我用的是NetAssist.exe,附件有,大家可以去下載。選擇TCP客戶端,填寫好OneNet平臺(tái)MQTTS的IP地址:183.230.40.96,端口號(hào):1883 ?(此IP和端口號(hào)為不加密的,加密的為183.230.40.16 ?::8883)OK,接下來(lái)需要發(fā)連接的報(bào)文了。

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

平臺(tái)MQTTS規(guī)定的參數(shù)是有3個(gè),分別為設(shè)備名稱、產(chǎn)品ID、token密鑰,設(shè)備名稱和產(chǎn)品ID就是你創(chuàng)建產(chǎn)品的ID,和設(shè)備的名稱。Token的話就需要計(jì)算一下了,使用附件里的小程序。

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

小程序計(jì)算token,也需要3個(gè)參數(shù)。Res:設(shè)備名稱。Et:unix時(shí)間。Key:設(shè)備的access_key。

設(shè)備名稱就是填寫你對(duì)應(yīng)的設(shè)備名稱即可。Et大概講一下,unix時(shí)間,就是從1970年1月1日(UTC/GMT的午夜)開(kāi)始所經(jīng)過(guò)的秒數(shù),不考慮閏秒。

國(guó)際ISO 8601規(guī)定的。可以上網(wǎng)找一些在線轉(zhuǎn)化的工具。填寫你想鑒權(quán)的有效時(shí)間,比如現(xiàn)在是2021-09-28 21:37:25,你Et寫個(gè)2021-09-28 22:37:25,那么到22:37:25的時(shí)候就過(guò)期了,授權(quán)時(shí)間過(guò)了。

你想授權(quán)連接多長(zhǎng)時(shí)間就寫到多長(zhǎng)時(shí)間。不過(guò)要注意的一點(diǎn)是:32位的變量只能到2038年,64位的系統(tǒng)就不存在這個(gè)問(wèn)題了,需要注意一下。

計(jì)算unix時(shí)間網(wǎng)址:https://tool.chinaz.com/Tools/unixtime.aspx

???工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

Key:設(shè)備的access_key,在設(shè)備的詳情頁(yè)中找到。

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

將這3個(gè)參數(shù),對(duì)應(yīng)填寫到小程序里面,method選擇sha1(別的也行吧,沒(méi)試過(guò)),version:填寫2018-10-31(這個(gè)是固定的,不用管它),這樣點(diǎn)擊Generate就可以生成出來(lái)計(jì)算好的token了。

? res:products/378414/devices/0A(378417是產(chǎn)品ID,0A是設(shè)備的名稱)? Et:1625445017(2021-07-05 08:30:17 Unix時(shí)間)? key:L2o5bW8ic2A7ITBEVTJlW3RITiteSl1ic3h9Um8mbSE=(設(shè)備的Key)

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

將計(jì)算完成的Token復(fù)制保存,等下需要用到。

這個(gè)算法很簡(jiǎn)單,大家有興趣的可以按照官網(wǎng)的計(jì)算方法自己寫程序算一下。我這里使用C 已經(jīng)可以算出來(lái)了。Token計(jì)算完成后,就需要填寫MQTT報(bào)文了,我們這里使用TCP發(fā)送。打開(kāi)網(wǎng)絡(luò)助手軟件。

首先要先了解一下MQTT的報(bào)文結(jié)構(gòu):(詳細(xì)的解釋直接百度吧,這里只是我需要填寫的報(bào)文)

0x10??-固定

0x91??-整個(gè)報(bào)文的長(zhǎng)度145

0x01??-貌似是上一個(gè)值的進(jìn)位,0x91超過(guò)了7F,這里就是1,如果沒(méi)有就是0

0x00??-固定 “MQTT“的長(zhǎng)度低位

0x04??-固定 “MQTT“的長(zhǎng)度高位0x0004

0x4d??-’M’

0x51??-’Q’

0x54??-’T’

0x54??-’T’

0x04??-MQTT的版本04版本

0xC2??-QoS level 固定就行

0x00??-Keep Alive時(shí)間低位

0x3C??-Keep Alive時(shí)間高位0x003C??(60秒)

0x00??-Client ID Length低位

0x02 ?-Client ID Length高位 (設(shè)備的名稱長(zhǎng)度:2)

0x30??-Client ID:0

0x41 ?-Client ID:A (設(shè)備的名稱:0A,名稱根據(jù)自己的來(lái),對(duì)應(yīng)上面的長(zhǎng)度也要改)

0x00??-User Name Length低位

0x06 ?-User Name Length高位 (產(chǎn)品ID的長(zhǎng)度:6)

....... ?-User Name ?(產(chǎn)品ID:378414,也是根據(jù)自己的寫)

0x00??-Password Length低位

0x79 ?-Password Length高位 (Token的長(zhǎng)度:121,也是根據(jù)自己的長(zhǎng)度寫)

.......??-Password??(Token的具體十六進(jìn)制值填寫,根據(jù)自己的Token填寫)

到這里就報(bào)文就解析結(jié)束了,將上面的內(nèi)容整理成十六進(jìn)制的值,填寫到網(wǎng)絡(luò)助手中

之前遇到的一個(gè)問(wèn)題,就是報(bào)文中的第3位的“0x01”,我填寫的是0x00,但是有的Token就可以正常連接,有的Token卻不可以正常連接。后來(lái)找到問(wèn)題,Token有的很長(zhǎng),這一位就會(huì)變成0x01,應(yīng)該是長(zhǎng)度有進(jìn)位吧,大家一定要注意。

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

TCP建立連接后,輸入內(nèi)容,點(diǎn)擊發(fā)送,就可以看到有返回ACK的值是20 02 00 00,說(shuō)明發(fā)送的內(nèi)容正確,MQTT平臺(tái)返回接入成功,之后再看看我們OneNet平臺(tái)的設(shè)備,顯示“在線”,接入成功!

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

之后我們還可以使用Wireshark軟件,進(jìn)行原始報(bào)文的驗(yàn)證,或者監(jiān)控。打開(kāi)軟件,選擇監(jiān)控的網(wǎng)絡(luò)通道。

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

在這里輸入mqtt,進(jìn)行網(wǎng)絡(luò)報(bào)文過(guò)濾,這里只讓其顯示MQTT的報(bào)文。

工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

之后我們?cè)诰W(wǎng)絡(luò)助手里發(fā)送剛才的內(nèi)容,重新發(fā)一次,就可以看到Wireshark出現(xiàn)了MQTT的報(bào)文,分別是發(fā)送的和接收到的ACK。

??工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

雙擊點(diǎn)擊報(bào)文還可以具體分析報(bào)文的結(jié)構(gòu)和內(nèi)容。? ?工程師項(xiàng)目經(jīng)驗(yàn):網(wǎng)絡(luò)調(diào)試助手-TCP方式連接實(shí)踐

附件附上計(jì)算Token的小工具(點(diǎn)擊閱讀原文,進(jìn)入原貼下載),大家也可以根據(jù)官方的文檔的自己計(jì)算。

大家根據(jù)TCP報(bào)文格式的MQTT報(bào)文,可以自己開(kāi)發(fā)上位機(jī)去通信了。

21ic電子網(wǎng)

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉