ThingsBoard Edge 设备连接

文章目录

    • 一、创建设备
      • 1.创建设备配置
      • 2.创建设备
    • 二、上传遥测
      • 1.MQTTX 工具
      • 2.上传遥测
    • 三、属性
      • 1.属性类型
      • 2.上传客户端属性
      • 3.下载共享属性
      • 4.订阅共享数据
    • 四、设备告警
      • 1.配置告警规则
      • 2.清除报警规则
      • 3.测试
        • 3.1.设备告警
        • 3.1.清除告警
    • 五、规则链
      • 1.规则管理
      • 2.Edge 查看规则链

  • ThingsBoard
# ThingsBoard

https://iothub.org.cn/docs/iot/
https://iothub.org.cn/docs/iot/tb-edge/edge-device/

一、创建设备

1.创建设备配置

在 ThingsBoard 服务端创建设备配置 test-edge
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在 Edge 端查看设备配置
在这里插入图片描述

2.创建设备

在 Edge 端创建设备 edge-device
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在服务端查看设备
在这里插入图片描述

# 访问令牌
lMrdczEw1rJHhBejzumZ

二、上传遥测

1.MQTTX 工具

在这里插入图片描述

2.上传遥测

# 发布主题
v1/devices/me/telemetry


# 发布数据
{
  "stringKey": "value1",
  "booleanKey": true,
  "doubleKey": 42.0,
  "longKey": 73,
  "jsonKey": {
    "someNumber": 42,
    "someArray": [1,2,3],
    "someNestedObject": {"key": "value"}
  }
}
  • 发送遥测数据
    在这里插入图片描述

  • Edge 端遥测数据
    在这里插入图片描述

  • ThingsBoard 服务端遥测数据
    在这里插入图片描述

三、属性

1.属性类型

属性主要分为三种:

  • 服务端属性:服务端定义,服务端使用,设备端不能使用
  • 共享属性:服务端定义,设备端可以使用,不能修改
  • 客户端属性:设备端定义属性,服务端可以使用,不能修改

1.服务端属性
在这里插入图片描述

2.共享属性
在这里插入图片描述

3.客户端属性
在这里插入图片描述

2.上传客户端属性

package com.iothub.attribute;
import com.iothub.mqtt.EmqClient;
import com.iothub.mqtt.MqttProperties;
import com.iothub.mqtt.QosEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;

@Component
public class Upload {

    @Autowired
    private EmqClient emqClient;

    @Autowired
    private MqttProperties properties;

    @PostConstruct
    public void init(){
        //连接服务端
        emqClient.connect(properties.getUsername(),properties.getPassword());
        //订阅一个主题
        //emqClient.subscribe("testtopic/#", QosEnum.QoS1);
    }

    @Scheduled(fixedRate = 2000)
    public void publish(){

        String data = getData();

        emqClient.publish("v1/devices/me/attributes",data,
                QosEnum.QoS1,false);
    }

    private String getData(){

        String data = "{\n" +
                "\t\"attribute1\": \"value1\",\n" +
                "\t\"attribute2\": true,\n" +
                "\t\"attribute3\": 42.0,\n" +
                "\t\"attribute4\": 73,\n" +
                "\t\"attribute5\": {\n" +
                "\t\t\"someNumber\": 42,\n" +
                "\t\t\"someArray\": [1, 2, 3],\n" +
                "\t\t\"someNestedObject\": {\n" +
                "\t\t\t\"key\": \"value\"\n" +
                "\t\t}\n" +
                "\t}\n" +
                "}";

        return data;
    }
}
  • Edge 端显示
    在这里插入图片描述

  • 服务端显示
    在这里插入图片描述

3.下载共享属性

package com.iothub.attribute;
import com.iothub.mqtt.EmqClient;
import com.iothub.mqtt.MqttProperties;
import com.iothub.mqtt.QosEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.PostConstruct;

//@Component
public class Download {

    @Autowired
    private EmqClient emqClient;

    @Autowired
    private MqttProperties properties;

    @PostConstruct
    public void init(){
        //连接服务端
        emqClient.connect(properties.getUsername(),properties.getPassword());
        //订阅一个主题
        emqClient.subscribe("v1/devices/me/attributes/response/+", QosEnum.QoS1);
    }

    @Scheduled(fixedRate = 2000)
    public void publish(){

        String data = getData();

        emqClient.publish("v1/devices/me/attributes/request/1",data, QosEnum.QoS1,false);
    }

