本文以智能燈和手機App連接為例,基于物聯網平臺的Topic消息路由服務,構建一個M2M設備間通信架構。
背景信息
智能燈控制流程如下圖:
操作步驟
- 在物聯網平臺控制臺,為智能燈設備創建產品和設備,定義功能等。具體操作,請參見創建產品、批量創建設備、單個添加物模型。
本示例中,智能燈的ProductKey為al123456789;DeviceName為light。
- 添加具有訂閱權限的自定義Topic,用于接收手機App下發的控制指令。
本示例添加Topic:
/al123456789/light/user/set
。具體操作,請參見
自定義Topic。
- 開發智能燈設備端,實現智能燈設備連接物聯網平臺,接收并執行指令等功能。
本示例中,設備與物聯網平臺間的通信協議為MQTT。
- 在物聯網平臺控制臺,為手機App注冊產品和設備。具體操作,請參見創建產品、單個創建設備。
本示例中,手機App的ProductKey為al987654321;DeviceName為ControlApp。
為手機App創建產品和設備后,手機App可以作為一個設備連接到物聯網平臺。
當手機App用戶注冊登錄時,您的服務器將App的設備信息發送給手機App,手機App即可作為一個設備連接到物聯網平臺。
- 使用服務器,調用云端接口CreateTopicRouteTable,創建App Topic與智能燈Topic之間的消息路由關系。
- 將入參SrcTopic指定為App的Topic:
/al987654321/ControlApp/user/update
。
- 將入參DstTopics指定為智能燈的Topic:
/al123456789/light/user/set
。
- 開發手機App。
本示例中,手機App與物聯網平臺間的通信協議為HTTPS。
手機App通過自定義Topic發送給智能燈的控制指令payload數據格式如下:
{
"TargetDevice": "light",
"Switch": "off",
"Timestamp": 1557750407000
}
- 手機App用戶通過掃碼,將App與智能燈綁定。
當App向服務器發送綁定設備的請求后,服務器將返回綁定成功的智能燈設備名稱deviceName。本示例中,智能燈設備名稱為light。
- 手機App用戶通過App發送控制指令。
- 手機App通過自定義Topic發送指令,如本示例中,App對應的發送指令Topic:
/al987654321/ControlApp/user/update
。
指令為JSON格式的數據。
- 物聯網平臺根據已定義的Topic路由關系,將指令信息路由到智能燈設備的Topic:
/al123456789/light/user/set
。
- 智能燈設備接收到指令后,執行相關操作。