一文了解,从RS485传感器到物联网关到云平台过程
一文了解,从RS485传感器到物联网关到云平台过程
一、概述
工业现场有需要设备支持RS485通信,可以采集各种PLC、流量计、温湿度、液位等。应用特别广泛,这里尽量以更简单的方式,让大家了解整个数据采集过程,更详细可以阅读相关说明书。
钡铼技术:专注工业物联网关,可以采集世面上绝大数据标准仪表、PLC、楼宇设备等,其这里选型是其BL110多功能协议物联网关。
ThingsPanel:开源物联网平台,免费、快速部署
二、实现功能
A、采集
数值类型:温度、湿度
开关量类型:停电报警器状态、烟感状态
B、控制
开关类型:水泵开关、风机启停
控制数值类型:变频器频率、大棚卷帘开合度
三、方案概述
用Modbus slave模拟各种传感器,钡铼工业网关BL110通过Modbus RTU采集、控制各种仪表/设备,并通过4G、以太网方式上网,MQTT协议对接开源物联网云平台ThingsPanel。如下图:
传感器数据点参数
序号 | 变量名称 | 设备地址 | 功能码 | 寄存器地址 | 数据类型 | 变量标签 (MQTT标识符名称,自定义) |
1 | 温度 | 1 | 04 Input Registers(3x) | 0 | uint16 | temperature |
2 | 湿度 | 1 | 04 Input Registers(3x) | 1 | uint16 | humidity |
3 | 停电报警 | 1 | 02 Input Status(1x) | 0 | bool | powerfailure |
4 | 烟感报警 | 1 | 02 Input Status(1x) | 1 | bool | smoke |
5 | 水泵开关 | 1 | 01 Coil Status(0x) | 0 | bool | waterpump |
6 | 风机启停 | 1 | 01 Coil Status(0x) | 1 | bool | fan |
7 | 变频器频率 | 1 | 03 Holding Register(4x) | 0 | uint16 | frequency |
8 | 大棚卷帘 | 1 | 03 Holding Register(4x) | 1 | uint16 | rollershutter |
四、设置Modbus slave(模拟传感器)
电脑安装Modbus slave,并根据前面“传感器数据点参数”,设置Modbus slave,模拟各种类型传感器。如下图:
Connection:选择"SerialPort"
Serial Settings:根据实际选择
Mode:选择“RTU”(这里采集的RS485设备,是标准Modbus RTU协议)
串口参数
注意:Modbus slave(模拟传感器)串口参数 需要和工业智能网关BL110串口参数一致
这里设置如下:
项目 | 参数 |
波特率 | 9600 |
数据位 | 8 |
停止位 | 1 |
校验码 | None |
五、工业网关BL110配置参数
1、接线
①接电源(支持宽电压:9-36v)
②WAN口网线接入局域网(可自动分配ip,其他网络环境参考说明书)
③RS485接COM2,A接A,B接B
2、登录配置软件
打开配置软件→点击“设备搜索”→双击“IP地址”→输入密码,默认123456
注意:设备开机约30s左右可搜索到ip
3、设置串口参数
双击COM2,设置串口参数
注意:这里串口参数和前面设置Modbus slave(模拟传感器)参数一致
模式选择:采集
设备品牌:Modbus设备型号:Modbus_RTU
串口参数
项目 | 参数 |
波特率 | 9600 |
数据位 | 8 |
停止位 | 1 |
校验码 | None |
4、设置传感器地址
项目 | 内容 |
设备名称 | 自定义 |
从站ID | 即Modbus中数据点的“设备地址”,这里是:1 |
其他 | 根据实际情况填写 |
5、添加设备数据点参数
序号 | 变量名称 | 设备地址 | 功能码 | 寄存器地址 | 数据类型 | 变量标签(MQTT标识符名称,自定义) |
1 | 温度 | 1 | 04 Input Registers(3x) | 0 | uint16 | temperature |
添加“温度”数据点为例:
项目 | 内容 |
变量名称 | 有自动生成,也可自定义。这里演示设置“温度” |
变量标签 | MQTT标识符名称,有自动生成,也可自定义。这里演示设置“temperature” |
地址类型 | Modbus数据点对应功能码。温度功能码是“04 Input Registers(3x)” |
数据类型 | 根据实际选择。温度是“uint16” |
读写类型 | 根据实际选择。温度是“只读” |
地址 | 即寄存器地址。根据“传感器数据点参数”规定,温度寄存器地址是:0 |
添加数量 | 这里是1,其他类型根据实际情况选择 |
添加其他数据,并保存
其他数据点以此类推,然后点“写入配置”,然后重新进入
保存后,设备会自动重启,重新登录配置软件
注意:设备开机约30s左右可搜索到ip
6、查看网关和传感器通信
点击型号,查看基本信息。如下图查看右侧“COM2”,钡铼网关是和Modbus slave(模拟传感器)通信上,“绿色”代表通讯上。
7、工业网关查看传感器数据
点击“监视”,即可查看到,工业网关BL110采集到传感器当前数值。如下图,已经采集到了。跟Modbus slave的一致。
如果没有采集到数据,请检查一下相关参数是否设置有误和当前网络环境是否正常。
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。 |
前面“写入配置”后,点击型号,可以看到“MQTT Client”和“COM2”在线状态都变成了绿色,即BL110网关对接云平台和传感器都是通信上了。
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、端口、订阅主题、发布主题)
则EMQX的客户端也设置如下:
2、订阅主题:
订阅物联网关BL110采集到传感器的数据
3、发布主题:
控制水泵开