ThingsBoard社区版入门介绍

news2024/10/5 14:09:44

介绍

本教程主要演示ThingsBoard的基本用法并掌握:

  • 设备连接;
  • 数据发布;
  • 数据展示;
  • 警报触发;
  • 通知推送。

教程将连接和可视化来自温度传感器的数据以及简单使用。

必备条件

你需要启动并运行ThingsBoard服务, 建议使用演示服务。

另一种选项是通过安装指南进行独立部署 Windows用户应遵循本指南,已经安装docker的Linux用户执行以下命令:

 
1
2
3
4
5
mkdir -p ~/.mytb-data && sudo chown -R 799:799 ~/.mytb-data
mkdir -p ~/.mytb-logs && sudo chown -R 799:799 ~/.mytb-logs
docker run -it -p 9090:9090 -p 7070:7070 -p 1883:1883 -p 5683-5688:5683-5688/udp -v ~/.mytb-data:/data \
-v ~/.mytb-logs:/var/log/thingsboard --name mytb --restart always thingsboard/tb-postgres

复制到剪贴板

以上命令可以完成ThingsBoard安装和生成演示数据。

你可以通过ThingsBoard页面地址http://localhost:8080、 用户名tenant@thingsboard.org和密码tenant进行访问, 有关模拟帐户请参见此处。

步骤1. 创建设备

做为入门教程我们将使用UI手动配置设备。

  • 登录并打开设备页面
  • 单击"+"图标
  • 输入设备名称
  • 倒序显示设备列表

image

image

image

image

你也可以通过:

  • 批量配置的CSV文件创建多个设备;
  • 设备配置自动创建设备, 因此无需手动创建设备。
  • REST API以编程方式创建设备和其它实体;

步骤2. 连接设备

ThingsBoard支持各种设备凭证进行设备连接,建议使用默认生成的设备凭证进行连接。

  • 打开设备详情
  • 复制访问令牌

image

image

在此示例中我们将使用简单的命令通过HTTP或MQTT发布数据, 现在已经创建好设备可以发布遥测数据。

HTTPLinux, macOS或Windows

MQTTLinux或macOS

MQTTWindows

CoAPLinux或macOS

其他协议Modbus, SNMP, LoRaWAN等

Ubuntu安装curl:

 
    
sudo apt-get install curl

复制到剪贴板

macOS安装curl:

 
    
brew install curl

复制到剪贴板

Windows安装curl:

Windows 10 b17063已经默认安装cURL。 如果你是老版Windows操作系统更多信息参见MSDB博客。 你可以在此处查看官方安装指南。

如果你已经在Windows, Ubuntu和macOS安装cURL工具。

替换$THINGSBOARD_HOST_NAME和$ACCESS_TOKEN为对应值。

 
    
curl -v -X POST -d "{\"temperature\": 25}" $THINGSBOARD_HOST_NAME/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"

复制到剪贴板

例如$THINGSBOARD_HOST_NAME是演示地址$ACCESS_TOKEN是ABC123:

 
    
curl -v -X POST -d "{\"temperature\": 25}" https://demo.thingsboard.io/api/v1/ABC123/telemetry --header "Content-Type:application/json" 

复制到剪贴板

例如$THINGSBOARD_HOST_NAME是本机地址$ACCESS_TOKEN是ABC123:

 
    
curl -v -X POST -d "{\"temperature\": 25}" http://localhost:8080/api/v1/ABC123/telemetry --header "Content-Type:application/json"

复制到剪贴板

数据发布成功后可以在遥测选项卡中进行查看:

  • 打开设备详情
  • 打开遥测选项卡

image

image

步骤3. 创建仪表板

下面文档中将创建一个仪表板并添加部件。

步骤3.1 创建空仪表板

  • 单击"+"图标添加仪表板
  • 输入仪表板名称
  • 倒序显示仪表板列表

image

image

image

步骤3.2 添加别名

