当前位置: 首页 > article >正文

ThingsBoard规则链节点:Azure IoT Hub 节点详解

目录

引言

1. Azure IoT Hub 节点简介

2. 节点配置

2.1 基本配置示例

3. 使用场景

3.1 数据传输

3.2 数据分析

3.3 设备管理

4. 实际项目中的应用

4.1 项目背景

4.2 项目需求

4.3 实现步骤

5. 总结


引言

ThingsBoard 是一个开源的物联网平台,提供了设备管理、数据收集、处理和可视化等功能。规则链是 ThingsBoard 中的一个强大功能,允许用户定义复杂的业务逻辑来处理设备上报的数据。在规则链中,Azure IoT Hub 节点用于将消息发送到 Microsoft Azure IoT Hub。

ThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台_哔哩哔哩_bilibiliThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台共计36条视频,包括:1、ThingsBoard项目介绍、2、ThingsBoard前端Vue版本代码编译、3、ThingsBoard本地后端源码编译等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0&vd_source=5b535ac3589f53abe431d7f6afc44ff4

1. Azure IoT Hub 节点简介

Azure IoT Hub 节点的主要作用是在规则链执行过程中,将消息发送到 Azure IoT Hub。Azure IoT Hub 是 Microsoft Azure 提供的一项完全托管的服务,用于可靠地连接、监视和管理数十亿个 IoT 设备。通过使用 Azure IoT Hub 节点,可以将设备上报的数据或处理结果发送到 Azure IoT Hub,再由其他 Azure 服务或系统消费这些消息,实现数据的进一步处理和分析。

2. 节点配置
  • IoT Hub 连接字符串:提供 Azure IoT Hub 的连接字符串,用于身份验证。
  • 设备 ID:指定要发送消息的设备 ID。
  • 消息:指定要发送的消息内容,可以是静态文本或动态变量。
2.1 基本配置示例
{
  "connectionString": "HostName=youriothub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=yoursharedaccesskey",
  "deviceId": "yourdeviceid",
  "message": "This is a test message from ThingsBoard"
}
3. 使用场景

Azure IoT Hub 节点在多种场景下都非常有用,特别是在需要将设备数据发送到 Azure 云服务进行进一步处理和分析的场景中。以下是一些具体的应用场景:

3.1 数据传输

在需要将设备上报的数据发送到 Azure IoT Hub 时,可以通过 Azure IoT Hub 节点将数据发送到指定的设备。

