Skip to content

示例48:Modbus 土壤传感器 ​

接线与主站 ​

先在外设配置创建UART(type1),配置实际TX/RX、波特率、校验位和停止位。通过3.3V兼容RS485收发器接现场A/B,按实际收发器选择DE/RE;A/B不能直连GPIO。再在通信协议选择Modbus RTU主站、该UART及JSON传输。配置前开启开发模式,参数需对照设备手册;示例保持禁用。

采集任务 ​

下面是放入 protocol.json.modbusRtu.master.tasks 的单个任务,不是UART params。零基地址0起连续寄存器、倍率和字段顺序仅为教学假设;必须按确切型号修改,不能当成所有土壤传感器的标准表。

json
{
  "name": "土壤示例",
  "enabled": false,
  "slaveAddress": 1,
  "functionCode": 3,
  "startAddress": 0,
  "quantity": 3,
  "pollInterval": 10,
  "mappings": [
    {
      "regOffset": 0,
      "dataType": 1,
      "wordOrder": 0,
      "scaleFactor": 0.1,
      "decimalPlaces": 1,
      "sensorId": "soil_temp",
      "unit": "C"
    },
    {
      "regOffset": 1,
      "dataType": 0,
      "wordOrder": 0,
      "scaleFactor": 0.1,
      "decimalPlaces": 1,
      "sensorId": "soil_humi",
      "unit": "%"
    },
    {
      "regOffset": 2,
      "dataType": 0,
      "wordOrder": 0,
      "scaleFactor": 1,
      "decimalPlaces": 0,
      "sensorId": "soil_ec",
      "unit": "uS/cm"
    }
  ]
}

UART中没有protocol、dataMap、slaveId的这套内嵌解析结构。按实际设备确认从站地址1~247、FC03/04、数据类型、寄存器数量、字序、倍率和单位,再保存协议并显式启用任务。

数据与联动 ​

映射以sensorId分别形成工程量,例如soil_temp和soil_humi,不是一个逗号拼接的对象字符串。条件规则从页面的数据源选择器选择对应字段,核对显示单位与新鲜度。超时、离线和过期不能解释成0。

先用指示灯验证条件;本例不自动操作灌溉阀或加热器,也不提供60秒阻塞脚本。长持续输出需独立停止规则、超时和现场保护。采样、平台收件及实物动作分别验收。

蜂信物联 | fastbee.cn