    private String getData(){

        String data = "{\n" +
                "\t\"clientKeys\": \"attribute1,attribute2\",\n" +
                "\t\"sharedKeys\": \"shared1,shared2\"\n" +
                "}";

        return data;
    }
}

共享属性需要在 Edge 端创建,会同步到服务端
在这里插入图片描述
在这里插入图片描述

4.订阅共享数据

package com.iothub.attribute;
import com.iothub.mqtt.EmqClient;
import com.iothub.mqtt.MqttProperties;
import com.iothub.mqtt.QosEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.PostConstruct;

//@Component
public class Subscribe {
    @Autowired
    private EmqClient emqClient;

    @Autowired
    private MqttProperties properties;

    @PostConstruct
    public void init(){
        //连接服务端
        emqClient.connect(properties.getUsername(),properties.getPassword());
        //订阅一个主题
        emqClient.subscribe("v1/devices/me/attributes", QosEnum.QoS1);
    }

    @Scheduled(fixedRate = 2000)
    public void publish(){

        String data = getData();

        //emqClient.publish("v1/devices/me/attributes/request/1",data, QosEnum.QoS1,false);
    }

    private String getData(){

        String data = "{\n" +
                "\t\"clientKeys\": \"attribute1,attribute2\",\n" +
                "\t\"sharedKeys\": \"shared1,shared2\"\n" +
                "}";

        return data;
    }
}

四、设备告警

1.配置告警规则

在 ThingsBoard 服务端创建告警规则
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.清除报警规则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • Edge 端查看告警规则
    在这里插入图片描述

3.测试

v1/devices/me/telemetry


{
	"temperature": 62.2,
	"humidity": 79
}
3.1.设备告警
{
	"temperature": 62.2,
	"humidity": 79
}

在这里插入图片描述

  • Edge 端告警
    在这里插入图片描述

  • 服务端告警
    在这里插入图片描述

3.1.清除告警
{
	"temperature": 42.2,
	"humidity": 79
}

在这里插入图片描述
在这里插入图片描述

五、规则链

1.规则管理

在服务端创建、修改规则链
在这里插入图片描述
在这里插入图片描述

2.Edge 查看规则链

在这里插入图片描述
在这里插入图片描述

  • ThingsBoard
# ThingsBoard

https://iothub.org.cn/docs/iot/
https://iothub.org.cn/docs/iot/tb-edge/edge-device/

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

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

相关文章

实现安卓连接阿里云物联网平台(2)

完整工程链接 链接:https://pan.baidu.com/s/1ykcJHPBSKBXVMaMWKoVRvA?pwd8888 提取码:8888 (1)创建一个新工程 (2)添加mqtt包的依赖 implementation org.eclipse.paho:org.eclipse.paho.client.mqttv…

AI将如何影响我们的生活?

1. AI 会如何影响你的生活 通用聊天场景:也即 ChatGPT 本身,或者用 gpt-3.5 的 api 实现的各类网站或小程序。他们没有明确的问题场景,但反而可以解决非常多的问题,比如搜索一些常见问题的答案、编个笑话等,可以当个搜…

力扣刷题(DAY09-DAY11)

Day09 0958. 二叉树的完全性检验 知识点:完全二叉树:在一棵完全二叉树中,除了最后一层外,所有层都被完全填满,并且最后一层中的所有节点都尽可能靠左。最后一层(第 h 层)中可以包含 1 到 个节点…

白酒:原料的加工方式对白酒品质的影响研究

在豪迈白酒的酿造过程中,原料的加工方式对白酒的品质起着至关重要的作用。云仓酒庄深知这一点,并进行了深入的研究和实践。本文将探讨原料的加工方式如何影响白酒的品质,以及酒庄如何通过改进加工方式来提升白酒的品质。 首先,原料…

web服务架构

1 Web服务器(如Nginx、Apache等)和Web应用框架(如Flask、Django等) Web服务器(如Nginx、Apache等)和Web应用框架(如Flask、Django等)在Web应用开发和部署中扮演着不同的角色&#xf…

Windows Server 各版本搭建远程访问 / VPN 服务器实现 VPN 连接(03~19)

一、Windows Server 2003 开机后点击添加或删除角色 点击下一步 勾选自定义,点击下一步 点击 远程访问/VPN 服务器,点击下一步 点击下一步 点击下一步 勾选自定义,点击下一步 选择配置类型,点击下一步 点击完成 点击是 点击完成…

