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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/923143.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB相关问题

视频教程 【GeekHour】20分钟掌握MongoDB Complete MongoDB Tutorial by Net Ninja MongoDB开机后调用缓慢的原因及解决方法 问题分析: MongoDB开机后调用缓慢,通常是由于以下原因导致: 索引重建: MongoDB在启动时会重建索引…

三种蓝牙架构实现方案

一、蓝牙架构方案 1、hostcontroller双芯片标准架构 手机里面包含很多SoC或者模块,每颗SoC或者模块都有自己独有的功能,比如手机应用跑在AP芯片上,显示屏,3G/4G通信,WiFi/蓝牙等都有自己专门的SoC或者模块&#xff0…

sql工具!好用!爱用!

SQLynx的界面设计简洁明了,操作逻辑清晰易懂,没有复杂的图标和按钮,想对哪部分操作就在哪里点击右键,即使你是数据库小白也能轻松上手。 尽管SQLynx是一款免费的工具,但是它的功能却丝毫不逊色于其他付费产品&#xff…

UE5肉鸽游戏教程学习

学习地址推荐:UE5肉鸽项目实战教程_哔哩哔哩_bilibili

反向代理服务器的用途

代理服务器在网络中扮演着重要的角色,它们可以优化流量、保护服务器以及提高安全性。在代理服务器中,反向代理服务器是一种特殊类型,常用于Web服务器前,它具备多种功能,能够确保网络流量的顺畅传输。那么,让…

面试经典 150 题:205,55

205. 同构字符串 【解题思路】 来自大佬Krahets 【参考代码】 class Solution { public:bool isIsomorphic(string s, string t) {map<char, char> Smap, Tmap;for(int i0; i<s.size(); i){char a s[i], b t[i];//map容器存在该字符&#xff0c;且不等于之前映射…

信创改造 - TongRDS 替换 Redis

记得开放 6379 端口哦 1&#xff09;首先在服务器上安装好 TongRDS 2&#xff09;替换 redis 的 host&#xff0c;post&#xff0c;passwd 3&#xff09;TongRDS 兼容 jedis # 例如&#xff1a;更改原先 redis 中对应的 host&#xff0c;post&#xff0c;passwd 改成 TongRDS…

嵌入式工程师面试笔试总结——day1

第一章、进程与线程 1、什么是进程、线程&#xff0c;有什么区别&#xff1f; 进程是资源&#xff08; CPU 、内存等&#xff09;分配的基本单位&#xff0c;线程是 CPU 调度和分配的基本单位&#xff08;程序执行的最小单 位&#xff09;。同一时间&#xff0c;如果CPU 是单…

算法之区间和题目讲解

题干 难度&#xff1a;简单 题目分析 题目要求算出每个指定区间内元素的总和。 然而&#xff0c;区间在输入的最下面&#xff0c;所以按照暴力破解的思路&#xff0c;我们首先要遍历数组&#xff0c;把它的值都存进去。 然后&#xff0c;遍历下面的区间&#xff0c;从索引a…

泷羽sec-linux

基础之linux 声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团…

用 Python 从零开始创建神经网络(十):优化器(Optimizers)(持续更新中...)

优化器&#xff08;Optimizers&#xff09; 引言1. 随机梯度下降/Stochastic Gradient Descent (SGD)2. 学习率&#xff08;Learning Rate&#xff09;3. 学习率衰减&#xff08;Learning Rate Decay&#xff09;4. 带动量的随机梯度下降法&#xff08;Stochastic Gradient Des…

UE5安装教程及设置

学习链接&#xff1a;01-安装UE5及设置_哔哩哔哩_bilibili

如何利用Python爬虫精准获得1688店铺的所有商品信息

在数字化时代&#xff0c;数据的价值日益凸显&#xff0c;尤其是在电商领域。1688作为中国领先的B2B电商平台&#xff0c;拥有丰富的商品数据。对于电商企业来说&#xff0c;获取这些数据对于市场分析、竞品研究等具有重要意义。本文将详细介绍如何使用Python编写爬虫程序&…

电子学习中的关键游戏化元素

游戏化彻底改变了电子学习领域&#xff0c;提供了一种使学习具有吸引力、互动性和有效性的方法。通过将类似游戏的功能集成到教育平台中&#xff0c;教育工作者可以增强动力&#xff0c;提高知识记忆&#xff0c;并创造动态的学习体验。游戏化的关键要素为设计与学习者产生共鸣…

docker镜像、容器、仓库介绍

docker docker介绍docker镜像命令docker容器命令docker仓库 docker介绍 官网 Docker 是一种开源的容器化平台&#xff0c;用于开发、部署和运行应用。它通过将应用程序及其依赖项打包到称为“容器”的单一包中&#xff0c;使得应用能够在任何环境下运行&#xff0c;不受底层系…

一些好的AI技术学习平台和资料(动态更新)

1. 大模型 1.1 提示词&#xff08;Prompt&#xff09; 目前&#xff0c;大模型技术已经深入到工作生活的方方面面&#xff0c;各技术大厂的大模型也层出不穷&#xff0c;从开始的OpenAI一家独大&#xff0c;到当今世界的“百模大战”。从一些日常使用的角度来说&#xff0c;模…

IDEA优雅debug

目录 引言一、断点分类&#x1f384;1.1 行断点1.2 方法断点1.3 属性断点1.4 异常断点1.5 条件断点1.6 源断点1.7 多线程断点1.8 Stream断点 二、调试动作✨三、Debug高级技巧&#x1f389;3.1 watch3.2 设置变量3.3 异常抛出3.4 监控JVM堆大小3.5 数组过滤和筛选 引言 使用ID…

QT简易项目 数据库可视化界面 数据库编程SQLITE QT5.12.3环境 C++实现

案例需求&#xff1a; 完成数据库插入&#xff0c;删除&#xff0c;修改&#xff0c;查看操作。 分为 插入&#xff0c;删除&#xff0c;修改&#xff0c;查看&#xff0c;查询 几个模块。 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget…

丹摩征文活动|实现Llama3.1大模型的本地部署

文章目录 1.前言2.丹摩的配置3.Llama3.1的本地配置4. 最终界面 丹摩 1.前言 Llama3.1是Meta 公司发布的最新开源大型语言模型&#xff0c;相较于之前的版本&#xff0c;它在规模和功能上实现了显著提升&#xff0c;尤其是最大的 4050亿参数版本&#xff0c;成为开源社区中非常…

MySQL与Informix数据库中的同义表创建:深入解析与比较

MySQL与Informix数据库中的同义表创建:深入解析与比较 一、同义表的基本概念与用途1. 定义与概念2. 主要用途二、MySQL数据库中的同义表创建1. 使用视图创建同义表2. 使用别名创建同义表3. MySQL中的同义表限制与替代方案三、Informix数据库中的同义表创建1. 创建同义表的基本…