做为入门教程我们将使用“单一实体”别名来引用唯一实体,你也可以配置引用多个设备的别名例如某种类型或与某种资产相关的设备, 别名是部件的单个实体或实体组的引用可以是静态或者动态的引用, 你也可以在此处了解有关不同别名的更多信息。

  • 进入编辑模式
  • 单击“别名”图标
  • 单击”添加别名“
  • 输入别名称
  • 单击“添加”后“保存”
  • 单击”应用更改“

image

image

image

image

image

image

步骤3.3 添加表格部件

从部件库中选中表格部件 并且每个部件都有一个数据源用于显示数据, 如果要显示第2步中的最新数据我们必须配置数据源。

  • 单击“添加”部件按钮
  • 单击“卡片”部件包择“最新值”部件
  • 添加数据源
  • 选择实体别名
  • 拖动改变部件尺寸

image

image

image

image

image

现在已经添加了一个表格部件你可以发送最新的遥测数据,数据会实时显示在表格中。

步骤3.4 添加图表部件

从部件库中选中图表部件 图表部件显示同一数据key的多个历史值, 通过配置时间显示更多数据。

  • 进入编辑模式
  • 单击“添加”部件
  • 单击“创建”部件图标
  • 选择“图表”部件包使用"Timeseries-Flot"部件
  • 单击“添加数据源”
  • 选择实体别名
  • 拖动改变部件尺寸
  • 发布遥测数据
  • 进入编辑模式,修改间隔和聚合函数

image

image

image

image

image

image

image

image

image

现在已经添加了一个图表部件你可以发送遥测数据,数据会实时显示在图表中。

步骤3.5 添加警报部件

  • 进入编辑模式
  • 单击“添加”部件
  • 单击“创建”部件
  • 选择“警报”部件包使用"Alarm"部件
  • 单击“添加数据源”
  • 选择实体别名
  • 拖动改变部件尺寸

image

image

image

image

image

image

现在已经添加了一个警报部件,可以开始配置报警规则。

步骤4. 配置警报规则

如果数据大于25度时将触发警报规则功能发出警报, 因此需要编辑设备配置添加新的警报规则, “My New Device”使用的”default”设备配置, 建议为每一个对应的设备类型创建一个专用的设备配置教程中为了简单省略了此步骤。

  • 打开设备配置
  • 单击default配置
  • 选择“警报”选项卡
  • 单击"添加"警报规则
  • 单击“+”图标添加报警规则
  • 单击"添加"过滤条件
  • 输入键名单击“添加”
  • 选择操作符并输入阈值
  • 单击“保存”
  • 单击”应用更改“

image

image

image

image

image

image

image

image

image

image

步骤5. 创建警报

现在我们的警报规则已激活(请参阅第4步) 模拟设备数据发送遥测数据(请参阅第2步)以触发警报 温度值应为26或更高才能产生警报并且在仪表板上会立刻显示这条警报数据。

  • 产生最新警报
  • 确认清除警报

image

image

步骤6. 警报通知

建议你预先查看了解警报通知相关规则和示例文档。

注意:目前ThingsBoard支持AWS SNS和Twilio这两项付费短信发送服务,你需要创建一个帐户。但是你可以使用REST API call与其他SMS/EMAIL网关集成。

步骤7. 分配设备和仪表板

ThingsBoard最重要的功能之一是能够将仪表板分配给客户, 可以将不同的设备分配给不同的客户。 然后可以创建一个仪表板并将其分配给多个客户,每个用户将看到他自己的设备,将无法看到其它客户的设备或任何其他数据。

步骤7.1 创建客户

创建一个名称为“My New Customer”的客户。

  • 打开客户页面
  • 单击“+”添加客户
  • 输入标题单击“添加”

image

image

步骤7.2 分配设备

将设备分配给客户并通过用户读取和写入遥测数据和向设备发送命令。

  • 打开设备页面分配给客户
  • 选择客户并单击“分配”

image

image

步骤7.3 分配仪表板

分配仪表板给客户并拥有仪表板的只读访问权限。

  • 打开仪表板页面分配给客户
  • 选择客户并单击“分配”

image

image

步骤7.4 创建用户

