大家好,超子又和大家見(jiàn)面了,超子我能力有限,技術(shù)不高,有什么錯(cuò)誤的地方,歡迎板磚。[tlink物聯(lián)網(wǎng)平臺(tái),MQTT協(xié)議上傳數(shù)據(jù),還可以方便的下載歷史數(shù)據(jù)]。今天我們測(cè)試一下Tlink物聯(lián)網(wǎng)平臺(tái)上傳數(shù)據(jù)的功能,也就是構(gòu)建一下發(fā)布數(shù)據(jù)的PUBLISH報(bào)文命令。Tlink物聯(lián)網(wǎng)平臺(tái)有一個(gè)很好用的功能就是可以方便的下載歷史數(shù)據(jù)。
首先我們登陸管理臺(tái),然后進(jìn)入設(shè)備管理界面,我們使用數(shù)據(jù)設(shè)備測(cè)試上傳數(shù)據(jù)的功能。我們點(diǎn)擊右側(cè)紅圈所示的數(shù)據(jù)設(shè)備的設(shè)置連接按鍵。
我們?cè)诮?shù)據(jù)設(shè)備時(shí),創(chuàng)建了兩個(gè)傳感器,一個(gè)溫度temp,一個(gè)濕度humi,我們要注意一點(diǎn),上傳數(shù)據(jù)的時(shí)候,我們是以紅圈中的讀寫(xiě)標(biāo)識(shí)為準(zhǔn)的,超子習(xí)慣將讀寫(xiě)標(biāo)識(shí)和傳感器名稱(chēng)設(shè)置成一樣的,方便觀察和識(shí)別。
讀寫(xiě)標(biāo)識(shí)是構(gòu)建數(shù)據(jù)的關(guān)鍵信息,假設(shè)我們需要上傳溫度數(shù)據(jù)22.2,濕度數(shù)據(jù)33.3,那么數(shù)據(jù)格式如下所示:
{"sensorDatas":[{"flag":"temp","value":22.2},{"flag":"humi","value":33.3}]}
注意里面的temp和humi對(duì)應(yīng)讀寫(xiě)標(biāo)識(shí),一定不能寫(xiě)錯(cuò)了,寫(xiě)錯(cuò)了數(shù)據(jù)就找不到家了。我們換成16進(jìn)制,簡(jiǎn)化書(shū)寫(xiě),去掉0x的結(jié)果如下,這個(gè)就是我們的等級(jí)0的PUBLISH報(bào)文的負(fù)載內(nèi)容:
7B 22 73 65 6E 73 6F 72 44 61 74 61 73 22 3A 5B 7B 22 66 6C 61 67 22 3A 22 74 65 6D 70 22 2C 22 76 61 6C 75 65 22 3A 32 32 2E 32 7D 2C 7B 22 66 6C 61 67 22 3A 22 68 75 6D 69 22 2C 22 76 61 6C 75 65 22 3A 33 33 2E 33 7D 5D 7D
然后我們?cè)賮?lái)看等級(jí)0的PUBLISH報(bào)文的固定報(bào)頭,是0x30 ??,??是剩余長(zhǎng)度,負(fù)載已經(jīng)構(gòu)建好了,等我們確定了可變報(bào)頭之后,再計(jì)算剩余長(zhǎng)度??勺儓?bào)頭是發(fā)布數(shù)據(jù)用的Topic,我們上傳后臺(tái)數(shù)據(jù)時(shí),需要使用的Topic是設(shè)備的序列號(hào),數(shù)據(jù)設(shè)備的序列號(hào)是42CR0B1Q5PQVM7FW,簡(jiǎn)化書(shū)寫(xiě)去掉0x的結(jié)果如下:
34 32 43 52 30 42 31 51 35 50 51 56 4D 37 46 57
總長(zhǎng)度的是16,然后不要忘了再加上2個(gè)字節(jié)表示長(zhǎng)度16,所以可變報(bào)頭最終結(jié)果如下,總共18個(gè)字節(jié):
00 10 34 32 43 52 30 42 31 51 35 50 51 56 4D 37 46 57
我們?cè)倏匆幌聞倓倶?gòu)建好的數(shù)據(jù),長(zhǎng)度總共是75個(gè)字節(jié),那么剩余長(zhǎng)度=可變+負(fù)載=18+75=93,一個(gè)字節(jié)就行,16進(jìn)制是0x5D,那么固定報(bào)頭就是0x30 0x5D,然后我們把固定,可變和負(fù)載,3個(gè)部分連接起來(lái),16進(jìn)制,簡(jiǎn)化書(shū)寫(xiě),去掉0x:
30 5D 00 10 34 32 43 52 30 42 31 51 35 50 51 56 4D 37 46 57 7B 22 73 65 6E 73 6F 72 44 61 74 61 73 22 3A 5B 7B 22 66 6C 61 67 22 3A 22 74 65 6D 70 22 2C 22 76 61 6C 75 65 22 3A 32 32 2E 32 7D 2C 7B 22 66 6C 61 67 22 3A 22 68 75 6D 69 22 2C 22 76 61 6C 75 65 22 3A 33 33 2E 33 7D 5D 7D
到此整個(gè)往Tlink物聯(lián)網(wǎng)平臺(tái)服務(wù)器上傳數(shù)據(jù)的,等級(jí)0的PUBLISH報(bào)文就構(gòu)建好了。我們需要用網(wǎng)絡(luò)調(diào)試助手軟件,實(shí)際測(cè)試一下,一定要注意先發(fā)CONNECT報(bào)文之后,再發(fā)我們的PUBLISH報(bào)文。
我們首先發(fā)送CONNECT報(bào)文,成功后,發(fā)送PUBLISH報(bào)文,因?yàn)槭堑燃?jí)0,所以服務(wù)器不會(huì)有什么回復(fù),我們需要到后臺(tái)看一下,數(shù)據(jù)有沒(méi)有上傳到后臺(tái)。
左側(cè)導(dǎo)航欄選擇監(jiān)控中心,我們可以看到22.2和33.3已經(jīng)顯示了,說(shuō)明我們上傳數(shù)據(jù)的等級(jí)0的PUBLISH報(bào)文正確,我們還可點(diǎn)擊左邊紅圈中的歷史查詢。
可以查詢歷史數(shù)據(jù),以及查看數(shù)據(jù)統(tǒng)計(jì)。
我們還可以選擇左側(cè)導(dǎo)航欄的數(shù)據(jù)下載,選擇需要下載數(shù)據(jù)的設(shè)備,然后再右側(cè)的紅圈中,設(shè)置需要下載的數(shù)據(jù)時(shí)間段和郵箱即可下載歷史數(shù)據(jù),非常的方便。