产品定价 立即试用
社区版
使用Nettra RTU通过MQTT上传温度
入门 文档 指南 安装 架构 API 常见问题
目录

使用Nettra RTU通过MQTT上传温度

简介

本指南包含分步说明,介绍如何通过以太网将Nettra RTU设备连接到ThingsBoard社区版,并以Nettra RTU众多应用之一为例。本示例应用将允许您使用ThingsBoard Web UI监控并显示来自传感器的温度数据。

Nettra RTU

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

image image

前置条件

硬件

  • 1x RTU+
  • 1x 温度传感器(量程:4–20mA 或 0–20V)
  • 1x 12VDC supply voltage
  • 1x USB to Serial cable
  • 1x Ethernet cable

软件

连接示意图

下图为本简单项目的连接示意:

image

ThingsBoard配置

本步骤说明将设备连接至 ThingsBoard 所需操作。

登录 ThingsBoard 服务器 Web 界面。

设备

  1. 进入 “设备” 部分。
  2. 点击 ”+” 按钮,创建名称为 “RTU+” 的设备,将 “设备类型” 设为 “default”

    image

  3. 设备创建后,打开其详情并点击 “管理凭据”
  4. “Access 令牌” 字段复制自动生成的 access 令牌并妥善保存,后文将引用为 $RTU_DEMO_TOKEN

    image

仪表板

使用此 链接 下载仪表板文件 (.json)。 按 导入/导出说明 将仪表板导入您的 ThingsBoard 实例。

将 RTU+ 连接至 PC

  • 下载并安装最新版 RTU+ 配置界面

  • 按「连接示意图」一节将 RTU+ 与温度传感器、12V 直流电源连接后,用 USB 转串口线将 RTU+ 连接至 PC(请确保已安装所需驱动)。

  • 打开 RTU+ 配置界面。

  1. 进入 “Inicio”
  2. 点击 “Serial”
  3. 选择已连接 RTU+ 的 USB 端口 “Puerto”“Baud rate”“9600”(默认),“Paridad”“Sin paridad”
  4. 点击 “连接”

image

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

image

RTU+ 配置

RTU+ 连接至 PC 后,即可进行配置。

Ethernet

  1. 进入 “Comunicaciones”
  2. 点击 “Serial y Ethernet”
  3. 勾选 “DHCP”(见下一步图示)。
  4. 点击 “Aplicar cambios” 保存。

image

MQTT

  1. 进入 “Comunicaciones”
  2. 点击 “MQTT y Hora”
  3. 按以下填写 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 : 遥测+
  4. 按以下填写 时间同步 框:

    Interfaz : NTP Ethernet
    Servidor:填写您本地网络可访问的 ThingsBoard 主机/IP 地址。若使用 ThingsBoard Cloud 服务器,填写 thingsboard.cloud
    Frecuencia : 10
    Huso:填写您的时区

  5. 点击 “Aplicar cambios” 保存。

image

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

image

Time

  1. 进入 “Inicio”

  2. 点击 “Configurar Hora”

image

模拟输入

  1. 进入 “Escalado de Entradas Analógicas”

  2. 此处有两种可选配置,取决于您的温度传感器。

若温度传感器输出范围为 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

image

若温度传感器输出范围为 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

image

  1. 点击 “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);
 }
}
  1. 进入 “Nettra-C”
  2. 点击 “Cargar” 导入脚本。自定义脚本可参阅 Nettra C 用户手册。

image

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

image

数据可视化

最后,使用与「ThingsBoard 配置」部分相同的用户和密码打开 ThingsBoard Web 界面。

进入 “设备”,找到 “RTU+ 设备”,打开设备详情并切换到 “最新遥测” 选项卡。若配置正确,表格中应能看到 “temperature” 的最新值。

image

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

image

另请参阅

浏览其他 示例 或查看 ThingsBoard 主要功能相关指南:

您的反馈

欢迎在 GitHub 上为 ThingsBoard 加星,帮助我们推广。 若对此示例有任何疑问,请在 Issues 中提出。

下一步