乐趣区

关于物联网:如何使用-ThingsBoard-接入-MQTT-数据

简介

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 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;
    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

退出移动版