网关实现温湿度传感器Modbus转MQTT远程监控平台项目案例

一、项目概述

1.1 项目背景

在工业环境监测、智慧农业、仓储物流等场景中,温湿度数据的实时采集与远程监控至关重要。本项目采用VFBOX系列协议转换网关,将现场温湿度传感器的Modbus协议数据转换为MQTT协议,实现数据上云,接入远程监控平台(如阿里云IoT平台),完成从现场设备到云端平台的全链路数据打通。

1.2 项目目标

  • 采集现场温湿度传感器的实时数据(温度、湿度值)
  • 通过VFBOX网关将Modbus协议转换为MQTT协议
  • 将数据上报至远程MQTT监控平台,实现远程可视化监控
  • 支持平台下发控制指令,实现双向数据交互

1.3 系统架构

┌─────────────────┐      Modbus RTU/TCP       ┌─────────────────┐      MQTT over 4G/以太网       ┌─────────────────┐
│  温湿度传感器    │  ◄──────────────────────►  │   VFBOX网关     │  ◄──────────────────────────►  │  远程MQTT平台   │
│  (Modbus从站)   │         RS485/网口          │ (协议转换网关)  │         1883端口               │ (阿里云IoT等)   │
└─────────────────┘                           └─────────────────┘                                └─────────────────┘

二、硬件选型与准备

2.1 网关选型

根据项目需求,选用 VB303-1110#128-1-6 型号网关:

型号字段 说明 本项目配置
VB303 硬件批次 VB303系列
1110 1网口+1串口+4G无线 满足有线和无线双通道需求
128 最大采集128个数据点 温湿度仅需2-4个点,富余充足
1 采集协议:Modbus 采集温湿度传感器
6 转发协议:MQTT 上报远程监控平台

网关默认参数:

  • 电源:DC 9-30V
  • COM1串口:波特率9600,8位数据位,无校验,1位停止位
  • Ethernet1:IP 192.168.1.199
  • 4G:支持移动/联通/电信Micro-SIM卡

2.2 温湿度传感器参数

  • 通信协议:Modbus RTU(RS485接口)
  • 设备地址(站号):1
  • 温度寄存器地址:40001(保持寄存器,Float类型)
  • 湿度寄存器地址:40003(保持寄存器,Float类型)
  • 波特率:9600
  • 数据位:8,无校验,1位停止位

2.3 所需物料清单

