目录

一文了解,从RS485传感器到物联网关到云平台过程

一文了解,从RS485传感器到物联网关到云平台过程

一、概述

工业现场有需要设备支持RS485通信,可以采集各种PLC、流量计、温湿度、液位等。应用特别广泛,这里尽量以更简单的方式,让大家了解整个数据采集过程,更详细可以阅读相关说明书。

钡铼技术:专注工业物联网关,可以采集世面上绝大数据标准仪表、PLC、楼宇设备等,其这里选型是其BL110多功能协议物联网关。

ThingsPanel:开源物联网平台,免费、快速部署

二、实现功能

A、采集

数值类型:温度、湿度

开关量类型:停电报警器状态、烟感状态

B、控制

开关类型:水泵开关、风机启停

控制数值类型:变频器频率、大棚卷帘开合度

三、方案概述

用Modbus slave模拟各种传感器,钡铼工业网关BL110通过Modbus RTU采集、控制各种仪表/设备,并通过4G、以太网方式上网,MQTT协议对接开源物联网云平台ThingsPanel。如下图:

https://i-blog.csdnimg.cn/blog_migrate/11e96cc937699f2003d8d2786badf5d8.png

传感器数据点参数

序号变量名称设备地址功能码寄存器地址数据类型变量标签 (MQTT标识符名称,自定义)
1温度104 Input Registers(3x)0uint16temperature
2湿度104 Input Registers(3x)1uint16humidity
3停电报警102 Input Status(1x)0boolpowerfailure
4烟感报警102 Input Status(1x)1boolsmoke
5水泵开关101 Coil Status(0x)0boolwaterpump
6风机启停101 Coil Status(0x)1boolfan
7变频器频率103 Holding Register(4x)0uint16frequency
8大棚卷帘103 Holding Register(4x)1uint16rollershutter

四、设置Modbus slave(模拟传感器)

电脑安装Modbus slave,并根据前面“传感器数据点参数”,设置Modbus slave,模拟各种类型传感器。如下图:

Connection:选择"SerialPort"

Serial Settings:根据实际选择

Mode:选择“RTU”(这里采集的RS485设备,是标准Modbus RTU协议)

串口参数

注意:Modbus slave(模拟传感器)串口参数 需要和工业智能网关BL110串口参数一致

这里设置如下:

项目参数
波特率9600
数据位8
停止位1
校验码None

https://i-blog.csdnimg.cn/blog_migrate/c4b57794a7c8ef3e79ab27bcfcf221fb.png

五、工业网关BL110配置参数

1、接线

①接电源(支持宽电压:9-36v)

②WAN口网线接入局域网(可自动分配ip,其他网络环境参考说明书)

③RS485接COM2,A接A,B接B

https://i-blog.csdnimg.cn/blog_migrate/38ca30ace0fc6102ba3eb2ccdd085979.png

2、登录配置软件

打开配置软件→点击“设备搜索”→双击“IP地址”→输入密码,默认123456

注意:设备开机约30s左右可搜索到ip

https://i-blog.csdnimg.cn/blog_migrate/36c5d028200507861d70efd70d96084b.png

https://i-blog.csdnimg.cn/blog_migrate/47363d004be0c8b10cc8b0360d227279.png

3、设置串口参数

双击COM2,设置串口参数

注意:这里串口参数和前面设置Modbus slave(模拟传感器)参数一致

模式选择:采集

设备品牌:Modbus设备型号:Modbus_RTU

串口参数

项目参数
波特率9600
数据位8
停止位1
校验码None

4、设置传感器地址

项目内容
设备名称自定义
从站ID即Modbus中数据点的“设备地址”,这里是:1
其他根据实际情况填写

5、添加设备数据点参数

序号变量名称设备地址功能码寄存器地址数据类型变量标签(MQTT标识符名称,自定义)
1温度104 Input Registers(3x)0uint16temperature

添加“温度”数据点为例:

项目内容
变量名称有自动生成,也可自定义。这里演示设置“温度”
变量标签MQTT标识符名称,有自动生成,也可自定义。这里演示设置“temperature”
地址类型Modbus数据点对应功能码。温度功能码是“04 Input Registers(3x)”
数据类型根据实际选择。温度是“uint16”
读写类型根据实际选择。温度是“只读”
地址即寄存器地址。根据“传感器数据点参数”规定,温度寄存器地址是:0
添加数量这里是1,其他类型根据实际情况选择

https://i-blog.csdnimg.cn/blog_migrate/d64121d4ff490a6105fe77de06fba251.png

添加其他数据,并保存

其他数据点以此类推,然后点“写入配置”,然后重新进入

https://i-blog.csdnimg.cn/blog_migrate/1de71db2a8c71a2990ca76ec25cee5a3.png

