天天看點

幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

摘要:該場景主要描述的是裝置可以通過MQTT協定與物聯網平台進行互動,使用者可以在控制台産品詳情中自定義Topic,通過應用側接口或控制台建立資料轉發規則,把裝置上報的消息轉發給其他華為雲服務,供應用側使用者主動去消費。

場景簡介

已對接存量裝置的網關,不用遷移就可以實作對既有裝置和新裝置的相容控制。

該場景主要描述的是裝置可以通過MQTT協定與物聯網平台進行互動,使用者可以在控制台産品詳情中自定義Topic,通過應用側接口或控制台建立資料轉發規則,把裝置上報的消息轉發給其他華為雲服務,供應用側使用者主動去消費。

核心知識點:産品模型、消息上報、消息下發、MQTT協定、資料轉發規則、自定義Topic。

場景流程

幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

流程解釋:

1.建立網關産品:物聯網平台是以産品為粒度管理批量裝置,産品的建立與管理,可以通過平台提供的API接口或控制台

2.自定義topic:您可以在産品詳情中自定義topic,該産品下的所有裝置都将可以通過自定義topic,與平台間進行資料上下行互動。

3.注冊網關裝置:平台提供了應用側API接口可以之策裝置,也可以通過控制台注冊。注冊的裝置ID,是裝置側與平台互動的唯一辨別。這裡是用手機APP進行應用側接口調用注冊,就如前面概念串聯時提到的,應用側不局限于web服務端。

4.建立資料轉發規則:網關APP可以通過API接口建立規則,也可以通過控制台建立,指定過濾指定的屬性,給指定的通道轉發資料。

5.開通DIS通道/OBS服務:華為公有雲上有豐富的SaaS服務和PaaS服務,供您結合自己的業務需要進行組合使用。DIS服務提供高效采集、傳輸、分發能力,支援多種IoT協定,OBS服務提供海量、安全、高可靠、低成本的資料存儲能力,可以開通該兩個服務(或之一),通過IoTDA規則引擎,把網關的資料轉發給DIS/OBS。

6.裝置建鍊:MQTT裝置是指通過MQTT協定接入的裝置,不論是內建了華為IoT Device SDK,還是原生MQTT協定接入,隻要是json資料格式傳輸給平台,平台就無需使用編解碼插件。如果是二進制上傳,則需要先做編解碼插件的開發。MQTT是長連接配接,需要先建鍊才能進行資料傳輸,可以通過安全加密方式8883端口接入(推薦),也可以通過非安全加密方式1883端口接入。

7.訂閱消息下發Topic:MQTT裝置與平台建立長連接配接後,可以訂閱平台下行的topic,實作對平台下發消息的實時監聽。

8.網關消息上報:網關裝置把資料透傳到平台,由平台不做任何處理按規則轉發給DIS/OBS等存儲通道。消息跟屬性的主要差別是不用指定産品模型,平台對上報的消息不做處理(包括存儲和快照都沒有),僅做純資料轉發。

9.按規則資料轉發:平台收到裝置上報的屬性後,規則引擎會進行過濾(不論屬性還是消息,平台都會做規則過濾),把設定好的消息值轉發到指定的DIS通道,放到消息隊列中。或者轉發到OBS做對象存儲。

10.消費消息資料:由于平台對消息僅做透傳,而且APP無法配置訂閱通知的callback url,是以将裝置上報的資料通過消息轉儲到DIS/OBS,再由APP調用DIS/OBS的接口或內建SDK,消費裝置資料,進而實作對網關裝置上報消息的接收。

11.消息下發:網關APP通過應用側接口下發消息,平台同樣不會做任何的處理,消息下發是異步的,不用等到裝置側網關的響應。

12.消息下發:平台通過消息下發的下行topic把消息透傳給網關。這個需要前面網關裝置訂閱了消息下發的topic,否則接收不到平台下行消息。

最佳實踐

場景說明

自定義Topic功能用于MQTT協定裝置接入物聯網平台的場景,支援裝置消息上報、平台消息下發的Topic進行自定義。根據Topic不同,應用側可實作不同的業務邏輯處理,也适用于應用側和裝置側之間,裝置無法按照産品模型中定義的屬性或指令進行資料上報的場景。

本示例中,應用伺服器收到裝置上報Topic為室内溫度的資料,判斷是否開啟或關閉室内空調。

新增自定義Topic

具體操作細節請參考新增自定義Topic。

1、在産品詳情頁中,選擇“可選配置”頁簽,點選“新增自定義topic”按鈕。

幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關
幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

2、在彈出的頁面中,選擇裝置操作權限,填寫topic名稱。

幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關
幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

3、點選“确認”,完成新增自定義topic。

自定義Topic添加成功後,您可以在自定義topic清單執行修改和删除操作。

MQTT裝置消息上報

1、登入控制台,進入指定裝置詳情頁,啟動消息跟蹤。

幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

2、以MQTT.fx模拟器(請參考裝置快速接入)為例,模拟裝置上報自定義Topic消息。

使用IoT Device SDK或原生MQTT協定接入的裝置,需要在裝置程式中,設定裝置上報的自定義Topic名稱。

幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

3、登入控制台,在裝置詳情消息跟蹤頁面,檢視裝置上報的自定義Topic消息。

幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

4、應用側通過資料轉發的方式,擷取MQTT裝置上報的自定義Topic消息。更多資料轉發方式,請參考資料轉發。您也可以參考最佳實踐案例資料轉發到OBS長期存儲。

MQTT裝置消息下發

應用側收到MQTT裝置上報的自定義Topic消息後,需要進行相應的業務處理。本示例通過自定義Topic,下發開啟室内空調指令。

MQTT裝置需要先訂閱自定義Topic,才可以接收應用側下發的自定義Topic消息。

  • 確定建立自定義Topic時,裝置操作權限包含“訂閱”功能,詳細操作請參考裝置操作權限。
  • 使用IoT Device SDK或者原生MQTT協定接入的裝置,需要在裝置程式中,設定裝置訂閱的自定義Topic名稱。
幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

1、本文使用postman工具模拟應用側調用下發裝置消息接口,下發開啟室内空調的指令。

幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

2、調用查詢裝置消息接口,檢視下發指令是否成功。

幹貨分享丨玩轉物聯網IoTDA服務系列四-智能網關

至此,通過該文檔的學習,您應該對智能網關和自定義Topic場景有了一定的了解。接下來,可以在系列後續文章中,可以學習到更多的物聯網業務場景。

點選關注,第一時間了解華為雲新鮮技術~

繼續閱讀