ThingsBoard IoT Gateway是开源解决方案,可将接入传统与第三方系统的设备与ThingsBoard集成。
ThingsBoard是用于数据采集、处理、可视化和设备管理的开源物联网平台。若是新用户,请参阅ThingsBoard是什么。
网关功能
ThingsBoard IoT Gateway提供以下功能:
- MQTT connector:控制、配置并采集接入外部MQTT broker的IoT设备数据。
- OPC-UA connector:采集接入OPC-UA服务器的IoT设备数据。
- Modbus connector:采集通过Modbus协议接入的IoT设备数据。
- BLE connector:采集通过Bluetooth Low Energy连接的IoT设备数据。
- Request connector:采集具备HTTP(S) API端点的IoT设备数据。
- CAN connector:采集通过CAN协议连接的IoT设备数据。
- BACnet connector:采集通过BACnet协议连接的IoT设备数据。
- ODBC connector:从ODBC数据库采集数据。
- REST connector:创建端点并采集来自HTTP请求的数据。
- SNMP connector:从SNMP管理器采集数据。
- FTP connector:从FTP服务器采集数据。
- Socket connector:采集通过TCP/UDP协议连接的IoT设备数据。
- XMPP connector:采集通过XMPP协议连接的IoT设备数据。
- OCPP connector:在充电桩与中央系统间通信。
- KNX connector:采集通过KNX协议连接的IoT设备数据。
- Custom connector:采集通过其它协议连接的IoT设备数据(可为所需协议自建connector)。
- 持久化采集数据,在网络或硬件故障时保证投递。
- 自动重连 ThingsBoard集群。 -简单且强大的数据与消息映射为统一格式。
架构
IoT Gateway是软件组件,设计为在支持Python 3.7+的Linux微机上运行。 ThingsBoard IoT Gateway主要组件如下。
Connector
该组件负责连接外部系统(如MQTT broker、OPC-UA服务器)或直接连接设备(如Modbus、BLE、CAN)。 连接后,connector通过轮询或订阅从这些系统获取数据,取决于协议能力。 例如,MQTT connector采用订阅模型,Modbus和CAN采用轮询。 Connector可直接或通过外部系统向设备推送更新。
可参考自定义指南定义自己的connector。
Converter
Converter负责将协议特定格式与ThingsBoard格式相互转换。 Converter由Connector调用,通常与Connector支持的协议绑定。 分为上行与下行converter。上行converter将协议数据转为ThingsBoard格式。 下行converter将ThingsBoard消息转为协议格式。
可参考自定义指南定义自己的converter。
Event Storage
Event Storage用于临时存储Connector产生的遥测等事件,直至投递到ThingsBoard。 支持两种实现:内存队列和持久化文件存储。 两种实现均可保障在网络中断时最终投递设备数据。 内存队列减少IO操作,但网关进程重启可能丢失消息。 持久化文件存储可survive进程重启,但需要对文件系统执行IO。
ThingsBoard Client
网关通过MQTT协议与ThingsBoard通信,使用此处描述的API。 ThingsBoard Client是独立线程,轮询Event Storage并在与ThingsBoard连接可用时投递消息。 支持连接监控、事件批处理优化以及多项其它功能。
Gateway Service
Gateway Service负责启动Connector、Event Storage与ThingsBoard Client。 该服务采集并定期向ThingsBoard上报消息量与设备连接统计。 会持久化已连接设备列表,以便在网关重启后重新订阅设备配置更新。