首页 > 技术知识 > 正文

ThingsBoard介绍

最近看了很多开源的物联网的项目,其中有一个让我印象很深,那就是Thingsboard 下面我就给大家介绍一下这个项目,并指导大家如何在本地安装一个Thingsboard来体验它。

首先引用官网的项目介绍就是

一个开源的用于数据收集,处理,可视化和设备管理的开源物联网平台。 它通过行业标准的物联网协议(MQTT,CoAP和HTTP)实现设备连接,并支持云和本地部署。ThingsBoard结合了可伸缩性,容错性和性能,因此您永远不会丢失数据。

用它开源收集链接设备,收集设备的数据,可以对数据进行处理,而且提供可视化的页面组件。

在GitHub上高达8014星.使用的用户也非常的多。ThingBoard教程(一):ThingBoard介绍及安装

ThingsBoard特征

他的特性大致可以分为以下14个,这是根据官网的英文翻译以及自己这段时间的使用总结而来。

遥测数据收集

以可靠的方式收集和存储遥测数据,以应对网络和硬件故障。使用可自定义的Web仪表板或服务器端API访问收集的数据。

多租户

开箱即用地支持多租户安装。单个租户可能具有多个租户管理员以及数百万个设备和客户。

数据可视化

提供30多个可立即配置的小部件,并能够使用内置编辑器创建自己的小部件。内置线图,数字和模拟仪表,地图等等。

横向可扩展性

随着以群集模式添加新的Thingsboard服务器,受支持的服务器端请求和设备的数量呈线性增加。无停机时间,服务器重启或应用程序错误。

物联网规则引擎

根据实体属性或消息内容,使用灵活的规则链处理传入的设备数据。使用自定义逻辑将数据转发到外部系统或触发警报。在警报上配置复杂的通知链。增强服务器端功能或使用高度可定制的规则来操作设备。使用拖放规则链设计器定义您的应用程序逻辑。

容错

所有Thingsboard服务器都是相同的。没有主人工人或热备用人员。自动检测到节点故障。可以在不停机的情况下更换发生故障的节点。使用可靠的NoSQL数据库复制持久数据。

设备管理

提供注册和管理设备的功能。允许监视客户端和供应服务器端设备属性。为服务器端应用程序提供API,以将RPC命令发送到设备,反之亦然。

安全

支持MQTT和HTTP协议的传输加密。支持设备认证和设备凭证管理。

资产管理

提供注册和管理资产的功能。允许供应服务器端资产属性 并监视相关警报。使用关系建立实体层次的能力。

定制与整合

使用可自定义的规则链,小部件和传输实现扩展默认平台功能。除了MQTT,CoAP和HTTP支持之外,ThingsBoard用户还可以使用自己的传输实现或自定义现有协议的行为。

警报管理

提供了创建和管理能力的报警与你的实体:设备,资产,客户等可以实时报警监控和报警传播到相关实体的层次结构。在设备断开连接或不活动事件时发出警报。

100%开源

ThingsBoard已获得Apache许可2.0的许可,因此您可以在商业产品中免费使用它。您甚至可以将其托管为SaaS或PaaS解决方案。

微服务或单片

支持针对入门环境或小型环境的整体部署。提供升级到微服务的功能,以实现高可用性和水平可伸缩性。

SQL,NoSQL和混合数据库

支持各种数据库选项以及选择存储主要实体和遥测数据的位置的功能

安装ThingsBoard

ThinsBoard官方提供了很多在不同系统,环境上的安装方式,

在Ubuntu上安装 在Centos和RedHat上安装 在windows上安装 在树莓派3上安装 使用docker在windows上安装 使用dacker在苹果或linux系统上安装 使用源码构建 在集群上安装

本次我给大家演示一下,如何在Windows上使用docker来安装ThingsBoard

我们安装的是社区版的ThingsBoard。此外还有专业版的, 在安装ThingsBorad之前我们需要先安装Docker ToolBox的Windows版本。 使用的镜像是 thingsboard/tb-postgres ThingsBoard与PostgreSQL数据库的单实例。对于具有至少1GB内存的小型服务器的推荐选项。建议使用2-4GB。

首先我们拉取一下镜像

docker pull thingsboard/tb-postgres

该进行有1.35G,直接从Docker hub拉取非常的缓慢,可以采用中转手段加速拉取。

先让系统慢慢拉取,我们接着做其他事情

启动镜像我们需要使用存储卷的方式来进行数据持久化。 创建二个存储卷,一个存数据,一个存日志

docker volume create mytb-data docker volume create mytb-logs

在window上安装ThingBoard 使用本地内存来存储消息队列,你也可以选择一些其他的消息队列,如Kafka,aws托管,RabbitMQ。这里之所有使用本地的,是因为足够简单。非常适合新手学习,体验。 以下是docker-compose.yml的全部内容

version: 2.2 services: mytb: restart: always image: “thingsboard/tb-postgres” ports: – “8080:9090” – “1883:1883” – “5683:5683/udp” environment: TB_QUEUE_TYPE: in-memory volumes: – mytb-data:/data – mytb-logs:/var/log/thingsboard volumes: mytb-data: external: true mytb-logs: external: true

在docker-compose.yml所在的目录指向docker命令

docker-compose up

ThingBoard教程(一):ThingBoard介绍及安装1

就会看到容器被启动

