華為云計(jì)算 云知識(shí) MQTT原生協(xié)議設(shè)備模擬器接入華為云物聯(lián)網(wǎng)平臺(tái)
MQTT原生協(xié)議設(shè)備模擬器接入華為云物聯(lián)網(wǎng)平臺(tái)

本文檔以設(shè)備接入模擬器為例,介紹以MQTT原生協(xié)議接入華為云 物聯(lián)網(wǎng)平臺(tái) 。此模擬器是MQTT客戶端,可以快速驗(yàn)證是否可以與物聯(lián)網(wǎng)平臺(tái)服務(wù)交互發(fā)布或訂閱消息。

前提條件

獲取設(shè)備接入信息

在設(shè)備接入服務(wù)控制臺(tái)獲取設(shè)備接入平臺(tái)所需的信息。

  1. 訪問設(shè)備接入服務(wù),單擊“立即使用”進(jìn)入設(shè)備接入控制臺(tái)。
  2. 單擊“立即使用”進(jìn)入控制臺(tái),單擊左側(cè)導(dǎo)航欄的“總覽”,查看設(shè)備接入信息,記錄域名和端口。

     

    說明:

    針對(duì)不支持用域名接入的設(shè)備,通過在cmd命令框中執(zhí)行“ping 域名”獲取IP地址,用IP地址接入平臺(tái)。由于IP地址不固定,您需要將IP地址做成可配置項(xiàng)。

     

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

  1. 創(chuàng)建MQTT協(xié)議產(chǎn)品(如果已有MQTT協(xié)議產(chǎn)品,可跳過此步驟)。
  2. 登錄管理控制臺(tái),單擊左側(cè)導(dǎo)航欄“產(chǎn)品”,單擊頁面右上角的“創(chuàng)建產(chǎn)品”。
  3. 根據(jù)頁面提示填寫參數(shù),然后單擊“確定”。

     

    基本信息

    所屬資源空間

    平臺(tái)自動(dòng)將新創(chuàng)建的產(chǎn)品歸屬在默認(rèn)資源空間下。如需歸屬在其他資源空間下,下拉選擇所屬的資源空間。如無對(duì)應(yīng)的資源空間,請(qǐng)先創(chuàng)建資源空間

    產(chǎn)品名稱

    自定義。支持字母、數(shù)字、下劃線(_)、連字符(-)的字符組合。

    協(xié)議類型

    選擇MQTT。

    數(shù)據(jù)格式

    選擇JSON。

    廠商名稱

    自定義。支持中英文字符、數(shù)字、下劃線(_)、連字符(-)的字符組合。

    所屬行業(yè)

    請(qǐng)根據(jù)產(chǎn)品模型的所屬行業(yè)填寫。

    設(shè)備類型

    使用平臺(tái)預(yù)置的產(chǎn)品模型,會(huì)自動(dòng)關(guān)聯(lián)設(shè)備類型,不需要再輸入設(shè)備類型。

    高級(jí)配置

    產(chǎn)品ID

    定制ProductID,用于唯一標(biāo)識(shí)一個(gè)產(chǎn)品。如果攜帶此參數(shù),平臺(tái)將產(chǎn)品ID設(shè)置為該參數(shù)值;如果不攜帶此參數(shù),產(chǎn)品ID在物聯(lián)網(wǎng)平臺(tái)創(chuàng)建產(chǎn)品后由平臺(tái)分配獲得。

    產(chǎn)品描述

    產(chǎn)品描述。請(qǐng)根據(jù)實(shí)際情況填寫。

