
Digicom设备旨在与ThingsBoardIoT平台互操作,提供必要设置与功能以便轻松集成,让您能够创建用于展示和监测数据与遥测的仪表板。本教程作为集成指南,侧重搭建专业监测应用,涵盖Digicom设备的基本要点及通过MQTT协议集成对应的ThingsBoard配置。
所述场景包括:Digicom设备连接到MQTT broker,ThingsBoard通过MQTT集成订阅这些数据流,并通过特定数据转换器将有效载荷转换为ThingsBoard消息格式。开始前:要使本教程生效,需准备:
- Digicom设备,如DRN500或DRN3000多功能路由器,固件1.10或更高
- 云端或本地部署的ThingsBoard实例,且具有可公开访问的地址
ThingsBoard设置
首先激活ThingsBoard账户(云端或本地)。可在”更多参考资料与指南”章节找到安装与设置个人ThingsBoard实例的详细说明。登录并完成配置准备。
创建MQTT集成
我们先定义数据入口部分。MQTT集成用于连接外部MQTT broker、订阅其数据流,并将设备任意类型的有效载荷转换为ThingsBoard消息格式。典型用途是当设备已连接到外部MQTT broker或其它具备MQTT后端的IoT平台、连接提供商时使用。进入”集成中心” → “集成“页面,点击”+“按钮创建新集成。选择类型”MQTT“,点击”下一步“:

下一步为 上行数据转换器 命名,选择「TBEL」,清空Decoder函数的全部内容。
将以下TBEL代码粘贴到Decoder函数中,然后点击「下一步」。```js // ** Digicom数据Converter **
var variableNamesMap = {“Volts”:”voltage”,”Ampere”:”current”,”Frequency”:”hertz”,”kVA”:”power”};
var载荷 = decodeToJson(载荷); if (载荷.modbus == null) { return;}
var遥测 = []; var telemetries = 载荷.modbus.数据[0].samples; foreach(sample: telemetries) { var values = {}; var varName = variableNamesMap[sample.reg]; if (varName != null) { values[varName] = sample.值; 遥测.push({ ts: Long.parseLong(sample .timestamp) * 1000, values: values }); }}
var result = { deviceName: 载荷.serialnum, deviceType: 载荷.类型, 属性: { model: 载荷.model, integrationName: metadata[‘integrationName’], }, 遥测: 遥测};
/** Helper functions ‘decodeToString’ and ‘decodeToJson’ are already built-in **/
return result;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{:.copy-code.expandable-10}

<br>
在 [下行数据转换器](/docs/user-指南/integrations/#downlink-数据-converter){:target="_blank"} 选项卡中点击「**Skip**」。
<br>
填写「**连接**」选项卡:
- 设置外部MQTT broker的「**主机**」地址和「**端口**」;
- **Credentials类型** 选择「**基本**」,填写「**用户名**」和「**密码**」(用于在外部MQTT broker上鉴权);
- 设置以下 **Topic**:
digicom/+/数据/modbus

若此前配置正确,将看到转换结果:
1
2
3
4
5
6
{"deviceName":"50012345","deviceType":"Router500","属性": {"model":"8D5913","integrationName":"MQTT integration"},"遥测": [{"ts": 1741869373000,"values": {"voltage":"228.800000"}
}, {"ts": 1741869374000,"values": {"current":"0.868000"}
}, {"ts": 17418693735000,"values": {"hertz":"50"}
}, {"ts": 1741869376000,"values": {"power":"1.491000"}
}]
}
数据入口阶段已完成且正常工作。点击「取消」,再点击「X」图标退出编辑模式。接下来进行设备设置。## 设备设置
登录设备。输入 用户名 和 密码,点击「Login」按钮。
本指南将使用Modbus功能从电能表读取数据,并通过MQTT协议将数据发送到ThingsBoard。我们主要说明Modbus与MQTT配置,假定设备已正确配置互联网访问,且Modbus物理连接已正确完成。从下拉菜单选择「Modbus」–「COM配置」。
将Modbus串口 已启用 设为启用,根据电能表运行参数设置 类型、speed 和 数据格式。点击「保存」按钮。
从下拉菜单进入「Modbus」–>「Modbus Master」。点击「添加」按钮。
将Modbus Master配置设为 已启用,设置 名称、ID、连接类型、COM类型 及 设置、rates、注册formats。将 数据目标 设为 MQTT,然后点击「保存」按钮。
下面定义从电能表读取的4组示例数据(电压、电流、频率、kVA)并作为时序发送到ThingsBoard,用于后续展示与仪表板。点击「Requests」按钮。
填写电压(Volts)所需参数,点击「保存」按钮。
点击「添加」按钮,按相同方式配置电流(Ampere)、频率(Hertz)和功率(kVA)。最终效果如下。
若配置正确,值 列会按指定Scan rate显示并更新测量数据。点击「Test」可立即触发一次数据读取。
从下拉菜单选择 Modbus – MQTT配置。
填写外部Broker的MQTT目标参数,如 服务器地址、端口、用户名 和 密码(本例使用 MQTT 基本认证)。设置设备发送数据的 Publishing topic。默认设备Modbus数据发布到以下topic结构:
1
digicom/<设备SN>/数据/modbus
点击「保存」按钮。
需重启设备以使新配置生效。从下拉菜单选择 设备 –「Reboot」。
点击「Reboot」并确认。
等待设备重新就绪后,返回ThingsBoard账户,在「设备」页面检查设备是否出现。## 检查设备
从左侧菜单栏进入「Entities」的「设备」页面。当设备首次向ThingsBoard连接的外部MQTT broker发布数据后,新的设备应会显示。
检查遥测与属性数据。点击设备行(非复选框),进入「最新遥测」选项卡。此面板显示数据转换器从数据流中提取的最新测量值。进入「属性」选项卡。此面板显示数据转换器从数据流中提取的最新Client和Server属性。
数据已在系统中,接下来可创建简单仪表板。## 创建仪表板
ThingsBoard提供强大功能——创建和自定义交互式可视化,即Dashboards。这些仪表板是高效监测与管理数据和设备的工具。通过左侧主菜单进入「Dashboards」页面。点击屏幕右上角「+」,从下拉菜单选择「创建新仪表板」。在弹出对话框中输入仪表板标题,描述可选。点击「添加」。
创建后仪表板会自动打开,可立即添加部件。点击屏幕顶部的「添加widget」按钮,或点击屏幕中央较大的「添加新部件」图标(若为该仪表板上首个部件)。
找到「Analogue gauges」部件包并点击。
选择「Radial gauge」部件。
出现「添加Widget」窗口。在「设备」字段指定设备「50012345」作为数据源。将遥测键「power」设为 数据键。向下滚动并按需设置其它项,如标题、单位、仪表量程最小最大值。若要进一步自定义,进入「高级」调整部件外观与样式。点击「添加」。
已添加显示当前功率读数的部件。
同样为另外三个遥测值(数据keys)添加部件,并在仪表板上合理排列。完成后点击「保存」保存仪表板。
更多参考资料与指南
可在在线文档中查阅更多关于ThingsBoard使用、创建customers、users和assets,以及让dashboards更强大的指南。## 下一步