简介
ThingsBoard 是用于数据收集、解决、可视化和设施治理的开源物联网平台。它反对通过 MQTT、CoAP 和 HTTP 等协定实现设施连贯,并反对云和公有部署。应用丰盛的服务器端 API,以平安的形式提供、监测和管制您的物联网实体,定义您的设施、资产、客户或任何其余实体之间的关系。以可扩大和容错的形式收集和存储遥测数据,用内置或定制的部件和灵便的仪表盘来可视化您的数据,并且能够和您的客户共享 Dashboard 界面。
本文将应用 ThingsBoard Cloud 联合 EMQ 旗下的全托管 MQTT 云服务 – EMQX Cloud,介绍如何在 ThingsBoard 中集成第三方 MQTT Broker 并自定义配置 Dashboard UI 接入 MQTT 数据。
筹备
因为咱们应用的是 ThingsBoard Cloud,所以咱们无需下载安装,只须要拜访 https://thingsboard.cloud/signup 进行注册登录便可取得相干服务。除了应用 ThingsBoard 云服务之外,用户也能够抉择公有部署进行下载安装。
留神:只有专业版具备 平台集成 性能,所以须要应用 ThingsBoard Cloud 或者是下载部署专业版。
本文应用全托管的 MQTT 音讯云服务 – EMQX Cloud 创立第三方 Broker。注册登录 EMQX Cloud 控制台,新建部署,一个部署即为一个 Broker。新用户同时领有 14 天根底版和 14 天专业版收费试用机会。
EMQX Cloud 提供 VPC 对等连贯和 REST API 等性能,且具备弱小灵便的数据集成能力,不便用户与其现有云服务资源对接。提供一站式运维代管,能够节俭大量的工夫和人力老本,让企业专一在交付更有价值的业务零碎。
集成
应用 EMQX Cloud
-
获取连贯地址和端口。期待部署状态为运行中,进入部署概览页面,找到连贯地址和
mqtt
协定对应的连贯端口,后续在 ThingsBoard 中增加集成时咱们须要用到它们。 -
增加认证信息。进入【认证鉴权】->【认证】中增加一套用户名明码用于后续集成中的认证。
配置 ThingsBoard
-
在【Data converters】中新增一个
Uplink
类型的数据转换器。该上行数据转换器的作用是解析传入音讯的无效负载并将其转换为 ThingsBoard 应用的格局。-
填写名称,类型抉择
Uplink
,开启 Debug 模式并将下述解析脚本复制粘贴到解析办法中。// Decode an uplink message from a buffer // payload - array of bytes // metadata - key/value object // decode payload to json var payloadJson = decodeToJson(payload); var result = { deviceName: payloadJson.deviceName, attributes: { model: 'Model A', serialNumber: 'SN111', integrationName: metadata['integrationName'] }, telemetry: { temperature: payloadJson.temperature, humidity: payloadJson.humidity, } }; // Helper functions function decodeToString(payload) {return String.fromCharCode.apply(String, payload); } function decodeToJson(payload) { // covert payload to string. var str = decodeToString(payload); // parse string to JSON var data = JSON.parse(str); return data; } return result;
-
点击测试按钮,进入测试页面,对刚刚的解析脚本进行测试。输出 JSON 格局的 payload 内容进行测试,能够看到测试输入数据中蕴含输出的设施名称、温度和湿度数据。而后点击保留按钮,回到刚刚的配置页面。
-
点击增加按钮而后便胜利增加一个
Uplink
类型的数据转换器。
-
-
进入【Integrations】新增 EMQX Cloud 部署集成。
-
点击增加集成,输出名称并抉择上述第 1 步中胜利增加好的上行数据转换器
MQTT-Uplink
。之后复制粘贴 EMQX Cloud 部署概览页面中的连贯地址和mqtt
协定对应的端口号。 -
增加认证信息。因为 EMQX Cloud 部署均默认开启认证,所以咱们能够抉择根底类型的认证,而后填入在 EMQX Cloud 认证页面中增加好的用户名和明码。点击测试连贯,能够看到右下角弹出连贯曾经胜利建设的信息提醒,示意曾经胜利和 EMQX Cloud 部署集成。最初输出一个过滤主题
/test/integration/emqxcloud
(后续模仿测试时,咱们须要用这个主题去公布一条音讯),最初点击增加按钮,便胜利增加好了与 EMQX Cloud 部署的集成。
-
集成测试
在实现上述集成配置之后,咱们应用 MQTT 5.0 客户端工具 – MQTT X 来模仿一个设施测试和验证该性能的有效性。
-
应用 MQTT X 作为一个设施连贯到 EMQX Cloud 部署。
-
胜利建设连贯之后,向上述集成时配置的过滤主题
/test/integration/emqxcloud
模仿发送一条设施上报的温湿度数据。 -
进入 ThingsBoard 中的设备组下的全副菜单中,能够看到这里曾经显示了咱们刚刚模仿的设施名称和温湿度数据。阐明曾经在 ThingsBoard 中胜利集成 EMQX Cloud 部署。在 Integration with EMQX Cloud 集成详情页面中的【Events】和【Relations】中也能够看到刚刚的模仿数据的相干信息。
自定义 Dashboard 接入 MQTT 数据
-
增加一个新的 dashboard。
-
关上 dashboard 点击右下角橙色的编辑图标,而后进行图中所示的操作新增一个 别名(定义将应用实体的数据)。过滤类型抉择单个实体,类型抉择设施并选中下面 MQTT X 模仿的 Device Test 设施。增加完所有的配置信息之后,须要点击右下角的利用图标,否则将无奈利用或保留之前已实现好的配置。
-
新增一个工夫序列表格小组件。
-
仍旧在刚刚的页面点击右下角橙色编辑图标,进入编辑模式,而后点击新增小组件。
-
输出 Cards 进行搜寻找到 Timeseries table 并点击进行配置。
-
配置刚刚抉择的表格,实例别名抉择上述设置好的别名,而后增加表格的键值,最初点击增加按钮。
-
拖拽调整刚刚新增的表格大小,并且点击橙色勾图标利用按钮。
-
咱们当初回到 MQTT X 扭转温度值为 25,湿度为 80,再次公布一条音讯,能够看到刚刚配置好的表格中便有了相应的数据。
-
-
与下面第 3 步相似,咱们点击增加小组件,搜寻输出 charts,而后抉择 Timeseries Line Chart,进行配置且把实时工夫范畴改为最近 5 小时。应用 MQTT X 再次发送一条数据,能够看到两个组件中均展现了对应的数据。
总结
至此,咱们实现了在 ThingsBoard Cloud 中集成 EMQX Cloud 部署,并且应用 MQTT X 测试验证了集成性能,最初自定义配置了一个简略的 Dashboard 接入展现 MQTT 数据。在理论我的项目中,咱们能够在深刻学习理解 ThingsBoard 后,进行更简单的 Dashboard 配置,可能更加形象具体地实时监控设施的相干数据,并设置告警阀值,接管告警信息并及时作出相应解决。
版权申明:本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/how-to-use-thingsboard-to-access-mqtt-data