RTSP视频监控EasyNVR安防视频云平台直播鉴权功能简述

RTSP协议视频监控系统EasyNVR安防视频云平台,可支持设备通过RTSP/Onvif协议接入并进行视频流的处理及分发,在视频监控场景中可实现视频实时监控直播、云端录像、云存储、录像检索与回看、告警、级联等,平台能将拉取过来的音视频流转化成适合全…

酷得智能电子方案 儿童对讲机

儿童对讲机的设计通常会考虑到孩子的使用习惯和安全,操作简单,适合不同年龄段的儿童使用。同时,为了防止孩子误操作,一些对讲机会有一键锁闭功能,确保除了对讲键之外的所有功能都不会被小朋友乱按。而且,儿…

解锁编程潜能:ChatGPT如何革新软件开发

目录 一、背景 二、功能描述 三、总结 一、背景 在这个飞速发展的数字时代,软件开发的效率和质量成了衡量一个开发者能力的重要标准。随着人工智能技术的不断进步,越来越多的开发者开始寻找能够提升工作效率的新方法。我就是其中之一,最近…

网络安全框架和云安全参考架构介绍

目录 一、网络安全框架 1.1 概述 1.2 IATF框架 1.2.1 框架来源 1.2.2 框架结构图 1.2.3 框架内容 1.2.3.1 人(People) 1.2.3.2 技术(Technology) 1.2.3.3 操作(Operation) 1.3 NIST网络安全框架 …

词令微信小程序怎么添加到我的小程序?

微信小程序怎么添加到我的小程序? 1、找到并打开要添加的小程序; 2、打开小程序后,点击右上角的「…」 3、点击后底部弹窗更多选项,请找到并点击「添加到我的小程序」; 4、添加成功后,就可以在首页下拉我的…

Java毕业设计-基于springboot开发的就业信息管理系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、前台功能模块2、后台功能模块2.1管理员功能2.2学生功能2.3企业功能2.4导师功能 四、毕设内容和源代码获取总结 Java毕业设计-基…

面试官:volatile如何保证可见性的,具体如何实现?

写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块…

Ubuntu升级/修改内核模块详细教程

Ubuntu升级/修改内核模块详细教程 下载指定内核版本查看内核版本修改内核步骤下载deb包安装报错解决方案安装完成切换内核脚本 切换内核详解更新内核禁止自动更新 下载指定内核版本 下载路径 https://kernel.ubuntu.com/~kernel-ppa/mainline/ 查看内核版本 1.ubuntu查看当前…

X1 grok-1 开源大语言模型下载

Grok 前言 我们正在发布我们的大型语言模型 Grok-1 的基本模型权重和网络架构。Grok-1 是一个 3140 亿参数的专家混合模型,由 xAI 从头开始训练。 这是 2023 年 10 月结束的 Grok-1 预训练阶段的原始基础模型检查点。这意味着该模型不会针对任何特定应用&#xff…

快速高效地数据分析处理:QtiPlot for Mac中文直装版 兼容M

QtiPlot 是一个用于数据分析和可视化的跨平台科学应用程序。由于其多语言支持,QtiPlot 被积极用于世界各地学术机构的教学。许多研究科学家信任 QtiPlot 来分析他们的数据并发布他们的工作结果。来自各个科学领域和行业的数千名注册用户已经选择了 QtiPlot 来帮助他…

防火墙常用功能配置

防火墙:为了限制不同区域之间的流量通信。默认有一条拒绝所有的策略。 现在的防火墙主要作用:是区域隔离和访问控制。 安全防护是核心特性 路由器:ACL列表,控制流量 入侵防御:网络攻击 文件过滤,内容过滤&…

linux:线程互斥

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、线程互斥问题解释互斥量的接口 二、加锁的原理三、 死锁死锁四个必要条件避免死锁 总结 前言 本文是对于线程互斥的知识总结 一、线程互斥 问题 我们先看下面…

连锁收银系统如何降低连锁经营的税务成本

空中分账是指将总部和各门店之间的财务往来通过虚拟账户进行结算,而非实际资金流动。这种方式可以加强连锁企业的管控,同时在合规的前提下降低税务成本,具体有以下优势: 加强管控: 连锁门店收银统一进入连锁品牌空中账…