Pulling mytb (thingsboard/tb-postgres:)… latest: Pulling from thingsboard/tb-postgres Digest: sha256:6799ff5f64012f4ee4954453f1633cfde771ba9250de49d3f154d4a4f4bdfe32 Status: Downloaded newer image for thingsboard/tb-postgres:latest Creating dockertoolbox_mytb_1 … done Attaching to dockertoolbox_mytb_1 mytb_1 | The files belonging to this database system will be owned by user “thingsboard”. mytb_1 | This user must also own the server process. mytb_1 | mytb_1 | The database cluster will be initialized with locale “C.UTF-8”. mytb_1 | The default database encoding has accordingly been set to “UTF8”. mytb_1 | The default text search configuration will be set to “english”. mytb_1 | mytb_1 | Data page checksums are disabled. mytb_1 | mytb_1 | fixing permissions on existing directory /data/db … ok mytb_1 | creating subdirectories … ok mytb_1 | selecting default max_connections … 100 mytb_1 | selecting default shared_buffers … 128MB mytb_1 | selecting default timezone … Etc/UTC mytb_1 | selecting dynamic shared memory implementation … posix mytb_1 | creating configuration files … ok mytb_1 | running bootstrap script … ok mytb_1 | performing post-bootstrap initialization … ok mytb_1 | syncing data to disk … ok mytb_1 | mytb_1 | WARNING: enabling “trust” authentication for local connections mytb_1 | You can change this by editing pg_hba.conf or using the option -A, or mytb_1 | –auth-local and –auth-host, the next time you run initdb. mytb_1 | mytb_1 | Success. You can now start the database server using: mytb_1 | mytb_1 | /usr/lib/postgresql/11/bin/pg_ctl -D /data/db -l logfile start mytb_1 | mytb_1 | CREATE DATABASE mytb_1 | Starting ThingsBoard installation … mytb_1 | =================================================== mytb_1 | :: ThingsBoard :: (v3.2.1) mytb_1 | =================================================== mytb_1 | mytb_1 | Starting ThingsBoard Installation… mytb_1 | Installing DataBase schema for entities… mytb_1 | Installing SQL DataBase schema part: schema-entities.sql mytb_1 | Installing SQL DataBase schema indexes part: schema-entities-idx.sql mytb_1 | Installing DataBase schema for timeseries… mytb_1 | Installing SQL DataBase schema part: schema-ts-psql.sql mytb_1 | Successfully executed query: CREATE TABLE IF NOT EXISTS ts_kv_indefinite PARTITION OF ts_kv DEFAULT; mytb_1 | Loading system data… mytb_1 | Loading demo data… mytb_1 | Installation finished successfully! mytb_1 | Starting ThingsBoard … mytb_1 | =================================================== mytb_1 | :: ThingsBoard :: (v3.2.1) mytb_1 | =================================================== mytb_1 | mytb_1 | 2021-01-27 02:02:28,733 [main] INFO o.t.s.ThingsboardServerApplication – Starting ThingsboardServerApplication v3.2.1 on 39d96cbe1834 with PID 119 (/usr/share/thingsboard/bin/thingsboard.jar started by thingsboard in /) mytb_1 | 2021-01-27 02:02:28,740 [main] INFO o.t.s.ThingsboardServerApplication – No active profile set, falling back to default profiles: default mytb_1 | 2021-01-27 02:02:34,816 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Multiple Spring Data modules found, entering strict repository configuration mode! mytb_1 | 2021-01-27 02:02:34,817 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Bootstrapping Spring Data JPA repositories in DEFAULT mode. mytb_1 | 2021-01-27 02:02:35,002 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Finished Spring Data repository scanning in 169ms. Found 1 JPA repository interfaces. mytb_1 | 2021-01-27 02:02:35,008 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Multiple Spring Data modules found, entering strict repository configuration mode! mytb_1 | 2021-01-27 02:02:35,009 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Bootstrapping Spring Data JPA repositories in DEFAULT mode. mytb_1 | 2021-01-27 02:02:35,054 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Finished Spring Data repository scanning in 44ms. Found 1 JPA repository interfaces. mytb_1 | 2021-01-27 02:02:35,055 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Multiple Spring Data modules found, entering strict repository configuration mode! mytb_1 | 2021-01-27 02:02:35,056 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Bootstrapping Spring Data JPA repositories in DEFAULT mode. mytb_1 | 2021-01-27 02:02:35,561 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Finished Spring Data repository scanning in 505ms. Found 28 JPA repository interfaces. mytb_1 | 2021-01-27 02:02:35,603 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Multiple Spring Data modules found, entering strict repository configuration mode! mytb_1 | 2021-01-27 02:02:35,604 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Bootstrapping Spring Data JPA repositories in DEFAULT mode. mytb_1 | 2021-01-27 02:02:35,660 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Finished Spring Data repository scanning in 56ms. Found 1 JPA repository interfaces. mytb_1 | 2021-01-27 02:02:36,652 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Multiple Spring Data modules found, entering strict repository configuration mode! mytb_1 | 2021-01-27 02:02:36,657 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate – Bootstrapping Spring Data Redis repositories in DEFAULT mode.
<

启动之后,使用浏览器打开 http://ip+8080/

就可以看到下面这个页面 ThingBoard教程(一):ThingBoard介绍及安装2

默认的账号和密码是 账号:sysadmin@thingsboard.org 密码:sysadmin 登录后,就是朴实无华的首页 ThingBoard教程(一):ThingBoard介绍及安装3

开始你愉快的探索吧。 我是Fizz,关注我,分享更多物联的知识给你。

猜你喜欢