一、什么是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智能网关的优化拓展

参考:https://thingsboard.io/docs/iot-gateway/

results matching ""

    No results matching ""