thingsboard-gateway是一个采用python语言编写的开放源代码网关程序,用于将传统或第三方系统的设备与thingsboard平台连接。
支持 采集Modbus slaves、CAN、MQTT 、OPC-UA servers, Sigfox Backend。
除了具备普通 网关外,还具备可配置的边缘能力,在一些依赖边缘控制和数据实时采集的物联网场景中应用广泛,例如:
-  
农业大棚
 -  
燃气监测
 -  
能耗监测
 -  
市政交通
 -  
智能风机
 -  
污水处理
 -  
远程抄表
 -  
资产追踪
 

DTU902 可安装thingsboard-gateway程序,实现以下功能:
-  
MQTT 连接器:用于控制、配置和使用现有协议连接到外部 MQTT 代理的物联网设备的数据。
 -  
OPC-UA 连接器,用于从连接到 OPC-UA 服务器的物联网设备收集数据。
 -  
Modbus 连接器,用于从通过 Modbus 协议连接的物联网设备收集数据。
 -  
BLE 连接器,用于从使用低功耗蓝牙连接的物联网设备收集数据.
 -  
请求连接器从具有 HTTP(S) API 终结点的 IoT 设备收集数据。
 -  
CAN连接器,用于从通过CAN协议连接的物联网设备收集数据。
 -  
BACnet连接器,用于从通过BACnet协议连接的物联网设备收集数据。
 -  
用于从 ODBC 数据库收集数据的 ODBC 连接器。
 -  
REST 连接器,用于创建终结点并从传入的 HTTP 请求收集数据。
 -  
用于从 SNMP 管理器收集数据的 SNMP 连接器。
 -  
FTP 连接器,用于从 FTP 服务器收集数据。
 -  
套接字连接器,用于从通过 TCP/UDP 协议连接器的 IoT 设备收集数据。
 -  
XMPP 连接器,用于从通过 XMPP 协议连接器的物联网设备收集数据。
 -  
OCPP 连接器,用于在充电点和中央系统之间进行通信。
 -  
自定义连接器,用于从通过不同协议连接的 IoT 设备收集数据。(您可以为必需协议创建自己的连接器)。
 -  
持久保存收集的数据,以保证在网络或硬件故障时提供数据。
 -  
自动重新连接到 ThingsBoard 平台。
 -  
将传入的数据和消息简单而强大的映射为统一格式。
 
硬件:DTU902边缘计算网关

以下修改配置,使数据通过DTU902 采用modbus 协议 上传到ThingsBoard 平台:
1. 登陆DTU902:

进入源码目录:
root@huiwei:~# cd thingsboard-gateway
修改配置文件:
root@huiwei:~/thingsboard-gateway# vi thingsboard_gateway/config/tb_gateway.yaml
修改host为thingsboard平台的IP 或域名,accessToken为thingsboard平台创建网关设备的访问令牌。打开Modbus 连接器:
name: Modbus Connector
type: modbus
configuration: modbus.json
接下来 ,根据MODBUS 设备配置modbus.json文件,为了演示,采用ModbusSlave软件模拟设备,这也是开发Modbus协议过程中经常使用的软件。
配置一个属性和一个遥测:
"attributes": [
{
"tag": "string_read",
"type": "string",
"functionCode": 4,
"objectsCount": 4,
"address": 1
}
],
"timeseries": [
{
"byteOrder": "LITTLE",
"tag": "16uint_read",
"type": "16uint",
"functionCode": 4,
"objectsCount": 2,
"address": 5
}
]
如果对vim 不熟悉,可以采用SSH登陆,对文件进行编辑:
 
运行网关程序
root@huiwei:~/thingsboard-gateway# python3 ./thingsboard_gateway/tb_gateway.py
打开Modbus Slave 并且根据modbus.json配置文件,添加functionCode为4,地址1,数量4:
 
在thingsboard 上添加网关,通过网关自动创建Temp Sensor设备,即modbus.json配置文件"deviceName"字段,属性中 读取到了我们在寄存器中配置的0x48、0x49、0x50、0x51:
 
修改寄存器中的数字,thingsboard 平台的属性也 相应的变化。当然平台也可远程Shell网关:
thingsboard-gateway的配置文件使能**remoteShell** 为true
在thingsboard 平台 ,添加仪表板库:
 





















![[FREERTOS] 任务的创建、删除、调度与状态](https://img-blog.csdnimg.cn/1c12348ac5f14c5aa53fceb3184c534d.png)
![浅谈[Linux搭建GitLab私有仓库,并内网穿透实现公网访问]](https://img-blog.csdnimg.cn/img_convert/4685d370be049c181d6cb66395d552c0.png)









