全部產品
Search
文件中心

IoT Platform:基於Topic訊息路由的M2M裝置間通訊

更新時間:Jun 30, 2024

本文以智能燈和手機App串連為例,基於物聯網平台的Topic訊息路由服務,構建一個M2M裝置間通訊架構。

背景資訊

智能燈控制流程程如下圖:

流程圖

操作步驟

  1. 物聯網平台控制台的對應執行個體下,為智能燈裝置建立產品和裝置,定義功能等。具體操作,請參見建立產品大量建立裝置單個添加物模型

    本樣本中,建立產品的產品名稱智能燈節點類型直連裝置,其他參數使用預設值。

    建立裝置的DeviceNamelight

    本樣本中,假設智能燈ProductKeyal123456789

    您自行添加物模型功能,例如添加物模型屬性開關(Switch),資料類型為布爾型(0是關,1是開),來控制智能燈開關。

  2. 添加具有訂閱許可權的自訂Topic,用於接收手機App下發的控制指令。

    本樣本添加Topic:/al123456789/light/user/set。具體操作,請參見使用自訂Topic通訊

  3. 開發智能燈裝置端,實現智能燈裝置串連物聯網平台,接收並執行指令等功能。

    本樣本中,裝置與物聯網平台間的通訊協定使用MQTT。智能燈裝置需要訂閱Topic:/al123456789/light/user/set,才能接收指令。接收指令後,需要開發執行指令的邏輯方法。

    裝置端SDK開發詳情,請參見裝置接入Link SDK

  4. 物聯網平台控制台的對應執行個體下,為手機App註冊產品和裝置。具體操作,請參見建立產品單個建立裝置

    本樣本中,建立產品的產品名稱手機App節點類型直連裝置,其他參數使用預設值。

    建立裝置的DeviceNameControlApp

    本樣本中,假設手機AppProductKeyal987654321

    為手機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": 0, 
        "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將不再控制該智能燈。