Thingsboard 数据采集(直连&网关)

Thingsboard数据采集部分,官网文档讲的非常清楚,建议底子好还是直接看官方文档。

tb的采集分为通过直连采集和通过网关采集两种途径。

直连:传感器支持rj45,可以通过mqtt、coap、http连接tb通信。

因为coap和http都是单向通信,所以一般都选择mqtt。下来介绍下设备怎么连接到tb上。

1,后台新建一个设备,不要勾选网关,或者通过tb的api创建一个设备,设备创建成功后,tb会为该设备创建一个mqttserver,点开设备详情,复制访问令牌,这是mqtt的用户名,密码为空,mqtt server ip是tb的服务所在ip,端口见tb配置文件mqtt下的bind_port,默认是1883,因为和我本机mqtt冲突,我改成1884。

2,用mqtt客户端工具连接上设备,发送遥测数据和属性数据,我理解的遥测数据属于时序数据;属性数据属于设备属性,不经常变化。

3,配置规则引擎,一定要配置规则引擎,否则数据只会到tb转一圈,什么也不会发生,我第一次配置的时候发现什么都没发生后还以为代码出了问题,重新升级了个版本还是这样,其实只需要在规则引擎里配置存储到tb即可。

注意配置Post telemetry,Post attribute ,然后添加保存的规则引擎节点。如图。

4,最后就可以在设备详情中看到刚刚上报的数据。

直连设备采集完成。

 

网关接入设备数据采集:对于非rj45的设备,例如plc,一些通过第三方网关接入的传感器等设备,可以通过tb提供的软网关(python网关)连接到tb上,tb官方的这个网关支持一些常见的协议,例如mqtt、modbus、opcua等,国内现在也有一些第三方厂商在做可以直连到tb的硬网关,甚至还有java版本的网关。目前我发现tb自带的网关最大的诟病就是性能问题,亲测单进程1分钟处理能力只有600条数据左右,再多会有明显延迟,有不同观点的朋友可以评论区指出。

本次介绍通过tb自带的网关接入tb,安装网关因为比较简单略过。

1,在tb上新建一个网关,记住勾选网关,同样也可以通过api创建,复制访问token。

2,打开/etc/thingsboard-gateway/config/tb_gateway.yaml,修改tb的ip,mqtt端口,把上一步的复制的accesstoken粘贴这里。

3,修改/etc/thingsboard-gateway/config/mqtt.json,这里头先把第三方mqtt地址配置,因为硬件设备的数据都是从这里吐过来的。mapping这里是重点,举个例子。

假如第三方设备吐过来的数据是这样

{
"3012":"9.72",
"deviceType":"etag",
"supplier":"hanshuo",
"product":"sws"
}

我这里这样配置,其中topicFilter是设备吐过来的数据发送的mqtt 的topic。deviceTypeJsonExpression是元数据的devicetype,deviceNameTopicExpression是元数据的devicename相当于设备唯一id,在规则引擎中各种数据传输,完全要依赖这两个字段来判断。attributes是设备属性,timeseries是设备遥测数据,同直连一样,我们要配置规则引擎存储该数据,否则数据会在tb空跑一圈。

"mapping": [
    {
      "topicFilter": "/device/fogside/colorLight/+/data",
      "converter": {
        "type": "json",
        "deviceNameTopicExpression": "(?<=colorLight\/)(.*?)(?=\/data)",
        "deviceTypeJsonExpression": "${deviceType}",
        "timeout": 150000,
        "attributes": [
         {
             "type": "string",
             "key": "supplier",
             "value": "${supplier}"
          }
        ],
        "timeseries": [
          {
            "type": "double",
            "key": "battery",
            "value": "${3012}"
          }
        ]
      }
    },.......

4,通过网关采集配置完成,这时规则引擎里可以做的东西就很多了,我们可以根据温度开空调,根据红外开灯,如果有烟雾拉响警报电话通知保安等等,也可以把数据转化清洗后发送给第三方服务。

目前使用tb上报数据,最大的感触就是觉得元数据不够用,因为tb只有devicename和devicetype两个字段,想再加几个貌似都加不上。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Thingsboard是一个开源的物联网平台,它可以用于集成和管理物联网设备。要连接Thingsboard与MQTT网关,需要遵循以下步骤: 1. 创建设备:首先,在Thingsboard平台上创建一个设备。你可以在设备管理页面创建设备,并分配一个设备标识符(Device ID)和设备令牌(Device Token)。 2. 配置MQTT网关:然后,配置你的MQTT网关以便与Thingsboard平台连接。在网关的配置文件,你需要指定Thingsboard平台的连接细节,例如服务器地址、端口、设备标识符等。 3. 连接MQTT网关网关启动后,它将自动连接Thingsboard平台。它将使用预先配置的设备标识符和设备令牌进行身份验证。 4. 设备上报数据:在设备上报数据时,可以通过网关将数据发送到Thingsboard平台。MQTT网关会将数据发布到指定的MQTT主题上,该主题的名称是由设备标识符和“telemetry”(遥测数据)组成的。 5. 数据可视化和管理:Thingsboard平台将接收来自MQTT网关的数据,并将其存储在数据库。你可以使用Thingsboard提供的仪表板功能来可视化和监控设备数据。还可以在平台上进行设备管理、数据分析和规则引擎配置等操作。 需要注意的是,连接MQTT网关和Thingsboard平台的具体步骤可能会因所使用的网关和Thingsboard的版本而有所不同。因此,在实际操作时,建议参考相关文档和官方指南以获得准确的步骤和配置细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值