{
  "connectionString": "HostName=youriothub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=yoursharedaccesskey",
  "deviceId": "yourdeviceid",
  "message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
3.2 数据分析

在需要对设备数据进行实时分析时,可以通过 Azure IoT Hub 节点将数据发送到 Azure IoT Hub,再由 Azure Stream Analytics 或其他 Azure 服务进行处理和分析。

{
  "connectionString": "HostName=youriothub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=yoursharedaccesskey",
  "deviceId": "yourdeviceid",
  "message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
3.3 设备管理

在需要管理和控制设备时,可以通过 Azure IoT Hub 节点将命令或配置发送到指定的设备。

{
  "connectionString": "HostName=youriothub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=yoursharedaccesskey",
  "deviceId": "yourdeviceid",
  "message": "Command to device: ${msg.command}"
}
4. 实际项目中的应用

下面是一个实际项目中的例子,展示如何在智能家居系统中使用 Azure IoT Hub 节点。

4.1 项目背景

假设我们正在开发一个智能家居系统,该系统需要支持用户通过手机应用控制家中的灯光、空调等设备,并记录设备的状态和使用情况。此外,还需要将设备数据发送到 Azure IoT Hub 进行进一步处理和分析。

4.2 项目需求
  • 记录设备的状态,例如当前温度、湿度等。
  • 记录设备的使用情况,例如开关次数、能耗等。
  • 实现实时反馈,确保用户能够及时了解操作结果。
  • 将设备数据发送到 Azure IoT Hub 进行进一步处理和分析。
4.3 实现步骤
  1. 部署设备

    • 在家中安装智能灯光、空调等设备,并连接到 ThingsBoard 平台。
  2. 创建规则链

    • 添加 Azure IoT Hub 节点,用于将设备上报的数据发送到 Azure IoT Hub。
    • 添加其他处理节点,如设备控制、状态查询和数据存储。
  3. 配置规则链

    • 配置 Azure IoT Hub 节点,用于发送设备数据。
{
  "connectionString": "HostName=youriothub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=yoursharedaccesskey",
  "deviceId": "yourdeviceid",
  "message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
  1. 处理数据
    • 根据业务逻辑,动态地将设备数据发送到 Azure IoT Hub。
// 发送设备数据到 Azure IoT Hub
public void sendDeviceDataToAzureIoTHub(String deviceId, String data) {
    // 配置 Azure IoT Hub 节点
    JsonNode config = JsonNodeFactory.instance.objectNode()
        .put("connectionString", "HostName=youriothub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=yoursharedaccesskey")
        .put("deviceId", deviceId)
        .put("message", "Device " + deviceId + " reported data: " + data);

    azureIoTHubNode.sendMessage(config);
}
  1. 前端界面

    • 开发一个前端界面,显示设备的状态和使用情况。
    • 提供一个界面,让用户能够查看和管理设备的状态和使用情况,以及接收通知。
  2. 数据查询

    • 使用 SQL 查询,获取设备的状态和使用情况。
SELECT * FROM device_status WHERE device_id = 'device1' ORDER BY timestamp DESC LIMIT 10;
SELECT * FROM device_usage WHERE device_id = 'device1' ORDER BY timestamp DESC LIMIT 10;
5. 总结

Azure IoT Hub 节点在 ThingsBoard 规则链中是一个非常有用的工具,可以帮助将消息发送到 Azure IoT Hub,实现数据的进一步处理和分析。通过合理地使用 Azure IoT Hub 节点,可以在数据传输、数据分析和设备管理等场景中,确保系统的高效性和灵活性。无论是在智能家居、工业监控还是其他物联网应用中,Azure IoT Hub 节点都能发挥重要作用。

     🌐 项目地址

Things Vueicon-default.png?t=O83Ahttp://thingsvue.tpson.cn:7772/#/login?redirect=/tb-home/index

账号:admin@thingsboard.org 
密码:admin123456

🎽 安装使用

获取项目代码:

代码地址icon-default.png?t=O83Ahttps://gitee.com/tpsonwell_admin/thingsvue


http://www.kler.cn/a/410283.html

相关文章:

  • 速盾:CDN缓存的工作原理是什么?
  • UE5肉鸽游戏教程学习
  • .net 支持跨平台(桌面)系列技术汇总
  • 微信小程序下拉刷新与上拉触底的全面教程
  • ArcGIS应用指南:ArcGIS制作局部放大地图
  • C# 读取多条数据记录导出到 Word标签模板之图片输出改造
  • ubuntu 安装 conda
  • ajax基础
  • 使用 Java 操作 SQLite 数据库
  • Spring Boot 应用开发:构建高效、可扩展的 Java 微服务
  • 基于springboot + vue-element-plus-admin开发的MES系统源码,制造执法系统MES源码;支持app,小程序,H5,后台
  • (72)采用格雷(Gray)编码的8-PSK调制解调通信系统的MATLAB仿真
  • Solon 拉取 maven 包很慢或拉不了,怎么办?
  • javaEE初阶——多线程(1)
  • GitLab|应用部署
  • 【强化学习的数学原理】第05课-蒙特卡洛方法-笔记
  • 24 年第十四届APMCM亚太数模竞赛浅析
  • JVM-类文件结构
  • vue 预览pdf 【@sunsetglow/vue-pdf-viewer】开箱即用,无需开发
  • 基于Matlab SIR模型的传染病动态模拟与扩展研究
  • Django 自定义路由转换器
  • 以科学计算为切入点:剖析英伟达服务器过热难题
  • 函数和数组
  • SAP 零售方案 CAR 系统的介绍与研究
  • 2024年11月25日Github流行趋势
  • 李宏毅机器学习课程知识点摘要(1-5集)