# 1 条件准备

# 1.1 硬件准备

(1)12V电源 image.png (2)DTU插线模块 image.png image.png (3)TTL转USB连接器 image.png

# 1.2 软件准备

# 1.2.1 软件下载

DTU配置工具 Tool V4.6.0 D20230626.exe https://wei.ltd.com/api/common/downloadFile/16340417 (opens new window)

# 1.3 DTU连通

# 1.3.1 打开软件

image.png image.png

# 1.3.2 选择工具类型

image.png image.png

# 1.3.3 DTU连通电脑

(1)将USB插头连接电脑 image.png (2)串口参数配置后,点击打开串口 image.png (3)然后设备上电,右侧文本框显示 image.png (4)获取DTU设备参数 image.png (5)设备连通成功 image.png

# 1.4 MQTT参数准备

# 1.4.1 MQTT连接参数

image.png image.png

# 1.4.2 设备订阅发布Topic

image.png

IP82.157.190.74
Port1883
username:L9262934E3
password:PVW9KS3Z5XA4EKC1
clientID:S&D179833320785552179208IPF8YA2G&199&1798333207855521792

发布主题:
/199/D179833320785552179208IPF8YA2G/property/post

订阅主题:
/199/D179833320785552179208IPF8YA2G/function/get

# 2 设备连接

# 2.1 选择MQTT连接模式

image.png image.png

# 2.2 配置MQTT连接参数

image.png

# 2.3 配置推送订阅Topic

(1)配置订阅1个或者多个Topic image.png (2)配置推送Topic image.png

# 2.4 写入配置,重启设备

(1)点击一键配置参数 image.png image.png (2)重启设备 image.png image.png

# 2.5 连接成功

image.png

# 3 消息解析

# 3.1 添加产品消息解析脚本

image.png image.png 可以根据脚本示例,将上报的数据格式转换为平台的数据格式


/**
 * 将设备自定义topic数据转换为json格式数据, 设备上报数据到物联网平台时调用
 * 入参:topic   string 设备上报消息的topic
 * 入参:rawData byte[]数组 不能为空
 * 出参:jsonObj JSON对象 不能为空
 * 设备上报数据:0x02,0x04
 * 方法入参字节数组(Mqtt载荷):[48,120,48,50,32,48,120,48,52,13,10]
 */
function transformPayload(topic, rawData) {
  var jsonObj = {topic:topic,data: rawData};
  return jsonObj;
}

/**
 * 将设备的自定义格式数据转换为平台的JSON格式的数据,设备上报数据到物联网平台时调用
 * 平台JSON格式为设备物模型:[{"id":"light_volt","remark":"","value":""},{"id":"light_current","remark":"","value":""}]
 * 入参:rawData byte[]数组 不能为空
 * 出参:jsonObj json对象 不能为空
 * 设备上报数据:0x02,0x04
 * 方法入参字节数组(Mqtt载荷):[48,120,48,50,32,48,120,48,52,13,10]
 * 方法出参json对象:{"light_volt":{"id":"light_volt","remark":"","value":"2"},"light_current":{"id":"light_current","remark":"","value":"4"}}
 */
function rawDataToProtocol(rawData) {
  var jsonObj = {};
  jsonObj['light_volt']={"id":"light_volt","remark":"","value":"2"}
  jsonObj['light_current']={"id":"light_current","remark":"","value":"4"}
  return jsonObj;
}

/**
 *  将平台格式的JSON数据转换为设备能识别的格式数据,物联网平台给设备下发数据时调用
 *  入参:jsonObj JSON对象  不能为空
 *  出参:rawData byte[]数组      不能为空
 *  平台下发格式:[{"id": "light_volt","remark": "","value": "3"}]
 *  入参格式:{"light_volt":"2"} 目前只能单个下发
 */
function protocolToRawData(jsonObj) {
  var rawdata = [];
  return rawdata;
}

image.png

# 3.2 测试脚本

# 3.2.1 脚本数据解密

image.png image.png

# 3.2.2 脚本数据加密

image.png image.png

# 4 设备上报

image.png image.png

# 5 设备下发

image.png image.png image.png