边缘网关thingsboard-gateway DTU902

news2024/11/6 7:06:41

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 平台 ,添加仪表板库:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428861.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rabbitmq深入实践

生产者,交换机,队列,消费者 交换机和队列通过 rounting key 绑定者,rounting key 可以是#.,*.这类topic模式, 生产者发送消息内容 rountingkey, 到达交换机后交换机检查与之绑定的队列, 如果能匹…

Yolov5之common.py文件解读

深度学习训练营原文链接前言0.导入需要的包以及基本配置1.基本组件1.1 autopad1.2 ConvDWConv模块1.3TransformerLayer模块1.4 Bottleneck和BottleneckCSPBottleneck模型结构1.5 CrossConv模块1.6 C3模块基于C3的改进1.7SPP1.8Focus模块1.9 Concat模块1.10 Contract和Expand1.1…

好东西!!!多亏几位大牛整理的面试题,让我成功上岸!!

凡事预则立,不预则废。相信很多程序员朋友在跳槽前都会临阵磨枪,在网络上搜集一些面试题进行准备。 然而,当机会来临时,却发现这些面试题往往“不快也不光”.... 由于Java面试涉及的范围很广,很杂,而且技…

使用MyBatis实现简单查询

文章目录一,创建数据库与表(一)在Navicat里创建MySQL数据库testdb(二)创建用户表 - t_user(三)在用户表里插入3条记录二,案例演示MyBatis基本使用(一)创建Mav…

解决idea每次打开新的项目都需要重新配置maven

原理:就是通过 idea 来进行全局配置【非当前工程配置】 IDEA 版本:2023.1 如何查看版本信息 ? 【主菜单】——【帮助】——【关于】 我在网上查找了许多文章 ,我混淆了一点!当前工程的设置 & 全局设置 不在一个地方…

马斯克掷重金收购英

人前主义,人后生意。在带领一众科技圈大佬签署了呼吁暂停研发比GPT-4更强AI模型的公开信后不久,马斯克却转头豪掷千金收购了10000块英伟达GPU。 一些网友吐槽,以马老板的格局而言,这次价值过亿的投资绝对不是为了借着AI概念火爆来…

2021年 团体程序设计天梯赛——题解集

Hello各位童学大家好!😊😊,茫茫题海你我相遇即是缘分呐,或许日复一日的刷题已经让你感到疲惫甚至厌倦了,但是我们真的真的已经达到了我们自身极限了吗?少一点自我感动,没有结果前别太…

[FREERTOS] 任务的创建、删除、调度与状态

1.什么是任务? 我的理解是:任务像是进程/线程,创建一个任务就会开辟一个空间,每一个任务都是独立的执行相应的动作互不干扰,就比如玩游戏,陪女朋友,任务通常都会有一个while(1)死循环 2.与任务创…

使用cloudflare代理flask启用https服务

原文来自:使用cloudflare代理flask启用https服务 | 夜空中最亮的星 欢迎大家留言讨论 问题1:使用cloudflare的dns回源服务器的时候,出现了http和https不断反复重定向 问题2: flask只能启用http服务,需要启用https 步骤 服务器&…

浅谈[Linux搭建GitLab私有仓库,并内网穿透实现公网访问]

转载自远控源码文章:Linux搭建GitLab私有仓库,并内网穿透实现公网访问 前言 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 Gitlab是被广泛使用的基于git的开源代码管理平…

报错解决:Python ‘NoneType‘ object is not subscriptable , 获取到的数据为None,需要保留数据

人生苦短,我用python 爬取某DB电影数据的时候, 在获取内容的时候出现 NoneType object is not subscriptablePython 资料报错交流:点击此处跳转文末名片获取 获取数据的部分代码是: writer_avatars (writers_list[wi][avatars][small]) …

Linux0.11 信号(十二)

系列文章目录 Linux 0.11启动过程分析(一) Linux 0.11 fork 函数(二) Linux0.11 缺页处理(三) Linux0.11 根文件系统挂载(四) Linux0.11 文件打开open函数(五&#xff09…

前端webpack项目性能优化——体积压缩和compression-webpack-plugin的使用

前端webpack项目性能优化——体积压缩和compression-webpack-plugin的使用需求优化结果需求 脚手架搭建的项目,会默认开启sourceMap,此时打包下来的包会很大,如图:map文件比所有js文件都大,会导致包整体体积过大&…

NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031

然后我们再来看一下如何把json内容,转换成hive支持的文本格式,其实还是一个格式转换对吧 首先看一下用到的处理器,可以看到这里我们用到了evaluateJsonPath处理器,这个处理器用来提取json中的熟悉,然后ReplaceText处理器用来替换掉FlowFile中的属性的内容 首先看一下这个Evalua…

【Python-Conda】Conda操作解读 pip 和 conda 的区别

【Python-Conda】Conda操作解读 & conda与pip的区别 文章目录【Python-Conda】Conda操作解读 & conda与pip的区别1. 介绍2. conda 操作2.1 创建环境2.2 查看conda已创建的环境2.3 删除环境2.3.1 删除虚拟环境中的包2.4 激活(失活)环境2.4.1 激活…

OpenAI Embedding:快速实现聊天机器人(三)

theme: orange 本文正在参加「金石计划」 接上文OpenAI Embedding:快速实现聊天机器人(二)有讲到聊天机器人的架构和流程,这篇开始通过代码讲讲具体实现。 前言 这篇文章为了降低实现的难度,下图中提供存储和向量相似度搜索的Redis(Redis Sea…

智媒ai在线伪原创-python文本自动伪原创

文章伪原创工具的优势 文章伪原创工具是一类自然语言处理工具,通过对原始文本进行语言转换、替换、重组等方式,生成与原始文本相似但不完全相同的新文本。这种工具的优势主要包括以下几点: 提高工作效率:使用文章伪原创工具可以快…

第三章 传输层

传输层基本服务 传输层核心任务是为应用进程之间提供端到端的逻辑通信服务传输层主要实现功能:传输层寻址、对应用层报文进行分段和重组、对报文进行差错检测、实现进程间的端到端的可靠数据传输控制、面向应用层实现复用与分解、实现端到端的流量控制、拥塞控制 …

C++中的引用

上一次,我们只是浅浅的提了一下引用‘&’,那么今天,我们就正式减少一下引用,以及引用是什么,还有就是引用和指针的区别,引用的特点 首先,我们回顾一下什么是引用,引用就是取别名…

MapReduce原理

MapReduce 编程规范 MapReduce 的开发一共有八个步骤, 其中 Map 阶段分为 2 个步骤,Shuffle 阶段 4 个步骤,Reduce 阶段分为 2 个步骤Map 阶段 2 个步骤 设置 InputFormat 类, 将数据切分为 Key-Value(K1和V1) 对, 输入到第二步自定义 Map 逻辑, 将第一…