前面我们讲解了在内网上如何部署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和端口。
注意:我这里测的时候发现sendDataOnlyOnChange这个值为true时,属性和遥测数据只能收到一个配置的数据,设置为false两个配置的数据都可以收到,不理解为什么
第六步:测试
说明:由于测试我们使用的是工具,所以我们一定要在服务器和本地环境能网络互通的环境下进行,我开始网关服务部署在阿里云上,然而根本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平台设备上我们可以看到属性值的变换
好啦,到这里我们就大功告成了,如有不正确的地方,欢迎大家指正交流!