简介
本指南包含分步说明,介绍如何通过以太网将Nettra RTU设备连接到ThingsBoard社区版,并以Nettra RTU众多应用之一为例。本示例应用将允许您使用ThingsBoard Web UI监控并显示来自传感器的温度数据。
Nettra RTU
Nettra RTU 又称 RTU+,是一款功能强大的物联网电子设备,具有数字和模拟输入输出,以及多种集成通信接口(调制解调器、以太网、802.15.4、RS485、RS232和GPS)。它是实现分布式数据网络上监控、采集和控制应用的理想产品。RTU+ 可通过 RTU+ 配置界面 轻松配置。为适应各应用场景,RTU+ 运行完全可自定义的脚本,可从配置界面访问和编辑。本指南将提供一个简单易懂的示例。完成本示例/教程后,您将在仪表板中看到传感器数据,如下图所示。

前置条件
硬件
- 1x RTU+
- 1x 温度传感器(量程:4–20mA 或 0–20V)
- 1x 12VDC supply voltage
- 1x USB to Serial cable
- 1x Ethernet cable
软件
- RTU+ 配置界面。
- 需已部署并运行 ThingsBoard 服务器,可使用 ThingsBoard Cloud 或按 安装指南 自行安装。
连接示意图
下图为本简单项目的连接示意:

ThingsBoard配置
本步骤说明将设备连接至 ThingsBoard 所需操作。
登录 ThingsBoard 服务器 Web 界面。
设备
- 进入 “设备” 部分。
- 点击 ”+” 按钮,创建名称为 “RTU+” 的设备,将 “设备类型” 设为 “default”。
- 设备创建后,打开其详情并点击 “管理凭据”。
- 从 “Access 令牌” 字段复制自动生成的 access 令牌并妥善保存,后文将引用为 $RTU_DEMO_TOKEN。

仪表板
使用此 链接 下载仪表板文件 (.json)。 按 导入/导出说明 将仪表板导入您的 ThingsBoard 实例。
将 RTU+ 连接至 PC
-
下载并安装最新版 RTU+ 配置界面。
-
按「连接示意图」一节将 RTU+ 与温度传感器、12V 直流电源连接后,用 USB 转串口线将 RTU+ 连接至 PC(请确保已安装所需驱动)。
-
打开 RTU+ 配置界面。
- 进入 “Inicio”。
- 点击 “Serial”。
- 选择已连接 RTU+ 的 USB 端口 “Puerto”,“Baud rate” 为 “9600”(默认),“Paridad” 为 “Sin paridad”。
- 点击 “连接”。

连接成功后将看到此图标:

RTU+ 配置
RTU+ 连接至 PC 后,即可进行配置。
Ethernet
- 进入 “Comunicaciones”。
- 点击 “Serial y Ethernet”。
- 勾选 “DHCP”(见下一步图示)。
- 点击 “Aplicar cambios” 保存。

MQTT
- 进入 “Comunicaciones”。
- 点击 “MQTT y Hora”。
- 按以下填写 MQTT 框:
Interfaz : Ethernet Puerto : 1883
Servidor:填写您本地网络可访问的 ThingsBoard 主机/IP 地址。若使用 ThingsBoard Cloud 服务器,填写MQTT.thingsboard.cloud。
Usuario:$RTU_DEMO_TOKEN(见上方「设备」小节)
Contraseña:留空
客户端ID : RTU+
遥测Topic : v1/设备/me/遥测
属性Topic : v1/设备/me/属性
Formato : 遥测+ -
按以下填写 时间同步 框:
Interfaz : NTP Ethernet
Servidor:填写您本地网络可访问的 ThingsBoard 主机/IP 地址。若使用 ThingsBoard Cloud 服务器,填写thingsboard.cloud。
Frecuencia : 10
Huso:填写您的时区 - 点击 “Aplicar cambios” 保存。

在 “Estado” 中应看到 “Conectado”(MQTT 状态:已连接)。 (首次可能需要数分钟)

Time
-
进入 “Inicio”。
-
点击 “Configurar Hora”。

模拟输入
-
进入 “Escalado de Entradas Analógicas”。
-
此处有两种可选配置,取决于您的温度传感器。
若温度传感器输出范围为 4-20mA:
在 “Entrada Analógica 0:” 中选择 “Corriente”。将 “X0” 填为 “819”,“X1” 填为 “4096”。将 “Y0” 填为传感器最低温度,“Y1” 填为最高温度。
示例:传感器量程 -10°C 至 100°C 时,“X0”= 819,“Y0”= -10,“X1”= 4096,“Y1”= 100

若温度传感器输出范围为 0-20V:
在 “Entrada Analógica 0:” 中选择 “Tensión”。将 “X0” 填为 “0”,“X1” 填为 “4096”。将 “Y0” 填为传感器最低温度,“Y1” 填为最高温度。
示例:传感器量程 -10°C 至 100°C 时,“X0”= 0,“Y0”= -10,“X1”= 4096,“Y1”= 100

- 点击 “Aplicar cambios” 保存。
Script
- 下载此 脚本。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
* DESCRIPTION :
* - Monitor temperature each 20 seconds.
*
* INPUTS:
* - Temperature sensor : Analog Input 0
*/
// Constants
const TLOG = 20000; // [Miliseconds]
// Variables definition
loggable float temperature; // [ºC]
ulong logTimer;
<span style="color: green"> Some green text </span>
// Alias
alias sensorTemperature as AInEscalado[0];
// Variables initialization
logTimer = ConfigurarTimeout(0);
// Code
while(1)
{
if (Timeout(logTimer))
{
logTimer = ConfigurarTimeout(TLOG);
temperature = sensorTemperature;
Log(temperature);
}
}
- 进入 “Nettra-C”。
- 点击 “Cargar” 导入脚本。自定义脚本可参阅 Nettra C 用户手册。

- 点击 “Compilar y Aplicar” 在 RTU+ 中编译并保存脚本。

数据可视化
最后,使用与「ThingsBoard 配置」部分相同的用户和密码打开 ThingsBoard Web 界面。
进入 “设备”,找到 “RTU+ 设备”,打开设备详情并切换到 “最新遥测” 选项卡。若配置正确,表格中应能看到 “temperature” 的最新值。

然后打开 “仪表板” 部分,找到并打开 “RTU+” 仪表板。
结果将显示温度时序图(与简介中的仪表板图类似)。

另请参阅
浏览其他 示例 或查看 ThingsBoard 主要功能相关指南:
您的反馈
欢迎在 GitHub 上为 ThingsBoard 加星,帮助我们推广。 若对此示例有任何疑问,请在 Issues 中提出。