一、什么是ThingsBoard智能网关
ThingsBoard是一个开源的物联网平台,它可以实现数据采集,处理,可视化和设备管理。它支持行业标准的IoT协议设备的连接(MQTT,CoAP和HTTP),同时支持云和本地部署。
ThingsBoard智能网关是是一个开源的解决方案,可将连接到传统或第三方系统的物联网设备与ThingsBoard集成到一起。
二、ThingsBoard智能网关的特点
1、支持MQTT通信协议设备的数据采集
2、支持OPC-UA通信协议设备的数据采集
3、支持Sigfox后端设备的数据采集
4、在网络和硬件故障的情况下,保留收集的数据以保证数据传输
5、自动重新连接到ThingsBoard集群
6、支持将输入数据和消息映射成统一的格式
三、ThingsBoard智能网关的架构
ThingsBoard Gateway的架构思想与微服务非常相似,除了既有的几种通信协议设备之外,它还支持其他协议的物联网设备(通过实现自定义扩展)。它提供了非常简单的API接口,同时封装了与ThingsBoard相关的常见任务:设备配置,本地数据存储及传输,消息转换器及适配器等。
四、ThingsBoard智能网关的应用
1、集成开发环境IDE:eclipse
2、开发依赖:Spring,Maven,Grandle,ThingsBoard开发包
3、使用eclipse或STS打开gateway工程
4、OPC-UA协议配置文件gateway/src/main/resources/opc-config.json
"mapping": [
{
"deviceNodePattern": "Simulation+$", //匹配根节点名字有Simulation
"deviceNamePattern": "Simulation.${Counter}", // 设备名称,在节点Simulation目录下子节点名字为Counter的节点当前值作为设备名称并监控,若是无${XXX},只命名设备名称,不监控
"attributes": [// 监听节点Simulation目录下的子节点Counter1或Counter,这些节点数据类型为字符类型。
{"key":"Tag1", "type": "string", "value": "${Counter1}"},
{"key":"Tag3", "type": "string", "value": "${Counter}"}
],
"timeseries": [// 监听节点Simulation目录下的子节点Random1,这些节点数据类型为long。
{"key":"Tag2", "type": "long", "value": "${Random1}"}
]
}
5、OPC-UA代码修改
例子中的OPC-UA代码不符合其他命名方式的数据结点,需要修改函数
/gateway/src/main/java/org/thing/sboard/gateway/extensions/opc/OpcUaServerMonitor.java里的lookupTags函数。
五、ThingsBoard智能网关的优化拓展