【thingsboard-gateway 连接modbus R485 温湿度传感器设备】

thingsboard-gateway 连接modbus R485 温湿度传感器设备

准备:
1、采用源代码编译连接测试(默认pip安装包不可以改硬件连接方式配置)
2、下载pycharm用于编译开发
3、本地安装了python环境,目前我本地用的是python3.10
4、准备一个R485的温湿度传感器或者模拟串口工具亦可
5、准备一个485转USB串口转接头(用于485设备接线转USB, 模拟硬件可跳过)和安装驱动
6、安装串口调试工具(mac:minicom)用于测试串口通讯是否正常
7、就绪的thingsboard服务

目录:
一、硬件接线和资料
二、下载thingsboard-gateway源码
三、pycharm编译
四、thingsboard 服务端配置
五、修改配置文件,调整硬件连接方式
六、完结散花

一、硬件接线和资料

本次设备为淘宝购买的R485 温湿度传感器1个、R485转USB转接头1个

传感器设备参数:
波特率:4800
数据位: 8
停止位: 1
【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第1张图片【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第2张图片

1、接线图(注意正负极,图中是虚线为正, 如果是黑白线,白正黑负;):

【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第3张图片

2、安装转接头驱动(略过,详细咨询卖家)
安装完Mac查看驱动是否安装成功: 关于本机-系统报告-USB , 可以通过插拔USB判断
【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第4张图片

3、获取串口名
Mac 电脑:

ls /dev/tty.*

【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第5张图片

串口名: /dev/tty.usbserial-130

二、下载thingsboard-gateway源码

下载地址: https://github.com/thingsboard/thingsboard-gateway
git clone -b master https://github.com/thingsboard/thingsboard-gateway

在这里插入图片描述

三、pycharm编译

1、打开时设置python路径,指定前面安装的python3.10的路径
2、编译成功后,会生成venv 虚拟python环境, 类似于anaconda 环境权限隔离
【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第6张图片

3、启动时会报类似于缺少pymodbus模块的问题,直接链接到里面,直接引入模块(pycharm工具还是比较友好)

四、thingsboard 服务端配置

1、新建设备
在这里插入图片描述

2、复制访问令牌
【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第7张图片

网关访问令牌: h3Ty5dhFe836saZgEIir

五、修改配置文件,调整硬件连接方式

1、打开thingsboard/config下的tb_gateway.yaml 修改host、accessToken(thingsboard地址、访问令牌)、硬件连接方式
【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第8张图片
【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第9张图片

2、修改modbus_serial.json 配置文件
【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第10张图片
【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第11张图片

{
  "master": {
    "slaves": [
      {
        "type": "serial",
        "method": "rtu",
        "port": "/dev/tty.usbserial-130",
        "baudrate": 4800,
        "timeout": 35,
        "stopbits": 1,
        "bytesize": 8,
        "byteOrder": "BIG",
        "wordOrder": "BIG",
        "retries": true,
        "retryOnEmpty": true,
        "retryOnInvalid": true,
        "pollPeriod": 5000,
        "unitId": 1,
        "deviceName": "ModbusRtu01",
        "sendDataOnlyOnChange": false,
        "connectAttemptTimeMs": 5000,
        "connectAttemptCount": 5,
        "waitAfterFailedAttemptsMs": 300000,
        "attributes": [
          {
            "tag": "16int",
            "type": "16int",
            "functionCode": 4,
            "objectsCount": 2,
            "address": 3
          }
        ],
        "timeseries": [
          {
            "tag": "temperature",
            "type": "16uint",
            "functionCode": 3,
            "objectsCount": 1,
            "address": 1
          },
          {
            "tag": "humidity",
            "type": "16uint",
            "functionCode": 3,
            "objectsCount": 1,
            "address": 0
          }
        ],
        "attributeUpdates": [
          {
            "tag": "shared_attribute_write",
            "type": "32int",
            "functionCode": 6,
            "objectsCount": 2,
            "address": 29
          }
        ],
        "rpc": [
          {
            "tag": "setValue",
            "type": "bits",
            "functionCode": 5,
            "objectsCount": 1,
            "address": 31
          },
          {
            "tag": "getValue",
            "type": "bits",
            "functionCode": 1,
            "objectsCount": 1,
            "address": 31
          }
        ]
      }
    ]
  }
}

3、右键启动 tb_gateway.py

5、thingsboard 网页查看数据是否上报
【thingsboard-gateway 连接modbus R485 温湿度传感器设备】_第12张图片

六、完结散花

遇到的坑:
1、传感器的电源线 火线没接通设备,只有零线接通设备,通过USB转换器接到mac电脑上,仍然显示端口名,用minicom测试竟然也是通的,拿到的串口名:/dev/tty.usbserial-140 后面接线接好了之后,拿到的串口名:/dev/tty.usbserial-130
启动一直没有数据上来,卡了我好几个小时,抓耳挠腮,不得其解。
2、由于对python一直没有系统的学习过,平常属于打一枪换一炮的那种,对于pycharm工具的一些功能不甚了解,风格跟IDEA类似,上手起来还是比较快的,比如缺少模块,直接一键直接帮你引入,跟之前我手动pip安装来比很方便。

你可能感兴趣的:(thingsboard,gateway,gateway,python)