简介

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

  1. 获取连贯地址和端口。期待部署状态为运行中,进入部署概览页面,找到连贯地址和 mqtt 协定对应的连贯端口,后续在 ThingsBoard 中增加集成时咱们须要用到它们。

  2. 增加认证信息。进入【认证鉴权】->【认证】中增加一套用户名明码用于后续集成中的认证。

配置 ThingsBoard

  1. 在【Data converters】中新增一个 Uplink 类型的数据转换器。该上行数据转换器的作用是解析传入音讯的无效负载并将其转换为 ThingsBoard 应用的格局。

    1. 填写名称,类型抉择 Uplink ,开启 Debug 模式并将下述解析脚本复制粘贴到解析办法中。

      // Decode an uplink message from a buffer// payload - array of bytes// metadata - key/value object// decode payload to jsonvar 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 functionsfunction 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;
    2. 点击测试按钮,进入测试页面,对刚刚的解析脚本进行测试。输出 JSON 格局的 payload 内容进行测试,能够看到测试输入数据中蕴含输出的设施名称、温度和湿度数据。而后点击保留按钮,回到刚刚的配置页面。

    3. 点击增加按钮而后便胜利增加一个 Uplink 类型的数据转换器。

  2. 进入【Integrations】新增 EMQX Cloud 部署集成。

    1. 点击增加集成,输出名称并抉择上述第 1 步中胜利增加好的上行数据转换器 MQTT-Uplink 。之后复制粘贴 EMQX Cloud 部署概览页面中的连贯地址和 mqtt 协定对应的端口号。

    2. 增加认证信息。因为 EMQX Cloud 部署均默认开启认证,所以咱们能够抉择根底类型的认证,而后填入在 EMQX Cloud 认证页面中增加好的用户名和明码。点击测试连贯,能够看到右下角弹出连贯曾经胜利建设的信息提醒,示意曾经胜利和 EMQX Cloud 部署集成。最初输出一个过滤主题 /test/integration/emqxcloud(后续模仿测试时,咱们须要用这个主题去公布一条音讯),最初点击增加按钮,便胜利增加好了与 EMQX Cloud 部署的集成。

集成测试

在实现上述集成配置之后,咱们应用 MQTT 5.0 客户端工具 - MQTT X 来模仿一个设施测试和验证该性能的有效性。

  1. 应用 MQTT X 作为一个设施连贯到 EMQX Cloud 部署。

  2. 胜利建设连贯之后,向上述集成时配置的过滤主题 /test/integration/emqxcloud 模仿发送一条设施上报的温湿度数据。

  3. 进入 ThingsBoard 中的设备组下的全副菜单中,能够看到这里曾经显示了咱们刚刚模仿的设施名称和温湿度数据。阐明曾经在 ThingsBoard 中胜利集成 EMQX Cloud 部署。在 Integration with EMQX Cloud 集成详情页面中的 【Events】和【Relations】中也能够看到刚刚的模仿数据的相干信息。

自定义 Dashboard 接入 MQTT 数据

  1. 增加一个新的 dashboard。

  2. 关上 dashboard 点击右下角橙色的编辑图标,而后进行图中所示的操作新增一个 别名(定义将应用实体的数据)。过滤类型抉择单个实体,类型抉择设施并选中下面 MQTT X 模仿的 Device Test 设施。增加完所有的配置信息之后,须要点击右下角的利用图标,否则将无奈利用或保留之前已实现好的配置。

  3. 新增一个工夫序列表格小组件。

    1. 仍旧在刚刚的页面点击右下角橙色编辑图标,进入编辑模式,而后点击新增小组件。

    2. 输出 Cards 进行搜寻找到 Timeseries table 并点击进行配置。

    3. 配置刚刚抉择的表格,实例别名抉择上述设置好的别名,而后增加表格的键值,最初点击增加按钮。

    4. 拖拽调整刚刚新增的表格大小,并且点击橙色勾图标利用按钮。

    5. 咱们当初回到 MQTT X 扭转温度值为 25,湿度为 80,再次公布一条音讯,能够看到刚刚配置好的表格中便有了相应的数据。

  4. 与下面第 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