创建一个客户并指定此用户对仪表板和设备的只读访问权限, 可以将仪表板配置为用户登录平台后显示的首页。

  • 打开客户页面单击“管理”图标
  • 单击“添加用户”图标
  • 输入电子邮件单击“添加”
  • 复制激活链接设置密码
  • 打开用户详情
  • 切换编辑模式
  • 选择仪表板并选中“始终全屏”

image

image

image

image

image

image

image

步骤7.5 激活用户
  • 活链接设置密码单击“创建密码”
  • 用户登录可以查看并确认/清除警报

image

image

下一步

  • 安装指南 - 学习如何在各种操作系统上安装ThingsBoard。

  • 连接设备 - 学习如何根据你的连接方式或解决方案连接设备。

  • 可 视 化 - 学习如何配置复杂的ThingsBoard仪表板说明。

  • 数据处理 - 学习如何使用ThingsBoard规则引擎。

  • 数据分析 - 学习如何使用规则引擎执行基本的分析任务。

  • 硬件样品 - 学习如何将各种硬件平台连接到ThingsBoard。

  • 高级功能 - 学习高级ThingsBoard功能。

  • 开发指南 - 学习ThingsBoard中的贡献和开发。

ThingsBoard社区版课程

意见反馈

希望你在github上为ThingsBoard加star帮助我们宣传, 如果你对此示例有任何疑问请在论坛发布。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java spring 02. AbstractApplicationContext的refresh

