Skip to content

DYP-A17 超声波液位传感器接入指南

模型清单

可使用下列名称或 ID 在 ThinkLink 中搜索对应模型。

模型类型名称id_name平台模型 ID
RPC[A17 GET] 22112dyp_a17_get_22112115860154150187009
RPC[A17 SET] 22112dyp_a17_set_22112115860154150187008
RPC[A17 SET ALARM] 22112dyp_a17_set_alarm_22112115861829380370432
RPC[A17 ACT] 22112dyp_a17_set_filter_22112115860154150187010
TemplateDYP-A17115862917407993856
Thing Model[A17]dyp_a17_22112115859351784026112
Thing Model[DYP-22112-A17资产] 区域聚合dyp_a17_asset_22112119677174411063307
Parameter Thing Model[A17-PARA]dyp_a17_para_22112115859352627081216
Trigger[A17] Level Alarm Triggerdyp_a17_trigger_22112115861828692504576

1. 传感器简介

项目内容
设备名称A17 超声波液位(测距)传感器
型号DYP-A17-V1.0(RS485 受控输出型号 DYP-A17NY4W-V1.0)
厂商深圳市电应普科技有限公司(DYP / Best Sensor)
协议类型Modbus-RTU(RS-485)
接入方式EdgeBus DTU(KC21 电池版),LoRaWAN Class A
业务代码22112
模板名称DYP-A17

A17 采用超声波反射式测距技术,非接触测量探头到液面的距离(量程 25cm~1000cm),通过 KC21 电池版 DTU 以 Modbus-RTU 接入 ThinkLink,用于污水井/下水道液位监测,并提供高液位/溢出、低液位、传感器读数故障三类告警。

⚠️ 液位语义:A17 测量的是「探头到液面的距离」,液位越高,距离越小。因此高液位告警使用较小的距离阈值,低液位告警使用较大的距离阈值。

2. 产品特点

  1. 智能信号处理,盲区小,量程 25cm~1000cm,最小误差 < 1cm。
  2. 非接触测量,探头不接触污水,避免腐蚀、缠绕、结垢。
  3. 腔体防积水工艺,有效缓解探头凝露(污水井湿气重的关键)。
  4. 板载温度补偿(-15℃~60℃),自动修正温度偏差。
  5. 低功耗设计:静态电流 < 10µA、测量状态 < 15mA,配合电池版 DTU + COV 上报长期续航。
  6. 台阶过滤等级、探头激励强度、盲区判断值可调,适应井壁回波/井面波动等复杂工况。
  7. 静电防护设计,符合 IEC61000-4-2 标准。

3. 适用范围

  • 污水井 / 下水道液位监测(本方案)
  • 市政排水管网 / 雨水井内涝预警
  • 集水坑 / 泵站液位监测

4. 采集器信息

4.1 硬件信息

项目内容
DTU 型号KC21(电池版)
接口类型RS-485
供电方式电池供电(已确认),LoRaWAN Class A
设备模板MT-EB-BATTERY
心跳周期出厂/绑定默认短心跳(900s,保证调试入网);配置完成后经 SET RPC 设为 8h(28800s)省电
传感器工作电压DC 3.3~5.0V(静态 < 10µA,测量 < 15mA)

⚠️ 供电兼容性提示(部署前现场核对):A17 传感器本体工作电压为 DC 3.3~5.0V。KC21 电池版 DTU 给传感器供电的输出电压须与之匹配(部分 KC21 电池版输出可选 3.3V/5V)。同类电池版超声波液位传感器已有成功接入先例,但部署前请核对 KC21 实际供电输出电压,避免供电不匹配导致传感器无法工作。

4.2 接线信息

引线标注功能接 KC21(电池版)
VCC3.3~5V 电源KC21 VCC 输出(核对电压)
GND电源地KC21 GND
RXRS485-B(反相端)KC21 RS485-B
TXRS485-A(同相端)KC21 RS485-A

注意:A17 的 ③RX = 485-B、④TX = 485-A,A/B 对应关系勿接反。

5. 数据采集

通过 Modbus-RTU(FC03 读保持寄存器,CRC-16,默认地址 0x01,9600/8/N/1,高字节在前)读取以下数据点:

  • 0x0100 处理值距离(滤波后稳定值)→ 液位主遥测,告警判据
  • 0x0101 实时值距离(单次实时距离,响应 130ms)→ COV 触发源
  • 0x0102 环境温度

5.1 寄存器定义

