网关实现温湿度传感器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-AA+)



• B   ───►温湿度传感器RS485-BA-/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(湿度)

  1. 点击"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条件运算,实现本地声光报警或远程告警推送

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分