机柜式双网口 RS485 温湿度变送器接入 Zabbix 完整教程(含 Modbus 点位)

标签:Zabbix Modbus-RTU RS485 动环监控 机房温湿度 机柜传感器 适用版本:Zabbix 6.0 / 7.0 LTS,Zabbix Agent2;Honsor 机柜式双网口 RS485 温湿度变送器(H-THDRJ45) 场景:服务器机柜、档案库房、弱电间动环环境采集,双 RJ45 手拉手级联组网

一、前言

在机房、机柜动环监控项目里,很多工程师会选双网口 RS485 温湿度变送器 ,它的优势是用 RJ45 网线代替传统端子 485 线,支持手拉手级联布线,施工更方便。 很多人踩坑点:双网口只是 RS485 总线转接,不是 TCP 网口设备,协议依然是 Modbus-RTU,不能直接当成 Modbus TCP 设备接入 Zabbix。

本文提供一套可直接落地的接入方案,包含:硬件接线、Modbus 点位表、Agent2 配置、Zabbix 模板、监控项、触发器、调试命令、常见排错。

二、设备说明与通讯参数

2.1 设备特点

  • 接口:双 RJ45(内部 A/B 对应 RS485 总线,手拉手级联)
  • 协议:Modbus-RTU,功能码 03(读保持寄存器)
  • 默认参数:波特率 9600,8N1,从站地址 SlaveID=1
  • 供电:DC9~24V
  • 数据精度:温度、湿度放大 10 倍上传,读取后除以 10 得到真实值

重点提醒:双 RJ45 是485 总线拓展口,不是以太网 IP 口,不能 ping,不能直接 TCP 连接;需要 USB 转 RS485 或者 Modbus RTU 转 TCP 网关接入 Zabbix。

2.2 Modbus 点位寄存器表(本文配套使用)

⚠️ 不同厂家寄存器有差异,正式项目以设备说明书为准,本表为 Honsor H-THDRJ45 标准点位

寄存器地址(十六进制) 寄存器地址(十进制) 名称 数据类型 读写 换算公式 单位
0x0000 0 温度 INT16 只读 value / 10 ℃
0x0001 1 相对湿度 UINT16 只读 value / 10 %RH
0x0002 2 设备从站地址 UINT16 可写 - -
0x0003 3 波特率 UINT16 可写 1=2400,2=4800,3=9600 bps

示例:读到温度寄存器值 255 → 255 / 10 = 25.5℃;读到 18 → 1.8℃;负数采用补码存储

三、两种接入方案选型

方案 A(推荐,多传感器总线):USB 转 RS485 接 Zabbix Agent2 服务器 ,本地 rtu 串口读取 方案 B(远距离、多机柜分散):Modbus RTU 转 TCP 网关,Zabbix 通过 tcp://网关 IP:端口读取(RTU over TCP)

本文以方案 A 为主进行演示,方案 B 仅修改 endpoint 地址即可。

四、前置准备

  1. Zabbix Server + Zabbix Agent2(必须 Agent2,老 agent 不支持 modbus 插件)
  2. 机柜式双网口 RS485 温湿度变送器
  3. USB 转 RS485 模块(带隔离、120Ω 终端电阻更佳)
  4. 网线(RJ45 手拉手串联变送器,A-A,B-B)
  5. 调试工具:modpoll、zabbix_get

五、硬件接线与总线规范

  1. 总线拓扑:手拉手串联,禁止星型布线
  2. RJ45 线序:总线 A、B 对应变送器内部 485 差分信号,网线只使用 A/B 两根差分,其余线不用
  3. 总线首尾两端增加 120Ω 终端电阻(总线大于 20 米、设备≥3 台强烈建议)
  4. A 接 A、B 接 B,共地 GND,避免地环路干扰
  5. 上电前确认:所有变送器 SlaveID 不能重复,同一总线地址唯一

测试:先用 modpoll 命令在服务器串口上读取数据,确认通讯正常,再进 Zabbix 配置,避免在 Zabbix 里反复排查硬件问题。

modpoll 测试命令示例(串口 RTU)

复制代码
# /dev/ttyUSB0 为 usb 转 485 串口,9600 波特率,从站 1,读取起始地址 0,2 个寄存器(温湿度)
modpoll -m rtu -a 1 -r 0 -c 2 -b 9600 -p none /dev/ttyUSB0

六、Zabbix Agent2 Modbus 插件配置

路径:/etc/zabbix/zabbix_agent2.d/plugins.d/modbus.conf

复制代码
Plugins.Modbus.Timeout=3
Plugins.Modbus.Sessions.thsensor.Endpoint=rtu:///dev/ttyUSB0:9600:8n1
  • rtu://串口:波特率:数据位校验停止位
  • Windows 环境:rtu://COM3:9600:8n1
  • 如果是 RTU over TCP 网关:tcp://192.168.1.100:502

保存后重启 agent2

复制代码
systemctl restart zabbix-agent2
systemctl status zabbix-agent2

zabbix_get 预读取测试(成功再配置模板)

复制代码
# 读取温度,slave=1,功能码 3,地址 0,int16
zabbix_get -s 127.0.0.1 -k 'modbus.get[thsensor,1,3,0,1,int16,1,be,0]'
# 读取湿度,slave=1,功能码 3,地址 1,uint16
zabbix_get -s 127.0.0.1 -k 'modbus.get[thsensor,1,3,1,1,uint16,1,be,0]'

