全部產品
Search
文件中心

IoT Platform:物聯網平台通訊方式概述

更新時間:Jun 30, 2024

您的裝置和伺服器接入阿里雲物聯網平台後,可通過物聯網平台實現裝置與伺服器、裝置與裝置間的通訊。本文介紹裝置、物聯網平台、伺服器間通訊的方法。

背景資訊

裝置通過訊息Topic實現訊息的發送和接收,訊息通訊Topic的定義、使用和分類說明,請參見什麼是Topic

裝置上報的未經處理資料格式,需您在裝置端完成開發。阿里雲物聯網平台提供的裝置端Link SDK,可實現裝置快速接入物聯網平台並進行通訊。

例如使用C語言的Link SDK,完成裝置端通訊能力開發,請參見MQTT接入樣本自訂Topic通訊樣本物模型Topic通訊樣本

裝置端Link SDK還支援Java、Python、Node.js、Android、iOS語言或平台的開發,更多功能,請參見功能特性

裝置原始Topic訊息流程轉到伺服器,會經過物聯網平台規則引擎轉化資料格式。通訊Topic、訊息類型及資料格式說明,請參見資料格式

裝置發送資料到物聯網平台

裝置接入物聯網平台後,便可與物聯網平台進行通訊。裝置可通過以下方式發送資料到物聯網平台:

  • 使用自訂Topic發送自訂格式的資料。

    1. 在物聯網平台上,為產品自訂操作許可權發布的Topic類。產品的Topic類會自動對應到產品下的裝置中。

      自訂Topic類的兩種方式:

    2. 開發裝置端時,配置裝置將訊息發送到自訂Topic中。

      需在裝置端配置發送訊息的自訂Topic和訊息格式。使用阿里雲提供的Link SDK配置樣本,請參見裝置發送訊息給伺服器

  • 使用物模型功能相關Topic,發送標準化的物模型資料。

    物模型功能說明,請參見什麼是物模型

    裝置可主動上報屬性和事件。實現過程:

    1. 單個添加物模型:根據您的裝置業務情況,在物聯網平台控制台定義物模型。

    2. 開發裝置端:根據已定義的物模型,配置裝置上報屬性和事件數目據。

      裝置上報屬性和事件的標準資料格式,請參見裝置上報屬性裝置上報事件

      物聯網平台已定義物模型功能相關的Topic,直接使用即可。使用阿里雲提供的Link SDK開發樣本,請參見裝置端SDK上報屬性和事件

物聯網平台流轉資料到伺服器

物聯網平台提供規則引擎功能,可通過以下方式將裝置上報訊息、裝置狀態變化通知、裝置生命週期變更、物模型歷史資料上報、OTA升級狀態通知、網關發現子裝置上報、裝置拓撲關係變更等訊息流程轉到您的伺服器。訊息基於Topic傳遞資料,Topic中的資料格式請參見資料格式

Data to Server

  • 服務端訂閱:使用物聯網平台的服務端訂閱功能,訂閱一個或多個訊息類型。物聯網平台根據您設定的訂閱,將產品下所有裝置的該類型訊息流程轉至您的伺服器。支援以下兩種方式的服務端訂閱:

    • 使用AMQP SDK接收物聯網平台流轉的裝置訊息,請參見AMQP服務端訂閱及相關文檔。

    • 使用MNS SDK接收物聯網平台流轉到MNS隊列的裝置訊息,請參見MNS服務端訂閱

  • 雲產品流轉:使用規則引擎的雲產品流轉功能,通過資料流轉規則將指定裝置資料流轉到Message Service(MNS)、雲資料庫RDS、Table Store、Function Compute、時間序列資料庫TSDB、訊息佇列RocketMQ等雲產品中。具體操作,請參見雲產品流轉(舊版)雲產品流轉(新版)

雲產品流轉和服務端訂閱的區別,請參見資料流轉方案對比

伺服器遠端控制裝置

在伺服器上使用物聯網平台提供的雲端SDK,調用雲端API發送指令到裝置,實現遠端控制裝置。伺服器可通過以下方式發送指令到裝置。

Control Devices

  • 使用自訂Topic遠端控制裝置。

    • 非同步控制:調用Pub介面向裝置操作許可權為訂閱的自訂Topic發送自訂格式的訊息。裝置通過訂閱該Topic擷取訊息。

      說明

      不可以使用Pub介面發送物模型相關指令。

      使用自訂Topic遠端控制裝置實踐案例,請參見伺服器發送訊息給裝置

    • 同步控制:調用RRpc介面向指定裝置發送訊息,並同步返迴響應結果。

      MQTT同步通訊相關說明,請參見什麼是RRPC

      調用RRpc介面同步控制裝置實踐案例,請參見遠端控制樹莓派伺服器

    • 批量控制:調用PubBroadcast介面向產品下的全量線上裝置發布廣播訊息,實現批量控制裝置。

      批量控制裝置的詳細說明,請參見廣播通訊

  • 使用物模型遠端控制裝置。

    您可以在雲端通過發送物模型資料的特有介面,發布設定屬性值和調用服務指令。

    • 控制單個裝置。

      • 調用SetDeviceProperty向單個裝置發送設定屬性值的指令。

        雲端下發屬性設定命令和裝置收到並執行該命令是非同步。裝置是否成功設定屬性值,以裝置上報屬性為準。

      • 調用InvokeThingService向單個裝置發送調用服務的指令。

        服務是同步調用還是非同步呼叫,取決於您定義物模型服務時選擇的調用方式。具體內容,請參見自訂物模型服務

        如果該服務的調用方式是同步,調用InvokeThingService後,會同步返回結果。

        如果該服務的調用方式是非同步,則InvokeThingService不會同步返回結果。裝置響應結果,可以通過規則引擎擷取裝置的響應訊息。此時需設定裝置資料來源Topic為物模型資料上報,具體Topic為thing/downlink/reply/message。設定資料來源Topic,請參見設定資料流轉規則添加待流轉的資料來源

    • 批量控制裝置。

    使用物模型遠端控制裝置的實踐案例,請參見物模型通訊

裝置與裝置之間通訊

將兩端裝置接入物聯網平台,裝置間的串連和通訊請求都由物聯網平台承擔。您可以通過以下兩種方式實現裝置與裝置間通訊: