Skip to content

传感器特点

模型清单

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

模型类型名称id_name平台模型 ID
RPC[DYP A02 GET] paradyp_a02_get85858625238601733
RPC[DYP A02 SET] paradyp_a02_set85856730826674181
TemplateDYP-A02-2.085852682421538821
Thing Model[DYP-A02-2.0]dyp_a02_2130585851937521537029
Thing Model[DYP-21305-DYP-A02资产] 区域聚合dyp_a02_asset_21305119677174411063298

DYP-A02-V2.0 系列,是采用封闭式分体防水探头,设计而成的一款高性能测距模组。具备一定防尘防水等级,适用于潮湿、恶劣的测量场合。3cm 较小盲区适用不同的检测条件,是一款操作简单的高性能、高可靠性商用级功能性模组。

产品特点

  • 3cm 小盲区
  • 3.3~5V 电源供电(485 输出为 5~24V)
  • 五种输出方式可选
  • 封闭式分体防水探头
  • 工作温度:-15℃ 到 +60℃
  • 存储温度:-25℃ 到 +80℃
  • 低功耗设计,待机电流 <5uA
  • 静电防护设计,连接引线加入静电防护器件,符合 IEC61000-4-2 标准

产品优点

  • 盲区小
  • 抗干扰强
  • 数据输出稳定可靠
  • 功耗低
  • 响应时间快
  • 抗静电强
  • 工作温度宽
  • 测量精度高

适用范围

  • 水平测距
  • 停车管理系统
  • 机器人避障、自动控制
  • 物体接近与存在察觉

对接信息

硬件信息

  • 产品资料DYP-RD-产品规格书(DYP-A02-V2.0)-220912-A0.pdf
  • 设备型号:DYP-A02-V2.0,RS-485 接口版本
  • 通信协议:Modbus-RTU
  • 默认 RS-485 地址0x01,可通过命令修改
  • 波特率配置:默认 9600,8N1,可通过命令修改
  • 供电方式:5~24V
  • 功耗:待机电流 5uA,平均工作电流 ≤15mA,峰值工作电流 <75mA
  • 预热时间:5ms
  • 接线信息:共 4 根线 — VCC、GND、RS-485A(白色)、RS-485B(黄色)
  • 测试 DTU:采用 KC21(A1 版本),对 DYP-A02-V2.0 提供 15V 电源,RS-485 接口

数据采集

需要采集:0x0100 距离值 和 0x0102 温度值。

状态寄存器地址寄存器功能数据类型说明
只读0x0100处理值无符号整型,16 位收到指令后启动测距,经算法处理后输出距离值,单位:mm,响应时间约 520ms
只读0x0101实时值无符号整型,16 位模组收到指令后启动测距,直接输出实时距离值,单位:mm,响应时间约 120ms
只读0x0102温度有符号整型,16 位单位:0.1℃,分辨率:0.5℃,响应时间约 120ms
读写0x0200从机地址无符号整型,16 位范围:0x01 ~ 0xFE,默认值 0x01,0xFF 为广播地址
读写0x0201波特率无符号整型,16 位设置后立即生效。寄存器值对应波特率: 0x0001: 2400 bps 0x0002: 4800 bps 0x0003: 9600 bps 0x0004: 14400 bps 0x0005: 19200 bps 0x0006: 38400 bps 0x0007: 57600 bps 0x0008: 76800 bps 0x0009: 115200 bps

模型

EB 代码

通过 EB Helper 进行配置,参数如下:

配置项
bzType21305
Batterytrue
上传周期app 地址 70
采集周期app 地址 74
距离 COVapp 地址 110
上行协议port=22,version=0x83,dataType=0x37
应用层数据采集 0x0100 距离值和 0x0102 温度值,总字节数为 10

编译后下载到 KC21 或 KC11 等支持 EdgeBus 的硬件中。

