之前一直想要使用mqtt協(xié)議模擬tcp協(xié)議的實時返回監(jiān)控參數(shù)的功能,經(jīng)過幾個月的摸索和試驗,終于將同步服務(wù)的開發(fā)摸透,僅僅看飛燕平臺的技術(shù)文檔是看不懂的,核心文檔鏈接如下:
站在用戶的角度思考問題,與客戶深入溝通,找到孝昌網(wǎng)站設(shè)計與孝昌網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、虛擬主機、企業(yè)郵箱。業(yè)務(wù)覆蓋孝昌地區(qū)。
1、什么是rrpc,同步服務(wù)如何使用rrpc實現(xiàn)實時返回的效果
;aly_as=odhFNfAc
阿里將同步服務(wù)使用rrpc
2、服務(wù)的數(shù)據(jù)格式
;aly_as=KNMEpUOP
看完文檔還有不懂的同學(xué)們,我給你準備了總結(jié):
1.RRPC有專用的topic,服務(wù)端的實現(xiàn),在物的模型服務(wù)中有invoke的請求方式和返回結(jié)果。
設(shè)備端根據(jù)文檔1中的訂閱topic與上報topic。上報的數(shù)據(jù)格式根據(jù)文檔2上報。
例子:
1.按照物的服務(wù)調(diào)用方法請求
2.設(shè)備端訂閱到服務(wù)的下發(fā),將msgid從topic上面截取下來此處為1214836938775870464
3.將msgid填充到上報topic結(jié)尾,數(shù)據(jù)格式注意param改為data,加上code,其余數(shù)據(jù)對照功能定義中的物模型
4.在調(diào)試窗口中找到服務(wù)調(diào)用菜單
顯示上報成功,注意服務(wù)的解析與屬性事件不一樣,通過通用打印只能打印出result ok,要進一步解析data出來再打印。
在本文中,我們將向您展示如何使用阿里云IoT平臺輕松將Android Things連接到您的物聯(lián)網(wǎng)(IoT)網(wǎng)絡(luò),我們將為該項目構(gòu)造一個示例:功能性甲醛和溫度傳感器。有些人可能不了解Android Things,簡單來說, 它就是讓開發(fā)者可以使用Android開發(fā)工具開發(fā)嵌入式設(shè)備 。
項目設(shè)備清單
NXP i.MX7D
設(shè)備接線圖
在設(shè)置硬件之后,是時候在阿里云IoT平臺上配置軟件了。
首先,導(dǎo)航到物聯(lián)網(wǎng)控制臺并激活阿里云IoT。創(chuàng)建高級產(chǎn)品并添加產(chǎn)品屬性定義:
Android Things設(shè)備開發(fā)
1、使用Android Studio創(chuàng)建Android Things項目,并授予網(wǎng)絡(luò)權(quán)限
2、將“eclipse.paho.mqtt”存儲庫添加到gradle
3、通過I2C讀取DHT12數(shù)據(jù)
4、通過UART獲取Ze08CH2O數(shù)據(jù)
5、創(chuàng)建阿里云IoT連接并報告數(shù)據(jù)
設(shè)備啟動后,您可以在阿里云IoT控制臺上查看設(shè)備的實時數(shù)據(jù), 設(shè)備管理 - 運行狀態(tài) 。
此項目在GIT上的地址是:,有興趣的朋友可以試試。
簡介: ?沒有設(shè)備,也能立刻體驗物聯(lián)網(wǎng)平臺的功能:使用物聯(lián)網(wǎng)平臺提供的“在線調(diào)試”功能,體驗虛擬設(shè)備上云設(shè)備數(shù)據(jù)存儲分析的功能。
產(chǎn)品推薦:阿里云物聯(lián)網(wǎng)開發(fā)者工具( IoT Studio ), 立刻免費體驗吧!
你可能遇到以下情況:
1、手頭沒有開發(fā)板
2、還不懂“物聯(lián)網(wǎng)云服務(wù)”怎么玩,想體驗一下
3、設(shè)備端開發(fā)跟物聯(lián)網(wǎng)云服務(wù)沒跑通,不確定哪個環(huán)節(jié)出現(xiàn)問題
這時,你就需要用到“在線調(diào)試”功能來虛擬一個設(shè)備,詳細步驟如下:
1、登陸物聯(lián)網(wǎng)平臺控制臺 , 現(xiàn)在登入
2、左側(cè)導(dǎo)航欄中,找到在線調(diào)試功能
3、開始設(shè)備上云開發(fā),這個環(huán)節(jié)分為3個步驟:創(chuàng)建產(chǎn)品→創(chuàng)建設(shè)備→激活設(shè)備(使用在線調(diào)試)
3.1 創(chuàng)建產(chǎn)品
下方的都是默認選項,不用改動,點擊完成,成功創(chuàng)建1個產(chǎn)品
3.2 產(chǎn)品和設(shè)備是包含與被包含的關(guān)系,我們創(chuàng)建成功產(chǎn)品后,即可在這個產(chǎn)品下添加設(shè)備
設(shè)備添加成功后,即彈出設(shè)備的三元組(設(shè)備證書),這個三元組是全網(wǎng)唯一的設(shè)備身份校驗要素
ProductKey:是物聯(lián)網(wǎng)平臺為產(chǎn)品頒發(fā)的全局唯一標識。該參數(shù)很重要,在設(shè)備認證以及通信中都會用到,因此需要您保管好。
DeviceName:在注冊設(shè)備時,自定義的或自動生成的設(shè)備名稱,具備產(chǎn)品維度內(nèi)的唯一性。該參數(shù)很重要,在設(shè)備認證以及通信中都會用到,因此需要您保管好。
DeviceSecret:物聯(lián)網(wǎng)平臺為設(shè)備頒發(fā)的設(shè)備密鑰,和DeviceName成對出現(xiàn)。該參數(shù)很重要,在設(shè)備認證時會用到,因此需要您保管好并且不能泄露。
考慮設(shè)備實際生產(chǎn)時對安全和成本的不同需求,我們可以選擇“一機一密”,或者“一型一密”。
一機一密:每個設(shè)備燒錄其唯一的設(shè)備證書(ProductKey、DeviceName和DeviceSecret)。當(dāng)設(shè)備與物聯(lián)網(wǎng)平臺建立連接時,物聯(lián)網(wǎng)平臺對其攜帶的設(shè)備證書信息進行認證。
一型一密:同一產(chǎn)品下所有設(shè)備可以燒錄相同產(chǎn)品證書(即ProductKey和ProductSecret)。設(shè)備發(fā)送激活請求時,物聯(lián)網(wǎng)平臺進行產(chǎn)品身份確認,認證通過,下發(fā)該設(shè)備對應(yīng)的DeviceSecret。
3.3 激活設(shè)備
我們發(fā)生幾個開燈關(guān)燈的指令,就可以看到設(shè)備上報的數(shù)據(jù):
4、使用物聯(lián)網(wǎng)平臺的“數(shù)據(jù)分析”功能存儲數(shù)據(jù)
點擊確定后,設(shè)備數(shù)據(jù)即成功存儲
再點擊“查看”,即可看到數(shù)據(jù)的存儲
查看表結(jié)構(gòu)
查看表數(shù)據(jù)
查詢表數(shù)據(jù)
了解更多數(shù)據(jù)分析能力:
1、阿里云物聯(lián)網(wǎng)平臺數(shù)據(jù)分析服務(wù)主頁
2、技術(shù)文檔
有很多通信模塊只有TCP功能,沒有MQTT功能,比如WIFI,W5500等模塊,還有一些NBIOT模塊,但是又想連接阿里云物聯(lián)網(wǎng)平臺,官方提供了操作系統(tǒng),需要自己移植,很麻煩,比較難看得懂。就在想有沒有一些簡單一定的方法。
心想MQTT是基于TCP的,能否使用TCP轉(zhuǎn)MQTT?因此就想使用TCP協(xié)議然后轉(zhuǎn)MQTT協(xié)議連接阿里云物聯(lián)網(wǎng)平臺,經(jīng)過試驗證明是可以的。
首先我們先分析一下如何登陸接入Onenet平臺。
先從它數(shù)據(jù)格式開始分析。首先我們要從后臺取出三個信息,我們以這個為例。
我們把產(chǎn)品ID,設(shè)備名稱,設(shè)備秘鑰,簡稱三要素 (具體是什么看你自己的設(shè)備)
其實阿里云物聯(lián)網(wǎng)平臺的MQTT協(xié)議用的就是標準的,不過它加入了自己的認證方式。
MQTT協(xié)議需要上傳四個參數(shù),報活時間,clientID,用戶名,密碼。
那么阿里云的就在clientID,用戶名,密碼做了手腳。
clientID比較長,按照一定的格式
用戶名:設(shè)備名和秘鑰組成
密碼:使用了加密串進行了加密,有sha1或者MD5加密方式
下面我們來介紹一下
MQTT接入都是發(fā)十六進制的數(shù)據(jù)。
么我們發(fā)送的時候就是這樣子的一串?dāng)?shù)據(jù)
0x74 0x00 0x04 0x4d 0x51 0x54 0x54 0x04 0xC0 0078 0033 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67
0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c 0009
0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34 0028 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36
十六進制解釋
數(shù)據(jù)長度:0x74
協(xié)議數(shù)據(jù)長度 0x00 0x04
協(xié)議類型: 0x4d 0x51 0x54 0x54
協(xié)議數(shù)據(jù): 0x04 0xC0
keepAlive數(shù)據(jù):0078
ClientID長度:0033
ClientID: 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67 0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c
用戶名:0009
用戶名: 0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34
密碼長度:0028
密碼: 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36復(fù)制代碼上面的就是連接服務(wù)器的連接包
下面呢,我們來做個發(fā)布包(上傳數(shù)據(jù)到服務(wù)器)
0x30 0x1D 0009 2f7379732f706f7374 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d
十六進制數(shù)據(jù)解釋
數(shù)據(jù)頭:0x30
數(shù)據(jù)長度:0x1D
TopicName數(shù)據(jù)長度:0009
TopicName數(shù)據(jù)內(nèi)容:2f7379732f706f7374
主體json數(shù)據(jù): 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d復(fù)制代碼以上就是連接阿里云的數(shù)據(jù)包格式及發(fā)布數(shù)據(jù)的格式,由于時間問題沒有做訂閱的數(shù)據(jù)包分析,下一次更新訂閱的內(nèi)容。