場景說明
本文以“智慧路燈”為示例,通過MQTT.fx的設(shè)備模擬器替代真實(shí)的設(shè)備,帶您快速體驗(yàn)設(shè)備上報(bào)數(shù)據(jù)到華為云 物聯(lián)網(wǎng)平臺 和遠(yuǎn)程下發(fā)控制命令到設(shè)備的全過程。
假設(shè):路燈設(shè)備上報(bào)一條光照強(qiáng)度(luminance)消息;支持遠(yuǎn)程控制路燈開關(guān)狀態(tài)的命令(switch),上報(bào)數(shù)據(jù)的格式為JSON格式。
前提條件
- 已注冊華為云官方帳號。未注冊可單擊注冊頁面完成注冊。
- 已完成實(shí)名制認(rèn)證。未完成可在華為云上單擊實(shí)名認(rèn)證完成認(rèn)證,否則無法使用設(shè)備接入功能。
- 已開通 設(shè)備接入服務(wù) 。未開通則訪問設(shè)備接入服務(wù),單擊“立即使用”后開通該服務(wù)。
業(yè)務(wù)流程
基于MQTT.fx體驗(yàn)平臺功能是指以在MQTT.fx模擬器為例,介紹數(shù)據(jù)上報(bào)、命令下發(fā)等業(yè)務(wù)。
- 創(chuàng)建產(chǎn)品。創(chuàng)建一個(gè)MQTT協(xié)議的產(chǎn)品。
- 開發(fā)產(chǎn)品模型。通過定義產(chǎn)品模型,在物聯(lián)網(wǎng)平臺構(gòu)建一款路燈設(shè)備,支持上報(bào)光照強(qiáng)度、下發(fā)路燈開關(guān)狀態(tài)命令。
- 注冊設(shè)備。注冊一個(gè)MQTT協(xié)議的設(shè)備,體驗(yàn)數(shù)據(jù)上報(bào)業(yè)務(wù)。
- 連接鑒權(quán)。使用MQTT.fx激活在物聯(lián)網(wǎng)平臺上注冊的設(shè)備。
- 數(shù)據(jù)上報(bào)。使用MQTT.fx向物聯(lián)網(wǎng)平臺上報(bào)數(shù)據(jù)。
- 命令下發(fā)。在管理控制臺下發(fā)命令,遠(yuǎn)程控制設(shè)備。
創(chuàng)建產(chǎn)品
- 登錄管理控制臺,單擊左側(cè)導(dǎo)航欄“產(chǎn)品”,單擊頁面右上角的“創(chuàng)建產(chǎn)品”。
- 根據(jù)頁面提示填寫參數(shù),然后單擊“確定”。
基本信息
所屬資源空間
平臺自動(dòng)將新創(chuàng)建的產(chǎn)品歸屬在默認(rèn)資源空間下。如需歸屬在其他資源空間下,下拉選擇所屬的資源空間。如無對應(yīng)的資源空間,請先創(chuàng)建資源空間。
產(chǎn)品名稱
自定義。支持字母、數(shù)字、下劃線(_)、連字符(-)的字符組合。
協(xié)議類型
選擇MQTT。
數(shù)據(jù)格式
選擇JSON。
廠商名稱
自定義。支持中英文字符、數(shù)字、下劃線(_)、連字符(-)的字符組合。
所屬行業(yè)
請根據(jù)產(chǎn)品模型的所屬行業(yè)填寫。
設(shè)備類型
使用平臺預(yù)置的產(chǎn)品模型,會(huì)自動(dòng)關(guān)聯(lián)設(shè)備類型,不需要再輸入設(shè)備類型。
高級配置
產(chǎn)品ID
定制ProductID,用于唯一標(biāo)識一個(gè)產(chǎn)品。如果攜帶此參數(shù),平臺將產(chǎn)品ID設(shè)置為該參數(shù)值;如果不攜帶此參數(shù),產(chǎn)品ID在物聯(lián)網(wǎng)平臺創(chuàng)建產(chǎn)品后由平臺分配獲得。
產(chǎn)品描述
產(chǎn)品描述。請根據(jù)實(shí)際情況填寫。
開發(fā)產(chǎn)品模型
- 找到創(chuàng)建產(chǎn)品章節(jié)新增的產(chǎn)品,單擊產(chǎn)品進(jìn)入產(chǎn)品界面。
- 在產(chǎn)品詳情“模型定義”頁面,單擊“自定義模型”,配置產(chǎn)品的服務(wù)。
- 新增服務(wù)類型“BasicData”。
- 在“添加服務(wù)”頁面,填寫“服務(wù)ID”、“服務(wù)類型”和“服務(wù)描述”,單擊“確定”。
- “服務(wù)ID”:BasicData
- “服務(wù)類型”:建議和服務(wù)ID保持一致
- “服務(wù)描述”:上報(bào)路燈數(shù)據(jù)
- 在“BasicData”服務(wù)列表右側(cè)區(qū)域,單擊“添加屬性”,填寫相關(guān)信息后,單擊“確定”。
- “屬性名稱”:luminance
- “屬性描述”:光照強(qiáng)度
- “數(shù)據(jù)類型”:int(整型)
- “訪問權(quán)限”:可讀、可寫
- “取值范圍”:0~65535
- “步長”:0
- “單位”:不填寫
- 在“添加服務(wù)”頁面,填寫“服務(wù)ID”、“服務(wù)類型”和“服務(wù)描述”,單擊“確定”。
- 新增服務(wù)類型“LightControl”。
- 在“模型定義”下單擊“添加服務(wù)”,填寫“服務(wù)ID”、“服務(wù)類型”和“服務(wù)描述”,單擊“確定”。
- “服務(wù)ID”:LightControl
- “服務(wù)類型”:建議和服務(wù)ID保持一致
- “服務(wù)描述”:路燈開關(guān)控制
- 在“LightControl”的下拉菜單下單擊“添加命令”,輸入命令名稱“Switch”。
- 在“新增命令”頁面,單擊“新增輸入?yún)?shù)”,填寫相關(guān)信息后,單擊“確定”。
- 在“模型定義”下單擊“添加服務(wù)”,填寫“服務(wù)ID”、“服務(wù)類型”和“服務(wù)描述”,單擊“確定”。
圖1 新增參數(shù)
注冊設(shè)備
- 在管理控制臺頁面,選擇左側(cè)導(dǎo)航欄“設(shè)備 > 所有設(shè)備”,單擊頁面右上角的“注冊設(shè)備”。
- 根據(jù)頁面提示信息填寫參數(shù),然后單擊“確定”。
參數(shù)名稱
說明
所屬資源空間
確保和步驟1創(chuàng)建的產(chǎn)品歸屬在同一個(gè)資源空間。
所屬產(chǎn)品
選擇步驟2創(chuàng)建的產(chǎn)品。
設(shè)備標(biāo)識碼
即nodeID,設(shè)備唯一物理標(biāo)識。可自定義,由英文字母和數(shù)字組成。
設(shè)備名稱
即device_name,可自定義,如streetlight。
設(shè)備認(rèn)證類型
選擇“密鑰”。
密鑰
此處不填寫,物聯(lián)網(wǎng)平臺會(huì)自動(dòng)生成。
- 成功注冊設(shè)備后,平臺會(huì)自動(dòng)生成設(shè)備ID和密鑰,請妥善保管好設(shè)備ID(deviceId)和密鑰(deviceSecret),用于設(shè)備接入。
連接鑒權(quán)
使用MQTT.fx工具激活在物聯(lián)網(wǎng)平臺上注冊的設(shè)備。
- 下載MQTT.fx(默認(rèn)是64位操作系統(tǒng),如果是32位操作系統(tǒng),單擊此處下載MQTT.fx),安裝MQTT.fx工具。
- 訪問這里,填寫注冊設(shè)備后生成的設(shè)備ID(DeviceId)和密鑰(DeviceSecret),生成連接信息(ClientId、Username、Password)。
使用生成工具生成的clientId格式,默認(rèn)不校驗(yàn)時(shí)間戳:設(shè)備ID_0_0_時(shí)間戳。
參數(shù)
必選/可選
類型
參數(shù)描述
ClientId
必選
String(256)
一機(jī)一密的設(shè)備clientId由4個(gè)部分組成:設(shè)備ID、設(shè)備身份標(biāo)識類型、密碼簽名類型、時(shí)間戳,通過下劃線“_”分隔。
- 設(shè)備ID:指設(shè)備在平臺成功注冊后生成的唯一設(shè)備標(biāo)識,通常由設(shè)備的產(chǎn)品ID和設(shè)備的NodeId通過分隔符“_”拼裝而來。
- 設(shè)備身份標(biāo)識類型:固定值為0,表示設(shè)備ID。
- 密碼簽名類型:長度1字節(jié),當(dāng)前支持2種類型:
- “0”代表HMACSHA256不校驗(yàn)時(shí)間戳。
- “1”代表HMACSHA256校驗(yàn)時(shí)間戳。
- 時(shí)間戳:為設(shè)備連接平臺時(shí)的UTC時(shí)間,格式為YYYYMMDDHH,如UTC 時(shí)間2018/7/24 17:56:20 則應(yīng)表示為2018072417。
Username
必選
String(256)
設(shè)備ID。
Password
必選
String(256)
加密后的設(shè)備密鑰。Password的值為使用“HMACSHA256”算法以時(shí)間戳為密鑰,對secret進(jìn)行加密后的值。
secret為注冊設(shè)備時(shí)平臺返回的secret。
- 當(dāng)采用“HMACSHA256”校驗(yàn)時(shí)間戳方式時(shí),會(huì)先校驗(yàn)消息時(shí)間戳與平臺時(shí)間是否一致,再判斷密碼是否正確。
- 當(dāng)采用“HMACSHA256”不校驗(yàn)時(shí)間戳方式時(shí),鑒權(quán)消息也必須帶時(shí)間戳,但不檢驗(yàn)時(shí)間是否準(zhǔn)確,僅判斷密碼是否正確。
- 設(shè)備通過MQTT協(xié)議的connect消息進(jìn)行鑒權(quán),對于構(gòu)造clientId的各個(gè)部分信息都必須包括進(jìn)去,平臺收到connect消息時(shí),會(huì)判斷設(shè)備的鑒權(quán)類型和密碼摘要算法。
- 打開MQTT.fx軟件,單擊設(shè)置圖標(biāo)。
- 參考下表配置鑒權(quán)參數(shù),然后單擊“Apply”。
參數(shù)名稱
說明
Broker Address
填寫從設(shè)備接入服務(wù)控制臺獲取的設(shè)備對接地址,此地址為域名信息。不能通過域名接入的設(shè)備,通過在cmd命令框中執(zhí)行“ping 域名”獲取IP地址,用IP地址接入平臺。由于IP地址不固定,您需要將IP地址做成可配置項(xiàng)。
Broker Port
默認(rèn)為1883。
Cliend ID
設(shè)備cliendID,請參考2中獲取。
User Name
即設(shè)備ID,請參考2中獲取。
Password
加密后的設(shè)備密鑰,請參考2中獲取。
- 單擊“Connect”,設(shè)備鑒權(quán)成功后,在物聯(lián)網(wǎng)平臺可以看到設(shè)備處于在線狀態(tài).
上報(bào)數(shù)據(jù)
使用MQTT.fx工具向物聯(lián)網(wǎng)平臺上報(bào)數(shù)據(jù)。
設(shè)備若通過MQTT通道上報(bào)數(shù)據(jù),需要發(fā)給指定的topic,上報(bào)消息的topic格式為:$oc/devices/{device_id}/sys/properties/report,其中deviceId的值,對一機(jī)一密設(shè)備,使用deviceId接入時(shí)填寫為設(shè)備注冊成功后返回的deviceId值。
- 填寫接口地址,此處以$oc/devices/{device_id}/sys/properties/report為例,如$oc/devices/5e4e2e92ac-164aefa8fouquan1/sys/properties/report。
- 在工具中間的空白處填寫上報(bào)的數(shù)據(jù)。請求參數(shù)ServiceProperty定義表:請求示例{ "services": [{ "service_id": "BasicData", "properties": { "luminance": 30 } } ] }
字段名
必選/可選
類型
參數(shù)描述
service_id
必選
String
設(shè)備服務(wù)的ID。
properties
必選
Object
設(shè)備服務(wù)的屬性列表,具體字段在設(shè)備關(guān)聯(lián)的產(chǎn)品模型中定義。
eventTime
可選
String
設(shè)備采集數(shù)據(jù)UTC時(shí)間(格式:yyyyMMddTHHmmssZ),如:20161219T114920Z。
設(shè)備上報(bào)數(shù)據(jù)不帶該參數(shù)或參數(shù)格式錯(cuò)誤時(shí),則數(shù)據(jù)上報(bào)時(shí)間以平臺時(shí)間為準(zhǔn)。
字段名
必選/可選
類型
參數(shù)描述
services
必選
List
設(shè)備服務(wù)數(shù)據(jù)列表(具體結(jié)構(gòu)參考下表ServiceProperty定義表)
- 單擊“Publish”,可以在物聯(lián)網(wǎng)平臺上查看設(shè)備是否成功上報(bào)數(shù)據(jù)。
命令下發(fā)
在管理控制臺下發(fā)命令,遠(yuǎn)程控制設(shè)備。
- 選擇“設(shè)備 > 所有設(shè)備”,找到注冊設(shè)備章節(jié)新建的設(shè)備,單擊“查看”進(jìn)入設(shè)備詳情頁面。
- 單擊“命令”頁簽,下發(fā)同步命令。
說明:MQTT協(xié)議設(shè)備僅支持同步命令下發(fā),NB-IoT設(shè)備僅支持異步命令下發(fā)。
- 您可以在MQTT.fx模擬器端查看到下發(fā)的命令。
說明:
- 由于MQTT.fx模擬器不支持查看下發(fā)的命令參數(shù)。具體下發(fā)內(nèi)容,請參考平臺命令下發(fā)。
- 界面提示命令下發(fā)失敗,是因?yàn)橄掳l(fā)的同步命令需要設(shè)備側(cè)及時(shí)回響應(yīng),響應(yīng)內(nèi)容請參考平臺命令下發(fā)。
進(jìn)階體驗(yàn)
按照本頁面的指導(dǎo),使用MQTT.fx模擬MQTT設(shè)備接入物聯(lián)網(wǎng)平臺后,您應(yīng)該已經(jīng)基本了解MQTT設(shè)備調(diào)用物聯(lián)網(wǎng)平臺開放的接口與平臺交互。
若您想要進(jìn)一步體驗(yàn)設(shè)備接入服務(wù),可參考開發(fā)指南開發(fā)真實(shí)應(yīng)用和真實(shí)設(shè)備,并接入物聯(lián)網(wǎng)平臺,體驗(yàn)更多功能。
- 物聯(lián)網(wǎng)平臺_邊緣設(shè)備接入_設(shè)備接入服務(wù)是什么意思
- IoT物聯(lián)網(wǎng)平臺開發(fā)需要具備什么技能_物聯(lián)網(wǎng)全棧云服務(wù)_物聯(lián)網(wǎng)安全如何保障
- 設(shè)備接入服務(wù)怎么用_華為云IoT設(shè)備接入_設(shè)備接入管理平臺
- 什么是華為云IoT_華為云物聯(lián)網(wǎng)云平臺的優(yōu)勢_物聯(lián)網(wǎng)平臺中心
- 物聯(lián)網(wǎng)是指什么_物聯(lián)網(wǎng)應(yīng)用平臺有哪些_物聯(lián)網(wǎng)卡購買平臺
最新文章
- 物聯(lián)網(wǎng)設(shè)備接入平臺_設(shè)備接入方案_終端設(shè)備接入
- 華為iot設(shè)備接入_物聯(lián)網(wǎng)設(shè)備接入云平臺_設(shè)備接入IOTDA
- 物聯(lián)網(wǎng)設(shè)備接入平臺_mqtt設(shè)備接入_Iot設(shè)備接入驗(yàn)證
- 華為云IoT設(shè)備接入使用教程
- 設(shè)備接入云平臺_設(shè)備接入mqtt_設(shè)備接入物聯(lián)網(wǎng)平臺
- 農(nóng)業(yè)物聯(lián)網(wǎng)_物聯(lián)網(wǎng)的特點(diǎn)_農(nóng)業(yè)物聯(lián)網(wǎng)云平臺