保存后,设备会自动重启,重新登录配置软件

注意:设备开机约30s左右可搜索到ip

https://i-blog.csdnimg.cn/blog_migrate/5afed3f0d34e534777570592fa95a3c1.png

6、查看网关和传感器通信

点击型号,查看基本信息。如下图查看右侧“COM2”,钡铼网关是和Modbus slave(模拟传感器)通信上,“绿色”代表通讯上。

https://i-blog.csdnimg.cn/blog_migrate/339227aa48e7b7c05fcf74ea940a1e05.png

7、工业网关查看传感器数据

点击“监视”,即可查看到,工业网关BL110采集到传感器当前数值。如下图,已经采集到了。跟Modbus slave的一致。

如果没有采集到数据,请检查一下相关参数是否设置有误和当前网络环境是否正常。

https://i-blog.csdnimg.cn/blog_migrate/034853ca1b0a3f1dd6f93c49839a5e40.png

https://i-blog.csdnimg.cn/blog_migrate/f99094127c7cc6ec9cadb661bb90a08c.png

https://i-blog.csdnimg.cn/blog_migrate/fda2395b75310d5f3568de743f3f0815.png

8、对接开源物联网云平台ThingsPanel

对接ThingsPanel平台是通过MQTT协议,设置如下:

项目内容
IP/域名根据实际填写。这里演示填:39.98.176.26
端口根据实际填写。这里演示填:1000
Client ID根据实际填写。
用户名根据实际填写。
密码根据实际填写。
数据模板选择”KingPigeon“
订阅主题①“云平台ThingsPanel”控制传感器(开关类型:水泵开关、风机启停;数值类型:变频器频率、大棚卷帘开合度); ②那么物联网关BL110则填写订阅主题为:“bl110/001down”,用于接收“云平台ThingsPanel”控制指令。类似你关注某明星微博,他发布消息,就会给您推送。
发布主题①“云平台ThingsPanel”需要接收钡铼工业网关BL110采集到传感器的数据,设置订阅主题“bl110/001”; ②那么工业网关BL110则填写发布主题为:“bl110/001”
上传周期根据实际填写。最快1s。

https://i-blog.csdnimg.cn/blog_migrate/6baba56bcb182073b0b70361f4031f27.png

前面“写入配置”后,点击型号,可以看到“MQTT Client”和“COM2”在线状态都变成了绿色,即BL110网关对接云平台和传感器都是通信上了。

https://i-blog.csdnimg.cn/blog_migrate/da0d2c8e6e40b8e1526761ee114791bb.png

9、BL110智能网关订阅、发布信息格式—KingPigeon模板

发布

{
  "sensorDatas": [
    {
      "flag": "GPS",
      "lat": "0.000000",
      "lng": "0.000000"
    },
    {
      "flag": "signal_strength",
      "value": 0
    },
    {
      "flag": "temperature",
      "value": 30
    },
    {
      "flag": "humidity",
      "value": 68
    },
    {
      "flag": "powerfailure",
      "switcher": 1
    },
    {
      "flag": "smoke",
      "switcher": 0
    },
    {
      "flag": "waterpump",
      "switcher": 1
    },
    {
      "flag": "fan",
      "switcher": 0
    },
    {
      "flag": "frequency",
      "value": 33
    },
    {
      "flag": "rollershutter",
      "value": 55
    }
  ],
  "gateway_indentify": "BeiLai",
  "time": "1658216760",
  "addTime": "2022-07-19 07:46:00",
  "seq": "0.4405.0.0"
}

订阅

A、开关类型。用“switcher”,值

1表示开,true

0表示关。false

{
  "sensorDatas": [
    {
      "switcher": 0,
      "flag": "waterpump"
    }
  ],
  "down": "down"
}

B数值类型类型。用“

value ”,值

注意:这个数值,需要加双引号

{
  "sensorDatas": [
    {
      "value": "998",
      "flag": "frequency"
    }
  ],
  "down": "down"
}

六、用EMQX的客户端订阅、发布消息

1、设置对接开源云平台ThingsPanel的MQTT参数

前面已经设置:工业智能网关BL110设置对接的开源云平台ThingsPanel(ip、端口、订阅主题、发布主题)

https://i-blog.csdnimg.cn/blog_migrate/76616cc13dc55dde859b416675102ea4.png

则EMQX的客户端也设置如下:

https://i-blog.csdnimg.cn/blog_migrate/6497b480f37d107483b83a87bbd69096.png

2、订阅主题:

订阅物联网关BL110采集到传感器的数据

https://i-blog.csdnimg.cn/blog_migrate/e43719b758f050a6bf9965da048082c0.png

3、发布主题:

控制水泵开

https://i-blog.csdnimg.cn/blog_migrate/087729fc2e70c1da234f05ff27143e3b.png