spring创建对象的顺序,先创建beanfactory,再会把xml文件读取到spring。 public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, Nullable ApplicationContext parent)throws BeansException {//调用父类的构造方法super(p…

05_Mongooes

Mongooes Mongoose是通过Node来操作MongoDB的一个模块。是基于Node.js的第三方模块。 一、Node.js安装 1.解压 2.创建文件夹 解压路径下,创建两个文件夹 node_global:全局安装位置 node_cache:缓存 3.配置 配置环境变量 在path路径…

挂耳式运动蓝牙耳机什么牌子好?六大选购技巧大揭秘

随着蓝牙耳机的普及,越来越多的人选择它们来满足日常的娱乐需求。这些耳机以时尚的设计和舒适的佩戴体验而受到青睐。蓝牙耳机主要分为挂耳式和入耳式两大类。尽管入耳式耳机功能全面,但对于热衷运动的用户来说不够稳固,因为在运动时很容易掉…

蓝桥杯-大小写转换

转换方法 toLowerCase() String类的toLowerCase()方法可以将字符串中的所有字符全部转换成小写,而非字母的字符不受影响,语法格式如下: 字符串名.toLowerCase() //将字符串中的字母全部转成小写,非字母不受影响。 package chap…

闫震海:腾讯音乐空间音频技术的发展和应用 | 演讲嘉宾公布

一、3D 音频 3D 音频分论坛将于3月27日同期举办! 3D音频技术不仅能够提供更加真实、沉浸的虚拟世界体验,跨越时空的限制,探索未知的世界。同时,提供更加丰富、立体的情感表达和交流方式,让人类能够更加深入地理解彼此&…

游戏力:竞技游戏设计实战教程

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 游戏力:竞技游戏设计实战教程 引言…

pinia报错does not provide an export named ‘hasInjectionContext

你们好,我是金金金。 场景 我这里是uniappvue3编写的一个小程序项目,在集成pinia过程当中遇到此问题,报错请求的模块 未提供 导出名hasInjectionContext(位于 pinia.mjs:6:10) 以下我项目当中vue和pinia的具体依赖版本…

RAG全解析和LangChain代码实现

大家好,自从人们意识到可以用自有数据为大型语言模型(LLM)增效之后,就开始讨论如何最有效地弥合 LLM 的通用知识与专有数据之间的差距。围绕着微调还是检索增强生成(RAG)哪个更适合这一问题,人们…

【李沐论文精读】Transformer精读

论文:Attention is All You Need 参考:李沐视频【Transformer论文逐段精读】、Transformer论文逐段精读【论文精读】、李沐视频精读系列 一、摘要 主流的序列转换(sequence transduction)模型都是基于复杂的循环或卷积神经网络,这个模型包含一…

基于单片机的蓝牙无线密码锁设计

目 录 摘 要 Ⅰ Abstract Ⅱ 引 言 1 1 系统总体设计 3 1.1 系统设计要求 3 1.2 系统设计思路 3 2 系统硬件设计 5 2.1 设计原理 5 2.2 主控模块 5 2.3 芯片模块 8 2.4 矩阵键盘模块 9 2.5 液晶显示模块 10 2.6 继电器驱动模块 12 2.7 蜂鸣器模块 13 2.8 蓝牙模块 14 3 系统软…

Linux入门攻坚——16、Linux系统启动流程

CentOS5、6的启动流程 Linux:kernel rootfs,Linux系统就是内核加上根文件系统。 内核之上是库: 库:函数集合,function,函数具有调用接口,库函数不能单独执行,必须被其他程序调用…

51-17 视频理解串讲— MViT,Multiscale Vision Transformer 论文精读

继TimeSformer模型之后,咱们再介绍两篇来自Facebook AI的论文,即Multiscale Vision Transformers以及改进版MViTv2: Improved Multiscale Vision Transformers for Classification and Detection。 本文由深圳季连科技有限公司AIgraphX自动驾驶大模型团…

农业风险管理案例参考:农作物受灾严重,如何降低损失?

1月20日,国家防灾减灾委员会办公室应急管理部发布2023年全国十大自然灾害,据公布数据显示,此次十大自然灾害致使农作物受灾面积超1092.7千公顷,直接经济损失达2353.22亿元。 农业是安天下、稳民心的战略产业,也是典型…

混沌工程-经典案例分享

目录 前言 案例 1、强弱依赖不合理 2、预案不生效 3、异常数据不兼容 4、监控体系缺陷 5、系统缺整体架构设计 总结 前言 我们公司从启动混沌工程到现在已经几乎覆盖了线上的所有核心业务,先后进行过2000次演练共挖掘出120个漏洞。这些漏洞有些得了及时修复…

基于Skywalking开发分布式监控(四)一个案例

上一篇我们简单介绍了基于SkyWalking自定义增强的基本架构,即通过把Trace数据导入数据加工模块进行加工,进行持久化,并赋能grafana展示。 现在我们给出一个例子,对于量化交易系统,市场交易订单提交,该订单…

2024国内知名大厂Java岗面经,java容器面试题

前言 刚刚过去的双十一,让“高性能”“高可用”“亿级”这3个词变成了技术热点词汇,也让很多人再次萌发成为「架构师」的想法。先问大家一个问题:你觉得把代码熟练、完成需求加上点勤奋,就能成为架构师么?如果你这么认…

Ubuntu22.04系统 安装cAdvisor提示找不到 CPU 的挂载点错误解决办法。

如果我们在安装cAdvisor时容器启动不起来 查看日志如下图所示 1、查看cgroup文件系统是v2 还是 v1 mount | grep cgroup 如图所示我的是v2 , cAdvisor 目前的最新版本(v0.39.0)仍然只支持 cgroup v1,不支持 cgroup v2。因此&#…

PRewrite: Prompt Rewriting with Reinforcement Learning

PRewrite: Prompt Rewriting with Reinforcement Learning 基本信息 2024-01谷歌团队提交到arXiv 博客贡献人 徐宁 作者 Weize Kong,Spurthi Amba Hombaiah,Mingyang Zhang 摘要 工程化的启发式编写对于LLM(大型语言模型)应…

大数据分析技术工程师CCRC-BDATE

大数据分析技术工程师介绍 大数据始于科技之美,归于创造价值。大数据时代,“谁用好数据,谁就能把握先机、赢得主动”。当下数据驱动的电信、社交媒体、生物医疗、电子政务商务等行业都在产生着海量的数据,随着大规模数据关联、交叉…

vue基本用法

文本插值 {{}} 用来绑定data方法返回的对象属性 v-bind:为标签的属性绑定data方法中返回的属性 事件绑定v-on:xxx 简写为xxx 双向绑定v-model 条件渲染 v-if v-else v-else-if 动态渲染页面元素