当前位置: 首页 > news >正文

Linux(离线)内网部署 thingsboard-gateway 网关实战modbus通讯

前面我们讲解了在内网上如何部署Thingsboard,部署之后领导又要求部署上网关,然后通过modbus来监听设备,废话不多说,直接上干活。

第一步:下载thingsboard-gateway安装包

在Thingsboard官网中给了我们一个在线安装的地址

我们把开头去掉,留下 https和后面的内容,在浏览器地址栏打开,就会将安装包下载下来,是一个rpm文件,我的是这个https://github.com/thingsboard/thingsboard-gateway/releases/download/2.0/python3-thingsboard-gateway.rpm

第二步: 将rpm文件上传内网服务器

上传的文件夹自己选择,没有特殊要求

第三步:安装rpm文件

上传文件后,在文件存放的位置输入安装命令,如下:

sudo rpm -Uvh python3-thingsboard-gateway.rpm

安装完成后我们可以使用命令检查一下网关状态,命令如下:

systemctl status thingsboard-gateway

首次安装完后,我们查询状态的时候会看到一个报错如下,由于我安装是没有截图,这个报错就是复制的官网的

... python3[7563]: ''2019-12-26 09:31:15' - ERROR - mqtt_connector - 181 - Default Broker connection FAIL with error 5 not authorised!'

 看到这个报错信息大家不要慌,这个是因为我们首次安装Thingsboard-gateway有些配置还没有配,所以才报错,接下来我们就来修改配置

第四步:新建网关设备

使用网关我们先要在Thingsboard平台上建一个网关设备,步骤如下

这样我们就添加了一个网关设备,然后查看设备访问令牌,,我们就叫accessToken,accessToken在我们下面的配置中要用,查看步骤如下:

第五步:修改配置

        1.修改tb_gateway.yaml

这个文件中呢,配置了Thingsboard平台的地址,和我们要用到通信协议的配置,我这里用到的是modbus协议,所以我只讲解modbus的配置,tb_gateway的配置如下:

修改完这里,我重启一下网关,然后在查询状态,此时的状态已正常,并在在Thingsboard平台上会新建一个设备。重启命令如下:

systemctl restart thingsboard-gateway.service
 2.修改modbus.json

        在modbus.json的文件中配置modbus的ip和端口。

 第六步:测试

说明:由于测试我们使用的是工具,所以我们一定要在服务器和本地环境能网络互通的环境下进行,我开始网关服务部署在阿里云上,然而根本telnet不通本地环境,白搞了两天,后来改到公司的内网服务器上,一次通过(使用真实设备也要能通网络)。

测试我们这里使用的是modbus slave

https://download.csdn.net/download/JavaLLU/89632509

安装直接下一步就行,文件里面有一个key复制进去

打开modbus Slave工具,我们启动

 

按照下面步骤我们可以修改功能码 ,鼠标在窗体内右键

 

选择下拉列表可以修改对应的功能码

这里我们看我们在modbus.json中配置的是那个需要对应上,我的是3,4所以我这里新建两个3,4

上面的F就表示的功能码,我modbus.json中只配置了,功能码3,4的第一位置的值,所以我们这里修改第一个值的时候,在我们Thingsboard平台设备上我们可以看到属性值的变换

 

 

好啦,到这里我们就大功告成了,如有不正确的地方,欢迎大家指正交流!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【docker快捷部署系列二】用docker-compose快速配置多个容器,docker部署Springboot+Vue项目和mysql数据库
  • Python | Leetcode Python题解之第329题矩阵中的最长递增路径
  • 手写Redis缓存系统,第三章:持久化-增加可靠性
  • SuccBI+低代码文档中心 — 可视化分析(仪表板)(下)
  • Linux-Shell入门-05
  • 白骑士的Matlab教学实战项目篇 4.3 控制系统设计
  • 保研考研机试攻略:第一章——从零开始
  • 怎样才算精通 Excel?
  • linux之网络子系统-GRO机制分析
  • 09正弦稳态电路的分析
  • C语言学习笔记 Day10(指针--中)
  • 13.StringRedisTemplete使用
  • 巧用Array.forEach:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提高Array.forEach的性能
  • C语言:字符函数,字符串函数
  • 《计算机网络 - 自顶向下方法》阅读笔记
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • .pyc 想到的一些问题
  • docker python 配置
  • exif信息对照
  • IDEA常用插件整理
  • If…else
  • in typeof instanceof ===这些运算符有什么作用
  • java8 Stream Pipelines 浅析
  • Javascript Math对象和Date对象常用方法详解
  • Java基本数据类型之Number
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Mysql优化
  • Webpack 4x 之路 ( 四 )
  • XML已死 ?
  • 前嗅ForeSpider采集配置界面介绍
  • 日剧·日综资源集合(建议收藏)
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 怎么把视频里的音乐提取出来
  • NLPIR智能语义技术让大数据挖掘更简单
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 整理一些计算机基础知识!
  • ​数据结构之初始二叉树(3)
  • ​香农与信息论三大定律
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #14vue3生成表单并跳转到外部地址的方式
  • #162 (Div. 2)
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • (2015)JS ES6 必知的十个 特性
  • (7)svelte 教程: Props(属性)
  • (C++17) optional的使用
  • (Java入门)学生管理系统
  • (函数)颠倒字符串顺序(C语言)
  • (接口自动化)Python3操作MySQL数据库
  • (五)activiti-modeler 编辑器初步优化
  • (一)Linux+Windows下安装ffmpeg
  • (转)Sql Server 保留几位小数的两种做法
  • (自用)gtest单元测试
  • .Net 6.0 处理跨域的方式
  • .Net Core 中间件验签
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置