物聯網那些事兒:IoT 網關開源實現

ThingsBoard IoT Gateway 位於終端設備和雲平臺之間,與不同類型的終端設備進行連接,並通過 MQTT 與雲平臺進行交互,屏蔽不同終端設備之間的差異。

本文將介紹 ThingsBoard IoT Gateway 基本使用。

一、MQTT Connector

Connector 是 ThingsBoard IoT Gateway 的關鍵部分,通過 MQTT Connector:

(1)將 MQTT 代理的數據推送到 IoT 雲平臺;

(2)ThingsBoard 發送的命令推送到 MQTT 代理。

1. Connector 配置文件

Connector configuration 是一個 JSON 文件,配置信息,詳情如下:

1. Broker 部分

2. mapping 部分

作用:接收通過 topicFilter 定義的主題,並分析該主題的每一消息,提取 device name、type、data (attributes and/or timeseries values)。

結構:“mapping” 部分定義一個數組,包含 topic 和 converter(轉換器 - 處理傳入消息)。

有關 Topic 的定義:

Json 轉換器是默認轉換器,在傳入消息中查找 deviceName、deviceType、attributes and telemetry。關鍵字段的含義:

3. ConnectRequests

ThingsBoard 可以向設備發送 RPC 命令和更新設備屬性的通知。ThingsBoard 在發送命令之前,需要知道目標設備是否已連接、使用的網關或會話。 這樣,設備不僅要連接到 MQTT 代理,還需要向 IoT 網關發送消息來通知設備已連接到了 MQTT 代理。

4. disconnectRequests

該配置項是可選的,用於從 MQTT 代理獲取有關斷開設備的信息。

5. attributeUpdates

該配置項是可選的,用於設備的遠程配置。

6. Server side RPC commands

IoT 平臺可以向終端設備發送 RPC 命令。

二、數據鏈路流分析

在有 IoT Gateway 的網絡中,一般要有 MQTT Broker; 環境搭建完全使用開源軟件。

分別在 TB IoT Gateway、TB 抓包分析。

可以得到如下結論:

MQTT 協議:從協議的角度來講,各網元所承擔的職責;

主題:IoT Gateway 是關鍵,訂閱 MQTT Broker 的 topic,在其內部經過 Converter、topic 的處理,向 TB 發送 topic,實現相應的業務。

參考鏈接:

https://thingsboard.io/docs/iot-gateway/config/mqtt/
https://thingsboard.io/docs/reference/mqtt-api/
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/BDizWsrbxg2LJS3i2M5lIg