寄存器地址项目数据类型读写说明
0x0100处理值距离uint16BE(mm)R多次测距滤波后稳定值,响应 0.9~2.5s(本方案采集,告警判据——滤波稳定)
0x0101实时值距离uint16BE(mm)R单次实时距离,响应 130ms(本方案采集,COV 触发源——最快、溢出早期预警;噪声较大,不用于告警)
0x0102环境温度int16BE(0.1℃)R模组内部温度,分辨率 0.5℃(本方案采集
0x0200从机地址uint16BER/W0x01~0xFE,默认 0x01
0x0201波特率uint16BER/W默认 0x03=9600
0x0210盲区判断值uint16BE(cm)R/W25~100,默认 25;影响盲区内稳定性
0x0211台阶过滤等级uint16BER/W0~5,默认 4;越高过滤越强(井面波动/凝露场景需调)
0x0212探头激励强度uint16BER/W5~15,默认 10
0x0213小角度模式uint16BER/W0 常规 / 1 小角度,默认 0

5.2 通讯报文示例

读处理值距离:主 01 03 01 00 00 01 85 F6 → 从 01 03 02 02 F2 38 A1(0x02F2=754mm)
读温度:      主 01 03 01 02 00 01 24 36 → 从 01 03 02 01 2C B8 09(0x012C=30.0℃)
写台阶过滤:  主 01 06 02 11 00 03 98 76 → 从 01 06 02 11 00 03 98 76(台阶过滤=3级)

6. EdgeBus 模型

6.1 EB 配置参数

参数
namedyp-a17
port22
version0x87
dataType0x12
upPeriodIndex70(上传周期 app_70)
periodIndex74(采集周期 app_74)
indexAPP150(Modbus 地址 app_150)
COV开启,distance_realtime(实时值距离 0x0101,covAppIndex 110 / cov_distance)
串口9600 / 8 / NONE / 1
Batterytrue(Class A)
BzType / BzVersion22112 / 2

6.2 EB 代码

typescript
import { Buffer } from "buffer";
import { buildOtaFile } from "@EBSDK/run";
import { EBModel } from "@EBSDK/EBCompiler/EBModel/EBModel";
import { EventInfoItem } from "@EBSDK/EBCompiler/plugins/EBHelper";
import type { UserConfUPItem } from "@EBSDK/EBCompiler/plugins/EBHelper";
import { CheckbitEnum, getOtaConfig } from "@EBSDK/otaConfig";

// DYP-A17 超声波液位(测距)传感器 · Modbus-RTU FC03
//   0x0100 处理值距离 (uint16BE, mm)  ← 告警判据(滤波稳定),每帧上报
//   0x0101 实时值距离 (uint16BE, mm)  ← COV 上报触发源(130ms 响应,溢出早预警),阈值 app_110(cov_distance)
//   0x0102 环境温度   (int16BE, 0.1℃)
// 采集周期 app_74 / 上传周期 app_70 / Modbus 地址 app_150
// 2026-06-07 amend:加回 0x0101 实时值并把 COV 由 0x0100 移到 0x0101;BzVersion 1→2。
const eventInfo: UserConfUPItem[] = [
  {
    name: "dyp-a17", port: 22, version: "0x87", dataType: "0x12", upPeriodIndex: 70,
    quInfo: [
      {
        protocol: "modbus", addr: "0x01", code: "0x03", periodIndex: 74,
        indexAPP: 150, indexCMD: 0, copySize: 1,
        listVal: [
          { start: "0x0100", end: "0x0100" },
          { start: "0x0101", end: "0x0101", covType: "Uint16BE", covAppIndex: 110 },
          { start: "0x0102", end: "0x0102" }
        ]
      }
    ]
  }
];

let otaConfig = getOtaConfig({
  BaudRate: 9600,
  StopBits: 1,
  DataBits: 8,
  Checkbit: CheckbitEnum.NONE,
  Battery: true, // 电池供电,Class A
  ConfirmDuty: 60,
  BzType: 22112,
  BzVersion: 2
});

const MODBUS_TT = (ebModel: EBModel) => {
  for (let i = 0; i < eventInfo.length; i++) {
    let event = new EventInfoItem(eventInfo[i]);
    event.upEventSetup();
    event.eventInstall();
  }
  return JSON.stringify(ebModel, null, 2);
};
buildOtaFile(import.meta.url, otaConfig, MODBUS_TT);

6.3 说明

  • 1 个查询事件:FC03 读寄存器 0x0100(处理值距离)、0x0101(实时值距离)、0x0102(温度)三个数据点。
  • COV 上报:在 distance_realtime(实时值距离 0x0101)启用 COV,阈值取自 app_110(cov_distance);实时距离响应最快(130ms),溢出早期预警更及时,液位变化 ≥ 阈值即时上报,兼顾电池省电。实时值噪声较大,井面波动剧烈时可适当调高阈值;告警仍以稳定的处理值距离(0x0100)为判据
  • 采集/上传周期分离:采集周期 app_74,上传周期 app_70(COV 上报窗口上限)。
  • 上行帧布局:标准 DTU 6 字节头 + distance(index 6-7,uint16BE)+ distance_realtime(index 8-9,uint16BE)+ temperature(index 10-11,int16BE),dataLen = 12。
  • Modbus 地址动态注入:app_150(indexAPP)。

7. 物模型

7.1 物模型基本信息

类型显示名id Name
遥测物模型[A17]dyp_a17_22112
参数物模型[A17-PARA]dyp_a17_para_22112

7.2 上行帧结构

frameInfo:port 22,dataLen 12,rssi true,battery 4,tagList [{index:0,tag:0x87},{index:1,tag:0x12}]

index字段类型单位系数
6distanceuint16BEmm1
8distance_realtimeuint16BEmm1
10temperatureint16BE0.1

7.3 物模型脚本

遥测物模型 dyp_a17_22112.js、参数物模型 dyp_a17_para_22112.jsthinklink/thingModel/

8. 第三方平台数据订阅

8.1 MQTT Topic

/v32/{Organization Account}/tkl/up/telemetry/{eui}

8.2 上报示例数据

json
{
    "eui": "0102030405060708",
    "active_time": "2026-06-06T08:35:48.000Z",
    "thingModelId": "115859351784026112",
    "thingModelIdName": "dyp_a17_22112",
    "telemetry_data": {
        "snr": 12.5,
        "rssi": -68,
        "battery": 3.55,
        "distance": 754,
        "distance_realtime": 752,
        "temperature": 23.5
    }
}

9. RPC

9.1 RPC 名称

类型显示名id Name
参数设置[A17 SET] 22112dyp_a17_set_22112
参数读取[A17 GET] 22112dyp_a17_get_22112
设备寄存器调整(变体)[A17 ACT] 22112dyp_a17_set_filter_22112
告警阈值配置[A17 SET ALARM] 22112dyp_a17_set_alarm_22112

9.2 参数定义

参数槽位/寄存器名称单位类型默认说明
period_upapp_70上传周期suint32LE3600数据上报云端间隔(COV 上报窗口上限)
period_readapp_74采集周期suint32LE300DTU 轮询传感器间隔
cov_distanceapp_110COV 距离阈值mmint16BE50实时距离(0x0101)变化 ≥ 该值即时上报;实时值噪声较大,井面波动剧烈时可调高
period_heartapp_40心跳周期suint32LE28800电池省电默认 8h(出厂短心跳仅用于调试)
addr_modbusapp_150Modbus 地址uint81DTU 查询目标地址
step_filter0x0211台阶过滤等级uint164透明 FC06 写设备寄存器(井面凝露/波动时调高)
blind_zone0x0210盲区判断值cmuint1625透明 FC06 写设备寄存器

9.3 RPC 说明

  • dyp_a17_set_22112:一次下发上传/采集周期、COV 阈值、Modbus 地址、心跳周期(PTL-D01 port 214)。电池设备心跳保持 ≥1h(默认 8h)省电。
  • dyp_a17_get_22112:读取上述 DTU app 参数当前值。
  • dyp_a17_set_filter_22112(变体):下拉选「台阶过滤等级 / 盲区判断值」,透明通道 FC06 写设备寄存器,echo 校验后回写 shared_attrs。每次仅调整一项,当前值自动回填。
  • dyp_a17_set_alarm_22112:按井体配置告警阈值(写 server_attrs.alarm_config,供告警触发器读取)。

RPC 完整脚本见 thinklink/rpc/

10. 告警

告警触发器 dyp_a17_trigger_22112([A17] Level Alarm Trigger)在每帧遥测后评估,阈值取自 server_attrs.alarm_config(经 dyp_a17_set_alarm_22112 RPC 按井体配置;未配置时使用安全默认)。

告警条件(距离语义)默认阈值级别
高液位 / 溢出distance ≤ high_level_dist(液面逼近探头)300mmhigh
低液位distance ≥ low_level_dist(井近空)8000mmmid
传感器读数故障distance 异常(< 250mm 盲区 / ≥ 10000mm 超量程 / = 0)mid
  • 距离阈值带 50mm 迟滞死区,防止阈值附近震荡误报。
  • 使用前先调用 dyp_a17_set_alarm_22112 配置阈值,并在设备分组中设置通知群。
  • 失联(无数据上报)由平台离线告警机制处理(触发器仅在上行时评估,无法检测「无上行」)。

11. 模板选择

在 ThinkLink 平台中按以下方式查找模板:

  • 模板名称:DYP-A17
  • 业务代码:22112(超声波液位传感器)

12. 补充说明

  • 厂家默认:从机地址 0x01,波特率 9600,盲区 25cm,台阶过滤 4 级,探头激励 10。
  • 修改从机地址:FC06 写 0x0200;修改波特率:FC06 写 0x0201(重启生效)。
  • 污水井湿气重、温差大时探头易凝露积水,影响超声波信号;A17 防积水工艺可缓解,必要时通过 dyp_a17_set_filter_22112 调高台阶过滤等级。