modbus.get 完整参数:modbus.get[session,slaveid,function,address,count,type,byteorder,wordorder,offset]

七、Zabbix Web 端模板创建(核心步骤)

  1. 【配置】→【模板】→【创建模板】。模板名称:Template_Honsor_机柜双网口RS485温湿度变送器;模板组:自定义 → 机房动环传感器。

  2. 添加监控项(3 个),配置如下表:

    监控项名称 键值 key 信息类型 单位 更新间隔
    机柜温度 modbus.get[thsensor,1,3,0,1,int16,1,be,0] 浮点数 ℃ 60s
    机柜湿度 modbus.get[thsensor,1,3,1,1,uint16,1,be,0] 浮点数 %RH 60s
    变送器在线状态 自定义 ping/agent 可用性 数字 - 30s

注意:原始读到的值是放大 10 倍的整数,必须配置预处理。预处理规则(温度、湿度监控项统一配置):

  • 步骤 1:自定义乘数 0.1
  • 步骤 2:保留 1 位小数
  1. 添加触发器(示例阈值,可自行修改):
    • 触发器 1:机柜温度过高。表达式:last(/Template_Honsor_机柜双网口RS485温湿度变送器/机柜温度) > 35;严重性:警告
    • 触发器 2:机柜湿度过高。表达式:last(/Template_Honsor_机柜双网口RS485温湿度变送器/机柜湿度) > 70;严重性:警告
    • 触发器 3:变送器离线。表达式:nodata(/Template_Honsor_机柜双网口RS485温湿度变送器/机柜温度,300) = 1;严重性:一般严重
  2. 添加图形:新建图形,勾选温度、湿度两个监控项,Y 轴分别设置,方便看板展示;后续可以加入 Dashboard 动环大屏。
  3. 主机绑定:新建主机,代理选择对应 Agent2,链接上面这个模板,等待采集。

八、RTU over TCP 网关版本修改说明(方案 B)

如果你使用 Modbus 网关,endpoint 改成 tcp 模式,modbus.conf 会话改为:

复制代码
Plugins.Modbus.Sessions.thsensor.Endpoint=tcp://192.168.1.100:502

监控项 key 完全不变,网关负责 TCP 转 485 总线,适合跨机柜、远距离部署场景。

九、常见故障排查(踩坑汇总)

  1. 取不到数据,zabbix_get 返回空
  • 优先用 modpoll 单独测试串口/网关,判断是硬件还是 Zabbix 配置问题
  • 检查:波特率、从站 ID、寄存器地址是否和说明书一致;A/B 有没有接反
  • 总线设备多,忘记加终端电阻,信号衰减,偶发丢包
  1. 数值明显偏大,比如 2550℃
  • 忘记配置预处理 ×0.1,没有除以 10,是高频错误
  1. 负数温度异常(零下温度乱码)
  • 温度寄存器是 INT16 有符号类型,不能用 uint16,key 里 type 改成 int16
  1. 双网口误以为是网口设备,直接 ping 不通
  • 再次强调:双 RJ45 只是 RS485 总线手拉手拓展,不是以太网设备,没有 IP
  1. Agent2 不识别 modbus 插件
  • 确认安装 zabbix-agent2,老版 zabbix_agent 不支持 modbus.get;看 agent 日志 /var/log/zabbix/zabbix_agent2.log

十、扩展:多台变送器总线部署

一条 485 总线可以串联多台本款双网口变送器,每台 SlaveID 唯一。 在 Zabbix 里:

  • 复用同一个 modbus session 会话
  • 复制监控项,只修改 key 里面的 slaveid,分别创建主机/模板宏区分每一台机柜传感器

适合一排机柜串联采集,节省布线成本。

十一、结束语

这款双网口 RS485 温湿度变送器非常适合机房机柜密集部署,网线手拉手布线比传统 485 端子线整洁很多;但接入 Zabbix 的核心是区分【物理层 RJ45】和【通讯层 Modbus-RTU】,很多新手会把它当成网口传感器,导致接入失败。 本教程点位、key、预处理、触发器可以直接复制使用,替换寄存器地址即可适配其他品牌同类型 485 温湿度变送器。

相关推荐
注塑机数据采集联网5 小时前
注塑机生产管控MES系统应用
大数据·运维·服务器·人工智能·物联网
悟天特斯6 小时前
楼宇自控的进阶:从「自动控制」到「自学习优化」
人工智能·物联网
华普微HOPERF8 小时前
智联万物,芯启未来,华普微邀您共赴2026年韩国AIoT国际展览会
物联网·aiot·展会活动·市场动态
辛迪聊物业数字化9 小时前
物业费收缴率从68%提升到97%落地复盘:中小物业收费系统选型避坑指南
人工智能·嵌入式硬件·物联网·网络协议·系统架构
探鸽小钛9 小时前
4G 终端 ES8311 - 挂断一次,下次说话就没声了之解决办法
物联网·音视频·嵌入式·esp32·webrtc
SZYSK9 小时前
一套人员主数据,三套事务:通行、消费、人证比对如何分事件类型
物联网·算法·harmonyos
乐讯通物联网服务商10 小时前
联网版肺功能检测仪:医疗设备远程数据传输的技术架构
物联网·物联网卡·肺功能检测仪
TDengine (老段)11 小时前
TDengine IDMP 十大亮点功能(一)
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
夏虫不可与之言冰11 小时前
RMT 与 WS2812 灯带:可寻址 RGB 全彩控制
c语言·c++·单片机·物联网·visual studio