本文以智能燈和手機App連接為例,基于物聯網平臺的Topic消息路由服務,構建一個M2M設備間通信架構。

背景信息

智能燈控制流程如下圖:

流程圖

操作步驟

  1. 物聯網平臺控制臺,為智能燈設備創建產品和設備,定義功能等。具體操作,請參見創建產品批量創建設備單個添加物模型
    本示例中,智能燈的ProductKeyal123456789DeviceNamelight
  2. 添加具有訂閱權限的自定義Topic,用于接收手機App下發的控制指令。
    本示例添加Topic:/al123456789/light/user/set。具體操作,請參見自定義Topic
  3. 開發智能燈設備端,實現智能燈設備連接物聯網平臺,接收并執行指令等功能。
    本示例中,設備與物聯網平臺間的通信協議為MQTT。
    設備端SDK開發詳情,請參見設備接入Link SDK
  4. 物聯網平臺控制臺,為手機App注冊產品和設備。具體操作,請參見創建產品單個創建設備
    本示例中,手機App的ProductKeyal987654321DeviceNameControlApp
    為手機App創建產品和設備后,手機App可以作為一個設備連接到物聯網平臺。

    當手機App用戶注冊登錄時,您的服務器將App的設備信息發送給手機App,手機App即可作為一個設備連接到物聯網平臺。

  5. 使用服務器,調用云端接口CreateTopicRouteTable,創建App Topic與智能燈Topic之間的消息路由關系。
    • 將入參SrcTopic指定為App的Topic:/al987654321/ControlApp/user/update
    • 將入參DstTopics指定為智能燈的Topic:/al123456789/light/user/set
  6. 開發手機App。
    本示例中,手機App與物聯網平臺間的通信協議為HTTPS。

    手機App通過自定義Topic發送給智能燈的控制指令payload數據格式如下:

    {
        "TargetDevice": "light", 
        "Switch": "off", 
        "Timestamp": 1557750407000
    }
    設備端SDK開發詳情,請參見設備接入Link SDK
  7. 手機App用戶通過掃碼,將App與智能燈綁定。
    當App向服務器發送綁定設備的請求后,服務器將返回綁定成功的智能燈設備名稱deviceName。本示例中,智能燈設備名稱為light。
  8. 手機App用戶通過App發送控制指令。
    1. 手機App通過自定義Topic發送指令,如本示例中,App對應的發送指令Topic:/al987654321/ControlApp/user/update

      指令為JSON格式的數據。

    2. 物聯網平臺根據已定義的Topic路由關系,將指令信息路由到智能燈設備的Topic:/al123456789/light/user/set
    3. 智能燈設備接收到指令后,執行相關操作。
    說明 可配置手機App向服務器發送解綁請求,觸發服務器調用云端接口DeleteTopicRouteTable,刪除消息路由關系。路由關系刪除后,該手機App將不再控制該智能燈。