ThingsBoard 的 IoT 网关 是一个开源的解决方案,允许您将旧系统或第三方系统中的 IoT 设备与 ThingsBoard 集成在一起。
ThingsBoard 是一个开源的物联网平台,可以快速开发、管理和扩展 IoT 应用。如果您是新的平台用户,点击什么是 ThingsBoard 学习了解。
image.png

网关功能

ThingsBoard IoT网关提供以下功能:

  • MQTT连接器,用于控制,配置和收集来自使用现有协议连接到外部MQTT代理的IoT设备的数据。
  • OPC-UA连接器可从连接到OPC-UA服务器的IoT设备收集数据。
  • Modbus连接器可从通过Modbus协议连接的IoT设备收集数据。
  • BLE连接器可从使用低功耗蓝牙连接的IoT设备收集数据。
  • 请求连接器以从具有HTTP(S)API端点的IoT设备收集数据。
  • CAN连接器,用于收集通过CAN协议连接的IoT设备的数据。
  • BACnet连接器,用于从通过BACnet协议连接的IoT设备收集数据。
  • ODBC连接器,用于从ODBC数据库收集数据。
  • REST连接器,用于创建端点并从传入的HTTP请求中收集数据。
  • SNMP连接器,用于从SNMP管理收集数据。
  • 自定义连接器,用于从通过不同协议连接的IoT设备收集数据。(您可以为require协议创建自己的连接器)。
  • 在网络或硬件出现故障的情况下,所收集数据的持久性可确保数据传输。
  • 自动重新连接到ThingsBoard集群。
  • 简单但功能强大的传入数据和消息映射为统一格式

架构

ThingsBoard网关是什么? - 图2
物联网网关是建立在Java之上的,但是,它不同于利用 OSGi 技术的类似项目。这个想法与微服务体系结构非常相似。还有其他编程语言(C、c++、Python、Javascript、Go..)可能更适合开发针对 IoT 设备的应用程序。特别是,我们在讨论用于处理串口、GPIO、I2C的语言接口和现有库的时候,每天都在发布新的模块和传感器。
网关提供了简单的集成接口,并封装了与 ThingsBoard 相关的常见任务:设备支持、本地数据存储于传输,于其他系统之间的消息转换/适配。作为一个应用开发者,你需要能够选择Python、C/C++和其他语言通过外部的 MQTT 代理或 OPC-UA 服务器来连接到 ThingsBoard 网关。支持其他协议的 IoT 设备可以通过实现自定义扩展连接到网关。

IoT Gateway是一个软件组件,旨在在支持Python 3.5+的基于Linux的微型计算机上运行。下面列出了ThingsBoard IoT Gateway的主要组件。

连接器
该组件的目的是连接到外部系统(例如MQTT代理或OPC-UA服务器)或直接连接到设备(例如Modbus,BLE或CAN)。连接后,连接器要么从那些系统中轮询数据,要么订阅更新。轮询与订阅取决于协议功能。例如,我们对MQTT连接器使用订阅模型,对Modbus和CAN使用轮询模型。连接器还能够直接或通过外部系统将更新推送到设备。
使用自定义指南可以定义自己的连接器。
转换器
转换器负责将数据从协议特定格式转换为ThingsBoard格式。转换器由连接器调用。转换器通常特定于连接器支持的协议。有上行链路和下行链路转换器。上行转换器用于将数据从特定协议转换为ThingsBoard格式。下行转换器用于将消息从ThingsBoard转换为特定的协议格式。
可以使用定制指南定义自己的转换器。
事件储存
事件存储用于临时存储连接器产生的遥测和其他事件,直到将它们传送到ThingsBoard。事件存储支持两种实现:内存队列和持久性文件存储。两种实现方式都可以确保在网络中断的情况下最终交付设备数据。内存中队列可最大程度地减少IO操作,但在网关进程重新启动的情况下可能会丢失消息。
持久性文件存储在重新启动过程后仍然有效,但是对文件系统执行IO操作。
ThingsBoard客户端
网关通过MQTT协议与ThingsBoard通信,并使用此处描述的API 。ThingsBoard Client是一个单独的线程,该线程轮询事件存储并在与ThingsBoard的连接处于活动状态后传递消息。
ThingsBoard Client支持监视连接性,批处理事件以提高性能和许多其他功能。
网关服务
网关服务负责连接器,事件存储和ThingsBoard客户端的引导。该服务收集并定期向ThingsBoard报告有关传入消息和连接的设备的统计信息。网关服务会保留已连接设备的列表,以便在网关重新启动的情况下能够重新订阅设备配置更新。

项目路线图

最初发布网关的目的是为将 ThingsBoard 数据收集 的功能覆盖到支持 OPC-UA 和 MQTT 的设备。ThingsBoard 网关的 1.2 版本实现了通过网关,在 ThingsBoard 平台上可以配置和控制支持MQTT的设备的能力。
网关项目目前处于活跃开发阶段,在下一个版本中您应该会看到以下主要功能:

  • Sigfox 和 OPC-UA 扩展实现:
    • 能够使用 ThingsBoard 的 属性特性来配置基于网关连接的物联网设备。
    • 能够使用ThingsBoard的 RPC特性控制基于网关连接的物联网设备。
  • 通过 ThingsBoard 仪表盘可以远程配置网关。
  • 实现基于 ThingsBoard 集群信息的客户端负载平衡。
  • 能够在网关的网页界面上查看收集的设备数据。
  • 可配置的边缘计算。

下一步

入门指南