ThingsBoard开源物联网平台详解
随着物联网技术的飞速发展,企业和个人开发者对于物联网平台的需求日益增长。ThingsBoard作为一个全栈开源物联网平台,以其灵活的架构设计、丰富的功能集以及广泛的社区支持,成为了众多物联网解决方案中的佼佼者。本文旨在详细介绍ThingsBoard的功能特性、应用场景以及如何使用该平台来构建物联网应用。
一、ThingsBoard概述
ThingsBoard是一款用于连接、监控和管理物联网设备的开源平台。它提供了完整的端到端解决方案,包括设备管理、数据采集、消息队列、规则引擎、数据存储与可视化等核心功能。平台支持多种常见的物联网协议(如MQTT、CoAP、HTTP等),并且可以轻松扩展以支持自定义协议。ThingsBoard的目标是帮助企业及个人开发者快速构建安全、可靠且可扩展的物联网应用。
🎉 请大家持续关注,watch、star、fork 一键三连
二、ThingsBoard的主要功能
-
设备管理
- 注册与认证:ThingsBoard允许通过多种方式注册设备,并为每个设备分配唯一的凭证,确保只有授权的设备才能接入平台。
- 远程配置:平台支持对设备进行远程配置,例如更新固件或调整工作参数。
- 健康监测:通过收集设备运行状态信息,ThingsBoard可以帮助管理员及时发现并解决潜在的问题。
-
数据采集
- 多协议支持:ThingsBoard兼容各种物联网通信协议,使得不同类型的设备能够无缝接入。
- 数据处理:平台内置了复杂的数据处理能力,包括过滤、聚合、转换等操作。
- 消息队列:利用消息队列技术,保证了海量设备数据的高效传输。
-
规则引擎
- 自动化工作流:通过定义规则链,可以实现基于事件触发的自动化流程。
- 脚本执行:支持使用JavaScript编写脚本来处理数据,增加了系统的灵活性。
-
数据存储与可视化
- 持久化存储:ThingsBoard可以将采集到的数据存储至数据库中,便于后续分析。
- 仪表板:提供了灵活的仪表板编辑器,允许用户根据需求自定义数据展示方式。
- 报警通知:当数据超出预设阈值时,系统能够自动发送报警信息给指定接收人。
-
安全性
- 身份验证与授权:通过OAuth2、JWT等方式确保了用户的访问安全。
- 加密通信:支持TLS/SSL加密连接,保护了数据传输过程中的安全。
- 审计日志:记录所有的操作行为,有助于追踪问题根源。
三、Thingsboard架构
Thingsboard有两种架构形式,微服务架构和 Monolithic 架构,两个架构的基本功能一致,该文档主要介绍 Monolithic 架构,架构图如下:
Device端: 数据采集,需要支持MQTT或HTTP等协议
通讯通道: 数据采集监听
规则引擎: 对数据进行过滤,处理核心业务规则服务侧 API 和 GW
用 户 端: 用户和应用
1. 设备连接
支持MQTT、CoAP、HTTP(S) 等协议,通过以上协议设备可以连接到信息网络,比如4G、5G。
2. 引擎规则
TingsBoard Rule Engine 处理来自设备的信息,并触发称为插件的可配置模块。
3. 核心服务
- TingsBoard包含一组允许管理管理以下实体的核心服务:
- 设备及其凭据
- 规则链及规则节点
- 租户 Tenants,客户 Customers 和平台的关系是:平台 =>租户 =>客户
- 小部件和仪表盘
- 警报和事件
- 规则能够调用此API的某个子集。例如,规则可以为某些设备创建报警
4. 服务端API网关
每个 ThingsBoard 服务器都为注册用户提供 REST API。system telemetry 服务允许使用REST API 和 websocket 管理属性并获取时间序列数据。系统 RPC 服务提供 REST API 以自定义命令推送到设备。
测量数据处理:
RPC 过程:
根据发起者,Thinsboard RPC 功能可以分为两种类型:设备发起的 RPC 调用和服务器发起的 RPC 调用。为了使用更熟悉的名称,我们将源自设备的 RPC 调用命名为客户端 RPC 调用,将源自服务器的 RPC 调用命名为服务器端 RPC 调用。
服务器端RPC调用可以分为单向和双向:
- 单向RPC: 请求没有发送确认就发送到设备,并且显然不提供设备的任何响应。仅当在可配置的超时时间内没有与目标设备的活动连接时,RPC调用才会失败。
- 双向RPC: 请求被发送到设备,并期望在特定的超时时间内接收到来自设备的响应。服务器端请求将被阻止,直到目标设备回复该请求为止。
规则引擎:
规则: 过滤器,处理器,Action
插件: 处理消息,服务侧API请求,WebSocket和应用,持久化和查询事件,插件间RPC通信
遥测插件-系统插件,负责处理与设备属性和遥测有关的各种请求。
RPC 插件-允许使用 REST API 对设备执行 RPC 调用。RPC 调用将使用支持的网络协议传递到设备。
设备消息传递插件-允许分配给相同客户交换事件的设备。
发送邮件插件-允许发送电子邮件。您可以指定邮件服务器属性。有关更多详细信息,请参见插件文档。
Kafka插件-允许将遥测消息推送到Apache Kafka。有关更多详细信息,请参见插件文档。
RabbitMQ插件-允许将遥测消息推送到RabbitMQ。有关更多详细信息,请参见插件文档。
REST API呼叫插件-允许使用REST API将遥测消息推送到外部服务器。有关更多详细信息,请参见插件文档。时间RPC插件-允许从设备发送RPC请求以获取当前服务器端时间戳。
IoT网关:
在所有的物联网中,IOT 网关是非常重要的一环,大部分(60%-80%)设备都属于哑终端设备(不支持 IP),这些设备都需要通过网关才能够接入到云平台。因此 Thingsboard 支持通过 IOT 网关进入到平台,下面是 IOT 网关的整体架构图。
(其中最新版本的采用Python语言进行编写,建议可以自定义接收端口后,发送到ThingsBoard)
目前网关支持:
- MQTT扩展,用于控制,配置和收集使用现有协议连接到外部MQTT代理的IoT设备的数据。
- OPC-UA扩展,用于从连接到OPC-UA服务器的IoT设备收集数据。
- Sigfox扩展,用于从连接到Sigfox Backend的IoT设备收集数据。
- Modbus扩展,用于从通过Modbus协议连接的物联网设备收集数据。
四、ThingsBoard的应用场景
数字能源
数字能源综合管理平台是电力能耗运维管理的智能解决方案,广泛适用于政府、园区、高校等事业单位。平台基于物联网技术,对电力能耗、电器设备运行参数等数据进行实时采集、分析,帮助企业发现异常能耗、发掘节能潜力,结合用户用电习惯智能分派节能目标,实现对能源的精细化管理,达到提节能降耗、降本增效的目的。
消防智能预警监测系统
消防智能预警监测系统是依托于物联网、大数据、人工智能,区块链等技术,结合电流指纹算法,对各类消防终端监测设备采集数据的分析与运用。实现”70+“款设备接入、“30+“业务场景覆盖、”500+“项目落地。广泛运用于城市运营、社区管理、文旅、高校、园区、商业综合体、九小场所等行业。致力于帮忙客户实现消防的智能化改造、提升智能化管理水平、降低监管压力、守护人民生命财产安全。
五、搭建与使用ThingsBoard
要开始使用ThingsBoard,首先需要在其官方网站下载相应的安装包。ThingsBoard支持多种部署方式,包括Docker容器、Kubernetes集群以及直接安装在Linux服务器上。对于初学者而言,推荐使用Docker快速启动一个开发环境。安装完成后,可以通过浏览器访问ThingsBoard的管理界面,创建账户并开始探索其各项功能。
六、结语
随着物联网技术的不断进步,像ThingsBoard这样的开源平台正发挥着越来越重要的作用。它们不仅降低了物联网应用开发的门槛,还促进了技术的创新与发展。对于希望涉足物联网领域的开发者来说,掌握一个强大而灵活的平台如ThingsBoard,无疑将为他们的项目带来无限可能。在未来,随着更多先进技术的应用,ThingsBoard将继续引领物联网平台的发展趋势。