typescript
import { Buffer } from "buffer";
import { buildOtaFile } from "@EBSDK/run";
import {
    ActionAfertExpr, CalcData,
    CrcMode,
    CvtRule,
    EBBuffer,
    EBModel,
    ExprCondition,
    LoraUpEvent,
    QueryEvent, SetUpCovDataType,
    UserConfUPItem,EventInfoItem
} from "@EBSDK/EBCompiler/all_variable";
import { CheckbitEnum, getOtaConfig, HwTypeEnum, UpgrdTypeEnum } from "@EBSDK/otaConfig";
////////////////////////////////////////////////////////////////////////////////////////
const eventInfo:UserConfUPItem[]=[
    {
        name:"dyp-A02",port:21,version:"0x85",dataType:"0x02",upPeriodIndex:70,
        quInfo:[
            {
                protocol:"modbus",addr:"0x01",code:"0x03",periodIndex:74,isLast:false,
                listVal:[
                    { start: "0x0100", end: "0x0100",covType:"Uint16BE",covAppIndex:110},
                    { start: "0x0102", end: "0x0102"}
                ]
            }
        ]
    }
]
let otaConfig = getOtaConfig({
    UpgrdType: UpgrdTypeEnum.GW,
    SwVersion:31,
    HwType: HwTypeEnum.OM822, // 假设使用400MHz频段,请根据实际情况修改
    BaudRate: 9600,
    StopBits: 1,
    DataBits: 8,
    Checkbit: CheckbitEnum.NONE,
    Battery: false, // 非电池供电,Class C模式
    ConfirmDuty: 60,
    BzType: 21305,
    BzVersion: 11
})
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)

物模型

上行帧结构

  • 端口号22
  • 帧格式:采用 EBHelper 标准帧结构
字段名偏移长度 (Bytes)含义说明
version01协议版本号,固定为 0x85
dataType11固定为 0x02
covStatus21保留字节(供内部 COV 处理)
status31查询事件状态
battery41电池电量
addr51子设备地址
distance62大端格式,Uint16BE,单位:mm,测量距离
temperature82大端格式,Int16BE,单位:0.1℃,温度

第三方平台数据订阅

MQTT Topic

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

上报示例数据

json
{
    "eui": "6353012af10a9331",
    "active_time": "2026-02-05T08:35:48.000Z",
    "thingModelId": "85851937521537029",
    "thingModelIdName": "dyp_a02_21305",
    "telemetry_data": {
        "snr": 13.5,
        "rssi": -51,
        "battery": 3.37,
        "distance": 1,
        "temperature": 23.3
    }
}

协议说明文档


RPC

设置参数

RPC 名称dyp_a02_set

参数名App 地址单位说明
period_up70上行周期
period_read74读取周期
cov_distance110mm距离 COV 阈值
javascript
let classMode = (device && device.shared_attrs && device.shared_attrs.class_mode) || "ClassA";
let sleepMs = classMode === "ClassA" ? 500 : 5000;
let paraDef = {
  app_70: {
    name: "period_up", field_name: "period_up", unit: "S", type: "uint32le", coefficient: 1, decimal: 0,
    optionList: {}
  },
  app_74: {
    name: "period_read", field_name: "period_read", unit: "S", type: "uint32le", coefficient: 1, decimal: 0,
    optionList: {}
  },
  app_110: {
    name: "cov_distance", field_name: "cov_distance", unit: "mm", type: "int16BE", coefficient: 1, decimal: 0,
    optionList: {}
  }
}
let frames = RPCHelper.buildFrame({
  paraDef: paraDef,
  params: params
});
let redoBuffer = RPCHelper.redo()
let dnBuffer = Buffer.alloc(frames.writeBuffer.length + frames.readBuffer.length + redoBuffer.length);
frames.writeBuffer.copy(dnBuffer, 0)
frames.readBuffer.copy(dnBuffer, frames.writeBuffer.length)
redoBuffer.copy(dnBuffer, frames.writeBuffer.length + frames.readBuffer.length);
logger.info("set dyp-a02 para")
console.log(dnBuffer.toString("hex"))
let msg = RPCHelper.makeMSG({
  msgType: Utils.msgType.paras,
  device: device,
  dnBuffer: dnBuffer,
  sleepTime: sleepMs,
})
return [msg]

读取参数

读取到的参数可在共享属性中查看。

javascript
let classMode = (device && device.shared_attrs && device.shared_attrs.class_mode) || "ClassA";
let sleepMs = classMode === "ClassA" ? 500 : 5000;
let paraDef = {
  app_70: {
    name: "period_up", field_name: "period_up", unit: "S", type: "uint32le", coefficient: 1, decimal: 0,
    optionList: {}
  },
  app_74: {
    name: "period_read", field_name: "period_read", unit: "S", type: "uint32le", coefficient: 1, decimal: 0,
    optionList: {}
  },
  app_110: {
    name: "cov_distance", field_name: "cov_distance", unit: "mm", type: "int16BE", coefficient: 1, decimal: 0,
    optionList: {}
  }
}
let frames = RPCHelper.buildFrame({
  paraDef: paraDef,
  params: params
});
let msg = RPCHelper.makeMSG({
  msgType: Utils.msgType.paras,
  device: device,
  dnBuffer: frames.readBuffer,
  sleepTime: sleepMs,
})
return [msg]

模板选择

在 ThinkLink 平台上,搜索模板 DYP-A02 即可。