天天看點

使用mqtt.fx對接百度天工物接入平台

1. 雲端準備工作

注冊并登入百度物接入平台,完成實名認證後方可使用。

目前百度天工物平台需要需要建立計費套餐才可使用,計費方式如下:

使用mqtt.fx對接百度天工物接入平台

免費量在學習階段足夠使用了,接下來講述如何開通。

使用mqtt.fx對接百度天工物接入平台

開通後界面如下:

使用mqtt.fx對接百度天工物接入平台

2. 雲端操作 — 建立雲端裝置

物接入服務需要先建立一個項目,每個項目會為您對應一個接入點(endpoint)。一個項目表示一個完整的物接入服務,通過項目可以将不同項目的裝置進行隔離和管理。

目前每個賬戶能建立 100 個項目,含 1 個裝置型項目和 99 個資料型項目。

點選建立項目:

使用mqtt.fx對接百度天工物接入平台

填寫資訊之後送出:

使用mqtt.fx對接百度天工物接入平台

建立項目後,在項目清單頁可以看到物接入預設提供的三類位址,選擇不同的位址,意味着可以通過不同的方式連接配接到百度智能雲物接入:

tcp://yourendpoint.mqtt.iot.gz.baiduce.com:1883,端口1883,不支援傳輸資料加密,可以通過MQTT.fx用戶端連接配接。

ssl://yourendpoint.mqtt.iot.gz.baiduce.com:1884,端口1884,支援SSL/TLS加密傳輸,MQTT.fx用戶端連接配接,參考配置MQTT用戶端。

wss://yourendpoint.mqtt.iot.gz.baidubce.com:8884,端口8884,支援 Websockets 方式連接配接,同樣包含 SSL 加密,參考Websockets Client。

使用mqtt.fx對接百度天工物接入平台
本實驗我們先使用第一個不加密方式連接配接測試,然後使用加密方式連接配接測試。

成功建立物接入項目(裝置型項目)後,點選項目名稱,進入配置物接入裝置型項目頁面,建立影子并擷取連接配接資訊。

點選項目名稱進入後,選擇「物模型」,進入物模型清單頁面,點選「建立物模型」。填寫名稱、屬性等資訊後,點選建立即可。

物模型用來表示一類(或同一型号的一批)裝置。可為裝置定義一套屬性模闆,在建立物影子時可以引用該模闆,實作業務的快速部署。

使用mqtt.fx對接百度天工物接入平台
使用mqtt.fx對接百度天工物接入平台

在左側選擇「物影子」,進入物影子清單頁面,點選「建立物影子」。輸入名稱,并選擇需要的物模型(這裡我們選擇了剛才建立的 SmartStreetLight ),點選建立即可完成,此時會彈出連接配接資訊:

物影子與真實裝置一一對應,是裝置在雲端展現。通過一組 json,反映裝置最後一次上報的狀态資訊。
使用mqtt.fx對接百度天工物接入平台
使用mqtt.fx對接百度天工物接入平台

物影子建立完成時,會彈出連接配接資訊,建議下載下傳儲存備用:

使用mqtt.fx對接百度天工物接入平台
使用mqtt.fx對接百度天工物接入平台

MQTT 消息的收發是基于主題的。

裝置型項目的主題是由系統定義的,可點選相應影子的卡片,通過以下頁面檢視,可根據實際需求選擇主題。每個消息均需為 json 格式。

使用mqtt.fx對接百度天工物接入平台

至此,即可通過擷取到的連接配接資訊,建立裝置與影子之間的連接配接,進行資料的上報與反控下發。

詳細的資訊可以參考官方文檔:物影子操作——使用開源MQTT用戶端。

3. 使用mqtt.fx作為用戶端測試不加密傳輸(mqtt)

配置 MQTT 的應用用戶端,可以快速驗證是否可以實作與物接入服務交流發送或者接收消息。

參考我的另一篇部落格,下載下傳并安裝MQTT.fx用戶端(1.7.1版本)。

mqtt.fx | 一款超級好用的Mqtt用戶端軟體(下載下傳、安裝、使用詳解)

注意: MQTT.fx 1.7.0版本對帶有 $ 的 主題(Topic)處理存在 bug,請避免使用此版本進行測試。

打開MQTT.fx,單擊“設定”圖示:

使用mqtt.fx對接百度天工物接入平台

單擊彈出的對話框的左下角的“添加”圖示,新增一個配置檔案,按照下面的設定填寫相應字段:

Profile Name:Test Baidu Tiangong

Broker Address:8sdmjix.mqtt.iot.bj.baidubce.com

Broker Port:1883

Client ID:随機生成(點選generate按鈕)

使用mqtt.fx對接百度天工物接入平台

選擇“User Credentials”頁籤,并且按以下字段填寫:

User Name: 8sdmjix/SmartStreetLight001

Password: xbcpwb5t9rqt9su5

使用mqtt.fx對接百度天工物接入平台

單擊“OK”按鈕儲存設定。

選擇“Test Baidu Tiangong”,然後單擊“Connect”按鈕,連接配接成功之後如圖:

使用mqtt.fx對接百度天工物接入平台

成功連接配接後,即可開始訂閱消息。

打開 Subscribe 标簽,填寫主題 topic,例如:

其中SmartStreetLight001自行替換為你測試時使用的物影子名稱

這兩個是分别被用作 update 被接受和拒絕時傳回資訊,選擇預設的QoS 0,點選“Subscribe”進行訂閱操作,訂閱成功之後如圖:

使用mqtt.fx對接百度天工物接入平台

打開Publish标簽,填寫主題topic,例如:

其中SmartStreetLight001自行替換為你測試時使用的物影子名稱。

消息品質選擇預設的QoS 0,輸入框中填寫以下有效資訊:

其中Lightness和led_status及其值,均可自行替換為建立物模型時所指定的屬性值,點選“Publish”進行釋出操作。
使用mqtt.fx對接百度天工物接入平台

釋出之後,因為我們訂閱了主題$baidu/iot/shadow/SmartStreetLight001/update,是以可以在訂閱一欄中看到伺服器釋出回來的資訊:

使用mqtt.fx對接百度天工物接入平台

釋出之後,在天工物接入平台也可以看到剛剛使用mqtt.fx用戶端釋出的消息:

使用mqtt.fx對接百度天工物接入平台

4. 使用mqtt.fx作為用戶端測試加密傳輸(mqtts)

使用mqtt.fx對接百度天工物接入平台

Broker Port:1884

使用mqtt.fx對接百度天工物接入平台
使用mqtt.fx對接百度天工物接入平台

選擇“SSL/TLS”頁籤,勾上“Enable SSL/TLS”,并選擇“CA signed server certificate”:

使用mqtt.fx對接百度天工物接入平台
使用mqtt.fx對接百度天工物接入平台
使用mqtt.fx對接百度天工物接入平台
使用mqtt.fx對接百度天工物接入平台
使用mqtt.fx對接百度天工物接入平台
使用mqtt.fx對接百度天工物接入平台