示例54:Modbus 传感器设备配置
大约 3 分钟
示例54:Modbus 传感器设备配置
场景概述
通过 Modbus RTU 协议连接外部传感器设备(如温湿度变送器、空气质量传感器、土壤传感器等),实现工业级数据采集和远程监控。
适用设备
| 设备类型 | 典型型号 | 测量参数 |
|---|---|---|
| 温湿度变送器 | SHT20/SHT30 RS485 | 温度、湿度 |
| 空气质量传感器 | PM2.5/CO2 RS485 | PM2.5、CO2 浓度 |
| 土壤传感器 | 土壤三合一 RS485 | 温度、湿度、电导率 |
| 光照传感器 | BH1750 RS485 | 光照强度(Lux) |
硬件接线
RS485 接口连接
| ESP32 引脚 | TTL转RS485模块 | 说明 |
|---|---|---|
| GPIO 16 (TX) | TXD | 串口发送 |
| GPIO 17 (RX) | RXD | 串口接收 |
| GPIO 4(可选) | DE/RE | 方向控制(半双工) |
| 3.3V | VCC | 电源 |
| GND | GND | 地 |
RS485 总线连接:
ESP32 ──── TTL转RS485 ──── A/B总线 ──┬── 传感器1(地址1)
├── 传感器2(地址2)
└── 传感器3(地址3)RS485 总线末端建议接 120Ω 终端电阻。
数据上报格式
各传感器数据独立上报:
[
{"id": "modbus_temp_humi", "value": "temperature:25.3,humidity:60.5"},
{"id": "modbus_air", "value": "pm25:35,co2:450"},
{"id": "modbus_soil", "value": "soil_temp:22.1,soil_moisture:45.3,soil_ec:120"}
]与外设执行联动
场晦1:温度超限联动风扇(轮询触发)
功能:温度超过30°C时打开风扇继电器
Web界面配置步骤
步骤1:确保已配置外设
- Modbus温湿度:
modbus_temp_humi - 风扇继电器:
relay_fan(GPIO输出)
步骤2:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 填写基础配置:
- 规则名称:
高温开风扇 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤3:配置触发器(轮询触发)
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 轮询触发 定时检测条件 目标外设 选择 modbus_temp_humiModbus温湿度 数据字段 temperature温度字段 运算符 >大于 阈值 3030°C 轮询间隔 50005秒
步骤4:配置动作
点击 添加动作 按钮
填写:
- 动作类型:选择 高电平
- 目标外设:选择
relay_fan
点击 保存 按钮
场晦2:CO2超标报警(轮询触发)
功能:CO2浓度超过1000ppm时触发蜂鸣器报警
配置步骤:
- 创建规则,名称:
CO2超标报警 - 触发器配置:
- 触发类型:选择 轮询触发
- 目标外设:选择
modbus_air - 数据字段:
co2 - 运算符:
> - 阈值:
1000 - 轮询间隔:
10000
- 动作配置:
- 动作类型:选择 高电平
- 目标外设:选择
buzzer1(需提前配置蜂鸣器)
- 点击 保存
调试技巧
- 地址扫描:先用系统内置的 Modbus 扫描功能确认从站地址
- 波特率匹配:确保所有设备使用相同波特率(常见 9600/4800)
- 寄存器确认:查阅设备手册确认寄存器起始地址和数据格式
- 总线隔离:调试时建议逐个连接设备,确认通信正常后再全部接入
注意事项
- 总线长度:RS485 总线最长 1200m,但建议实际不超过 100m
- 设备数量:单总线最多 32 个从站,超出需加中继器
- 轮询冲突:多个设备的 interval 建议错开,避免同时请求
- 数据格式:不同厂家寄存器格式可能不同(大端/小端、整数/浮点),需根据手册调整 scale
- 供电隔离:工业环境建议 RS485 接口做电气隔离,避免地回路干扰
