1. 雲端準備工作 —— 註冊並登錄OC平臺
註冊並登錄華爲OceanConnect平臺,需要使用華爲雲賬號登錄。
進入後界面如下:
2. 雲端操作 — 創建雲端設備
2.1. 創建項目
點擊創建項目:
填寫信息之後提交:
創建之後,系統會彈出分配的應用ID和祕鑰,應點擊下載,及時保存:
打開下載的文件,可以看到其中存放的ID和祕鑰信息:
接下來點擊進入項目,進入之後界面如下:
2.2. 創建產品
選擇創建自定義產品:
填寫產品信息:
創建產品成功之後如圖:
接下來我們需要創建該設備的屬性和控制命令。
2.2.1. 創建設備屬性
創建一個新的服務:
添加設備亮度值屬性Lightness:
編輯屬性值的詳細信息:
設置完成之後如下:
2.2.2. 創建下發命令
點擊添加命令:
然後添加下發命令的字段:
添加完成之後如圖:
一個完成的產品創建完成。
2.3. 創建設備
2.3.1. 創建虛擬設備測試數據流
在設備管理界面點擊創建虛擬設備:
創建成功,點擊調試產品:
調試界面如下:
在設備模擬中模擬上報數據:
設備數據上報成功,接下來測試命令下發:
2.3.2. 創建真實設備
創建設備之後查看對接信息:
3. 準備證書和連接信息生成工具
連接信息生成工具
下載連接信息生成工具,運行“MqttClientIdGenerator.jar”,填寫設備ID和密鑰,生成連接信息:
設備ID:在設備詳情中查看。
設備祕鑰:剛剛創建設備之後彈出的,如若未保存,無法查看,需要重新創建設備。
填寫完成之後點擊生成,即可看到信息:
這個信息後續使用,暫時先不要關閉軟件。
下載證書
下載證書。
其中使用的證書文件在Agent LiteJava
:
4. 使用mqtt.fx作爲客戶端測試加密傳輸(mqtts)
配置 MQTT 的應用客戶端,可以快速驗證是否可以實現與物接入服務交流發送或者接收消息。
4.0. 前提條件
參考我的另一篇博客,下載並安裝MQTT.fx客戶端(1.7.1版本)。
4.1. 添加配置文件
- 打開MQTT.fx,單擊“設置”圖標:
- 單擊彈出的對話框的左下角的“添加”圖標,新增一個配置文件,按照下面的設置填寫相應字段:
Profile Name
:Test Huawei OceanConnectBroker Address
:49.4.93.24Broker Port
:8883Client ID
:填寫小工具中生成的
- 選擇“User Credentials”選項卡,並且按以下字段填寫:
- User Name: 填寫小工具中生成的
- Password: 填寫小工具中生成的
- 選擇“SSL/TLS”選項卡,勾上“Enable SSL/TLS”,並選擇填寫之前我們下載的證書文件:
- 單擊“OK”按鈕保存設置。
4.2. 連接服務器
選擇“Test Huawei OceanConnect”,然後單擊“Connect”按鈕,連接成功之後如圖:
在雲平臺可以看到設備在線:
點擊調試設備進入調試:
調試界面如下:
4.3. 客戶端發佈消息——向平臺上報數據
打開Publish標籤,填寫主題topic,例如:
/huawei/v1/devices/2db7f786-53c1-4e28-9897-0cac80d178ed/data/json
- “codecMode”爲上報的編解碼類型,當用戶使用自身開發的編解碼插件時“codecMode”取值爲“binary”,沒有開發編解碼插件的“codecMode”取值爲“json”。
- “deviceId”的值,對一機一密設備,使用deviceId接入時填寫爲設備註冊成功後返回的“deviceId”值。
此處應該是:
/huawei/v1/devices/{deviceId}/data/{codecMode}
消息質量選擇默認的QoS 0,輸入框中填寫以下有效信息:
{
"msgType": "deviceReq",
"data": [{
"serviceId": "Lightness",
"serviceData": {
"Lightness": 123
}
}]
}
在平臺調試界面可以看到:
4.4. 客戶端訂閱消息——接收平臺下發指令
成功連接後,即可開始訂閱消息。
打開 Subscribe 標籤,填寫主題 topic,例如:
/huawei/v1/devices/{deviceId}/command/{codecMode}
這裏應該是:
/huawei/v1/devices/2db7f786-53c1-4e28-9897-0cac80d178ed/command/json
然後在平臺下發指令:
可以看到客戶端訂閱了,所以接收到該命令:
如有興趣,大家可以再測試命令響應字段,方法相同。