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 等功能,且具备强大灵活的数据集成能力,方便用户与其现有云服务资源对接。提供一站式运维代管,可以节省大量的时间和人力成本,让企业专注在交付更有价值的业务系统。
mqtt
协议对应的连接端口,后续在 ThingsBoard 中添加集成时我们需要用到它们。
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;
Uplink
类型的数据转换器。
MQTT-Uplink
。之后复制粘贴 EMQX Cloud 部署概览页面中的连接地址和mqtt
协议对应的端口号。
/test/integration/emqxcloud
(后续模拟测试时,我们需要用这个主题去发布一条消息),最后点击添加按钮,便成功添加好了与 EMQX Cloud 部署的集成。
在完成上述集成配置之后,我们使用 MQTT 5.0 客户端工具 - MQTT X 来模拟一个设备测试和验证该功能的有效性。
/test/integration/emqxcloud
模拟发送一条设备上报的温湿度数据。
至此,我们完成了在 ThingsBoard Cloud 中集成 EMQX Cloud 部署,并且使用 MQTT X 测试验证了集成功能,最后自定义配置了一个简单的 Dashboard 接入展示 MQTT 数据。在实际项目中,我们可以在深入学习了解 ThingsBoard 后,进行更复杂的 Dashboard 配置,能够更加形象具体地实时监控设备的相关数据,并设置告警阀值,接收告警信息并及时作出相应处理。
版权声明: 本文为 EMQ 原创,转载请注明出处。