序号 物料名称 数量 说明
1 VFBOX网关(VB303-1110#128-1-6) 1台 协议转换核心设备
2 温湿度传感器(Modbus RTU) 1台 现场数据采集
3 12V/2A直流电源 1个 网关供电
4 RS485通信线(A/B双绞屏蔽线) 若干 传感器与网关连接
5 网线(CAT5e以上) 1根 网关与电脑配置连接
6 Micro-SIM卡(已开通流量) 1张 4G无线上网(可选)
7 电脑(安装VFBOX Studio软件) 1台 参数配置与调试

三、接线与物理连接

3.1 网关接口接线

VFBOX网关接线端子定义:
┌─────────────────────────────────────────────────┐
│  V+  V-  Ethernet1  A  B  TX  RX  GND  FUN      │
│   │   │      │       │  │   │   │   │    │      │
│   │   │      │       │  │   │   │   │    │      │
└─────────────────────────────────────────────────┘

接线说明:
• V+  ───► 电源正极(DC 12V+)
• V-  ───► 电源负极(DC 12V-)
• A   ───► 温湿度传感器RS485-A(A+)
• B   ───► 温湿度传感器RS485-B(A-/B-)
• Ethernet1 ───► 电脑网口(配置时使用)

3.2 RS485接线注意事项

  1. A接A,B接B:网关A端子接传感器A+(或DATA+),网关B端子接传感器A-(或DATA-)
  2. GND共地:建议将网关GND与传感器GND连接,提高通信稳定性
  3. 终端电阻:如果通信距离超过50米或存在干扰,建议在RS485总线末端并联120Ω终端电阻
  4. 屏蔽层接地:屏蔽双绞线的屏蔽层单端接地

四、VFBOX Studio软件配置

4.1 软件安装与连接

  1. 从仰科官网(www.onker.cn)下载VFBOX Studio软件(编号1001)
  2. 管理员权限安装并启动软件
  3. 用网线将电脑网口与网关Ethernet1直连
  4. 设置电脑IP地址为 192.168.1.198(与网关默认IP同网段)
  5. 打开CMD,执行 ping 192.168.1.199,确认网络连通

4.2 新建工程

  1. 打开VFBOX Studio,点击"新建工程"
  2. 输入工程名称:温湿度MQTT上报工程
  3. 设备类型选择:VB30X-1110(根据实际网关型号选择)
  4. 点击菜单"网关IP地址",输入:192.168.1.199
  5. 点击"授权-查看授权",确认网关支持Modbus采集和MQTT转发功能

4.3 配置采集设备(Modbus RTU)

步骤1:新建设备

  1. 在左侧导航栏点击"采集设备" → "新建设备"
  2. 驱动类型选择:Modbus RTU
  3. 点击"下一步"

步骤2:设备命名

  • 设备名称:温湿度传感器_01
  • 点击"下一步"

步骤3:配置串口参数

连接接口:COM1
波特率:9600
数据位:8
校验位:None(无校验)
停止位:1
  • 点击"下一步"

步骤4:配置设备站号

  • Modbus站号:1(与传感器实际地址一致)
  • 点击"完成"

步骤5:添加采集标签

点击"新建标签",依次添加温度和湿度两个数据点:

标签名称 数据类型 寄存器地址 读写控制 描述
Temperature Float 40001 温度值(℃)
Humidity Float 40003 湿度值(%RH)

地址说明:40001表示4X Holding Registers(保持寄存器)第1个地址,对应Modbus报文地址0x0000。Float类型占用2个寄存器(4字节),因此湿度地址为40003。

步骤6:验证采集

  1. 点击"下载"按钮,将工程下载到网关
  2. 点击"查看数据"
  3. 确认"更新时间"为当前时间,"状态"显示"Good"
  4. 检查温度、湿度数值是否正确

4.4 配置MQTT转发服务

步骤1:启用MQTT服务

  1. 在左侧导航栏点击"服务" → "MQTT Client"
  2. 启用:Yes

步骤2:填写MQTT连接参数

以阿里云IoT平台为例:

参数项 配置值 说明
启用 Yes 启用MQTT协议
心跳间隔 60 每60秒发送一次心跳
远程服务器IP地址 a1XJIjfIhua.iot-as-mqtt.cn-shanghai.aliyuncs.com 阿里云MQTT服务器域名
远程服务器端口 1883 阿里云默认MQTT端口
客户唯一编号(ClientId) 123456|securemode=3,signmethod=hmacsha1| 自定义客户端ID+加密方式
用户名(UserName) mqtt01-1&a1XJIjfIhua DeviceName&ProductKey
密码(Password) ax48M70OmIJCbN0yQWL5WeiDWDc6CanL 通过阿里云签名工具计算
发布主题(Publish Topic) /a1XJIjfIhua/mqtt01-1/data 云平台订阅的Topic
发布间隔 30 每30秒上报一次数据

密码获取方式:登录阿里云IoT平台,获取ProductKey、DeviceName、DeviceSecret后,使用阿里云签名工具计算Password。

步骤3:配置上报数据格式

  1. 点击"Data Format"按钮
  2. 在弹出的对话框中配置JSON上报格式:
{
    "deviceId": "温湿度传感器_01",
    "timestamp": "__SYS_TIME_STR__",
    "data": {
        __REPEAT_TAG
        "__TAG_NAME__": __TAG_VALUE__,
        __END_REPEAT_TAG
    }
}
  1. 点击"View Example"预览上报格式
  2. 确认无误后保存

步骤4:绑定上报数据点

  1. 在MQTT服务配置界面,点击"添加"按钮
  2. 在弹出的标签选择窗口中,勾选需要上报的标签:
    • Temperature(温度)
    • Humidity(湿度)
  3. 点击"OK"保存

步骤5:下载工程

  1. 点击工具栏"下载"按钮
  2. 等待输出窗口显示下载成功信息
  3. 网关自动运行,开始采集并上报数据

五、远程监控平台配置(以阿里云IoT为例)

5.1 平台端设备创建

  1. 登录阿里云控制台,进入"物联网平台"
  2. 创建产品:
    • 产品名称:温湿度监测产品
    • 节点类型:直连设备
    • 联网方式:蜂窝(4G)/以太网
    • 数据格式:ICA标准数据格式(或自定义)
  3. 在产品下创建设备:
    • 设备名称:mqtt01-1
    • 备注:VFBOX网关-温湿度传感器01

5.2 获取设备三元组

在设备详情页获取以下参数:

  • ProductKeya1XJIjfIhua
  • DeviceNamemqtt01-1
  • DeviceSecretax48M70OmIJCbN0yQWL5WeiDWDc6CanL

5.3 查看设备状态与数据

  1. 登录阿里云IoT平台,进入"设备管理"
  2. 查看设备状态:应显示为"在线"
  3. 进入"监控运维" → "日志服务"
  4. 查看网关上报的实时数据日志:
{
    "deviceId": "温湿度传感器_01",
    "timestamp": "2026-04-28T14:42:00",
    "data": {
        "Temperature": 25.6,
        "Humidity": 68.5
    }
}

5.4 数据可视化(可选)

  1. 在阿里云IoT Studio中创建Web应用
  2. 添加"仪表盘"组件,绑定Temperature和Humidity数据
  3. 设置数据刷新间隔为30秒
  4. 发布应用,实现温湿度实时可视化监控

六、平台下发控制指令(扩展功能)

6.1 功能说明

VFBOX网关支持MQTT平台下发控制指令,实现远程写值到传感器或网关标签。此功能为选配功能,需确认网关授权支持。

6.2 配置命令主题

  1. 在VFBOX Studio中,进入MQTT服务配置
  2. 设置"命令主题"(Command Topic):
    • 命令主题:/a1XJIjfIhua/mqtt01-1/get
  3. 配置命令解析格式,点击"Data Format"查看默认格式

6.3 下发控制指令测试

  1. 在阿里云IoT平台,找到设备,点击"查看"
  2. 找到命令主题 /a1XJIjfIhua/mqtt01-1/get,点击"发布消息"
  3. 发送JSON格式控制指令:
{
    "TagName": "Temperature",
    "TagValue": 888
}
  1. 在VFBOX Studio中点击"查看数据",确认对应标签值已被修改
  2. 若标签配置了写功能,数据将同步写入传感器设备

七、项目调试与常见问题排查

7.1 采集数据异常排查

现象 可能原因 解决方法
查看数据状态为"Bad" RS485接线错误 检查A/B线是否接反,确认共地
查看数据状态为"Timeout" 波特率不匹配 核对传感器与网关波特率是否一致
数值显示为0或异常 寄存器地址错误 确认传感器手册中的寄存器地址
Float数值错乱 字节顺序问题 在设备属性中调整"寄存器顺序"

7.2 MQTT连接异常排查

现象 可能原因 解决方法
平台显示"离线" 网络不通 检查4G信号或以太网连接
连接被拒绝 用户名密码错误 重新计算Password,核对三元组
数据未上报 Topic配置错误 核对发布主题与平台订阅主题是否一致
4G无法联网 APN设置问题 联系运营商确认APN参数

7.3 使用VBtrace辅助诊断

当通信异常时,可使用VBtrace命令查看网关运行日志:

# 查看Modbus采集通信(端口号20304)
vbtrace.exe 20304 192.168.1.199

# 查看MQTT转发通信(端口号20320)
vbtrace.exe 20320 192.168.1.199

在VFBOX Studio中点击"工具" → "命令行",输入上述指令即可查看实时通信数据。


八、项目总结

8.1 项目成果

本项目成功实现了以下功能:

  • ✅ 通过VFBOX网关采集Modbus RTU温湿度传感器数据
  • ✅ 将采集数据转换为MQTT协议,通过4G/以太网上报至阿里云IoT平台
  • ✅ 实现了温湿度数据的远程实时监控
  • ✅ 支持平台下发控制指令,具备双向交互能力

8.2 方案优势

优势 说明
协议兼容性强 VFBOX支持Modbus RTU/TCP、MQTT等多种协议,适配各类传感器和云平台
部署灵活 支持RS485串口、以太网、4G无线多种连接方式
配置简单 通过VFBOX Studio图形化配置,无需编程
稳定可靠 工业级设计,支持长时间无故障运行
扩展性强 可扩展至多台传感器、多种数据类型、多个云平台

8.3 后续扩展建议

  1. 多传感器扩展:通过RS485总线级联多台温湿度传感器,网关最多支持128/256/512/1024点位
  2. 边缘计算:使用"用户标签"功能,在网关端实现数据滤波、报警阈值判断、单位换算等
  3. 历史存储:启用SQLite/SD卡功能,本地保存历史数据,防止网络中断数据丢失
  4. 多平台上报:同时配置多个MQTT Client(最多5个),实现一采多发
  5. 告警联动:结合用户标签的IF条件运算,实现本地声光报警或远程告警推送

posted @ 2026-04-29 14:17  vfbox-2212  阅读(10)  评论(0)    收藏  举报