注冊(cè)設(shè)備

  1. 在管理控制臺(tái)頁面,選擇左側(cè)導(dǎo)航欄“設(shè)備 > 所有設(shè)備”,單擊頁面右上角的“注冊(cè)設(shè)備”。
  2. 根據(jù)頁面提示信息填寫參數(shù),然后單擊“確定”

     

    參數(shù)名稱

    說明

    所屬資源空間

    確保和這里創(chuàng)建的產(chǎn)品歸屬在同一個(gè)資源空間。

    所屬產(chǎn)品

    選擇這里創(chuàng)建的產(chǎn)品。

    設(shè)備標(biāo)識(shí)碼

    即nodeID,設(shè)備唯一物理標(biāo)識(shí)??勺远x,由英文字母和數(shù)字組成。

    設(shè)備名稱

    即device_name,可自定義。

    設(shè)備認(rèn)證類型

    選擇“密鑰”。

    密鑰

    設(shè)備密鑰,可自定義,不填寫物聯(lián)網(wǎng)平臺(tái)會(huì)自動(dòng)生成。

    圖2 注冊(cè)設(shè)備

    成功注冊(cè)設(shè)備后,平臺(tái)會(huì)自動(dòng)生成設(shè)備ID和密鑰,請(qǐng)妥善保管好設(shè)備ID(deviceId)和密鑰(deviceSecret),用于設(shè)備接入。

使用模擬器接入

  1. 下載模擬器(默認(rèn)是64位操作系統(tǒng)),并啟動(dòng)模擬器,如下圖:

     

     

  2. 界面展示

     

    1. 模擬器提供了界面顯示,填寫Server地址、設(shè)備ID、設(shè)備密鑰。請(qǐng)根據(jù)實(shí)際創(chuàng)建的設(shè)備信息填寫。
    2. 不同的Server地址SSL加密接入時(shí)要與對(duì)應(yīng)的證書文件匹配使用,證書獲取請(qǐng)參考獲取資源,需要替換certificate文件夾下的證書,如下圖:

    3. 用戶可以選擇設(shè)備側(cè)建鏈時(shí)是否為SSL加密,選擇Qos方式是0還是1,當(dāng)前不支持Qos2,可參考使用限制。

     

  3. 新建連接

     

    設(shè)備或網(wǎng)關(guān)在接入物聯(lián)網(wǎng)平臺(tái)時(shí)首先需要和平臺(tái)建立連接,從而將設(shè)備或網(wǎng)關(guān)與平臺(tái)進(jìn)行關(guān)聯(lián)。開發(fā)者通過傳入設(shè)備信息,將設(shè)備或網(wǎng)關(guān)連接到物聯(lián)網(wǎng)平臺(tái)。點(diǎn)擊新建連接按鈕,域名、設(shè)備ID和秘鑰正確的情況下,可以看到日志設(shè)備連接成功,可在平臺(tái)查看設(shè)備狀態(tài),如下圖:

  4. 訂閱Topic

     

    訂閱某topic的設(shè)備才能接收broker發(fā)布的關(guān)于該topic的消息,關(guān)于平臺(tái)預(yù)置topic可參考Topic定義。

    建鏈后,如果成功訂閱Topic,主界面日志欄顯示如下信息:

     

  5. 發(fā)布Topic

     

    發(fā)布Topic是指設(shè)備主動(dòng)向平臺(tái)上報(bào)自己的屬性或消息,詳細(xì)見設(shè)備屬性上報(bào)接口文檔。

    在模擬器中實(shí)現(xiàn)了上報(bào)Topic、屬性上報(bào)功能。

    發(fā)布Topic后,Demo界面顯示如下:

    設(shè)備上報(bào)屬性成功后可在“設(shè)備詳情”頁面查看到上報(bào)的屬性:

     

  6. 接收下發(fā)命令

     

    模擬器支持接收平臺(tái)下發(fā)命令的功能,在MQTT建鏈完成并成功訂閱Topic后,可以在控制臺(tái)設(shè)備詳情中對(duì)該設(shè)備進(jìn)行同步命令下發(fā)。下發(fā)成功后,在MQTT的回調(diào)函數(shù)中接收到平臺(tái)下發(fā)給設(shè)備的命令。

    例如下發(fā)參數(shù)名為smokeDetector: SILENCE,參數(shù)值為50的命令。

    同步命令下發(fā)成功后,Demo界面顯示如下: