1. 首页
  2. 物联网相关
  3. 「物联网」通过MQTT协议接入腾讯云数据可视化

「物联网」通过MQTT协议接入腾讯云数据可视化

  • 发布于 2024-09-19
  • 28 次阅读

MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,专为远程设备在低带宽和不稳定网络环境下设计。它具有简单、开放、易于实现的特点,广泛应用于物联网(IoT)领域。通过一个中央代理(Broker),MQTT实现消息的发布和订阅,设备可以通过订阅主题(Topic)来接收消息,或向主题发布消息。

本文将演示如何通过MQTT协议接入腾讯云,并制作一个简易的可视化平台。

简介

腾讯云物联网平台(Tencent Cloud IoT Platform)具有以下几个主要特点:

  1. 高可靠性和高可用性

    • 依托腾讯云强大的基础设施,提供高可靠性和高可用性的服务,确保设备与平台之间的稳定连接和数据传输。

  2. 安全性

    • 提供多种安全机制,包括设备认证、数据加密、访问控制等,保障物联网设备和数据的安全。

  3. 易于集成

    • 提供丰富的API和SDK,支持多种编程语言和操作系统,方便开发者快速集成和开发物联网应用。

  4. 设备管理

    • 提供完善的设备管理功能,可以对设备进行远程监控、配置和管理,支持设备固件升级、状态监控等。

  5. 数据分析和存储

    • 支持大规模数据的采集、存储和分析,帮助用户深入挖掘数据价值,提供可视化的数据分析工具和报表功能。

  6. 边缘计算

    • 支持边缘计算,将部分计算任务下放到靠近设备的边缘节点,降低延迟,提高实时性和可靠性。

  7. 多协议支持

    • 支持多种物联网通信协议,包括MQTT、CoAP、HTTP等,适应不同的应用场景和设备需求。

  8. 丰富的生态系统

    • 腾讯云物联网平台与其他腾讯云服务无缝集成,如大数据、人工智能、音视频等,提供一站式解决方案,帮助用户快速构建物联网应用。

通过这些特点,腾讯云物联网平台能够为用户提供全面的物联网解决方案,满足各种应用场景的需求。

相关地址

腾讯云官网:https://cloud.tencent.com

物联网开发平台文档:https://cloud.tencent.com/document/product/1081

MQTTX工具:https://mqttx.app

亿百特官网:https://www.ebyte.com

相关环境

本文演示使用腾讯云提供的公共实例(免费),整个通讯过程通过串口服务器模拟实际设备上报服务器。主要目的是展示腾讯云平台的MQTT协议通讯与数据可视化功能。

开启MQTT服务

为了便于观察,我们将模拟创建一个室内温度采集与控制的产品。

创建产品

首先在腾讯云中,创建一个物联网平台实例。目前(免费)公共实例提供10台设备的接入与调试。

激活或创建成功后,即可进入实例创建产品。

腾讯云提供了一些常见的物模型,可以直接使用,这里我们选择其他产品自行进行创建。

随后自定义一个产品名称,设备类型中选择“设备”。

通讯方式根据实际情况选择,这里我们使用MQTT协议通讯,因此选择以太网、Wi-Fi或者移动网络(2G/3G/4G)均可。

这里的配置会影响后续使用小程序或者APP的使用,例如需要使用蓝牙进行通讯,则通讯方式需要勾选蓝牙。在后续小程序(或者APP)使用中才能正确连接。

最后,在数据协议中,根据实际使用情况选择即可。这里我们演示中使用物模型和透传都可以。

物模型协议是腾讯云物联网开发平台定义的物模型协议,基于JSON格式可方便地进行设备向云端的数据传输,并在云端进行存储与处理。自定义透传协议则是基于MQTT协议将用户私有业务数据上云。

创建物模型

成功创建后,即可在产品开发中看到刚才我们创建的产品。

点击产品的名称,即可进入产品的开发页面。

根据指引,我们先添加一个物模型来显示设备上报的数据。这里选择自定义功能创建一个模型。

我们模拟创建一个温度采集的数据,可以将设备的温度采集并上报到服务器中。功能类型中选择属性

设置功能名称和标识符,数据类型选择浮点型,并且读写类型选择只读。

确认信息正确后,即可保存创建的功能。然后再创建一个下发控制的功能,演示中创建一个预期温度。

订阅发布主题

创建成功后,根据提示,可以设置关于产品的订阅与发布主题。演示中使用物模型的Topic即可,在列表中可以查看订阅发布主题格式。

小程序

接下来,我们开始创建可视化平台。根据提示,进入交互开发。

腾讯云提供了小程序支持,可以使用腾讯提供的服务,或者自行开发。我们演示中直接使用腾讯云提供的官方小程序进行演示。

根据提示,补充小程序的样式和功能。进入面板配置,绑定刚才创建的两个物模型。

可以看到,默认情况下,两个物模型自动添加到页面内。根据情况设置两个参数的显示风格等。

并且,我们可以,通过扫描右侧的二维码,观察在手机中显示的效果。

确认小程序功能后,即可开始添加设备。

这里的设备名称可以任意设置,只要确保一个产品内不重复即可。

成功创建后,接下来,我们可以使用设备进行连接。

连接与通讯要素

开始连接腾讯云前,需要先准备一些必要的参数。

接入地址与端口

首先是产品接入的地址与端口,在文档中心搜索MQTT 接入即可找到相关的文档信息。根据手册的介绍,需要自行修改接入地址的格式。

MQTT证书认证地址与端口:
地址:产品ID.iotcloud.tencentdevices.com
端口:1883

将产品ID替换对应位置,即可获取到MQTT的接入地址。

通讯三要素

需要获取到MQTT通讯所需的三要素:Client ID、User Name、Password。

在产品开发页面中即可获取到Client ID

但User Name与Password需要通过计算得到。同样可以在文档中找到相关的说明。

也可以使用官方提供的工具进行生成。在文档中搜索生成小工具,即可看到MQTT.fx接入介绍,在文章内,找生成小工具下载地址。

生成小工具:https://iotmarket-1256872341.cos.ap-guangzhou.myqcloud.com/market/772011611/014fc7752c9ef6130dfa408c507da111.zip

镜像:https://www.shawhow.com/TenCent/password/sign.html

工具需要我们提供ProductID、DeviceName以及DeviceSecret的参数。在设备调试中,点击需要接入的产品,即可看到这些参数。DeviceName就是设备名称,DeviceSecret就是设备密钥。

随后将对应的参数填入,确认无误后,即可点击生成UserName和Password。

到这里我们就得到了MQTT通讯所需要的三要素:Client ID、User Name、Password。

订阅与发布主题

接下来,需要获取通讯时所需要的订阅与发布主题。订阅与发布主题在产品开发中的设备开发可以找到。

根据自身需要的主题,提取即可。根据要求替换对应的设备名称即可。

物模型协议

接下来,需要知晓通讯时报文格式,同样在手册中,搜索物模型协议,即可快速定位相关介绍部分。

演示中只需要了解属性上报的报文格式,将当前采集的温度进行上报即可。根据文档的介绍,修改对应的参数即可。

{
    "method":"report",		#表示对象是一个属性。
    "clientToken":"123",	#客户端令牌,
#   "timestamp":1628646783,	#时间戳,更具需求设置,可以不填
    "params":{
        "power_switch":1,	#标识符为:power_switch 表示电源开关的状态。
        "color":1,			#标识符为:color 颜色的状态或模式。
        "brightness":32		#标识符为:brightness 表示亮度的值。
       }
}

到这里关于产品的连接与通讯所需要的所有参数就准备完毕,接下来即可开始进行连接与通讯。

MQTTX模拟通讯

在使用设备进行连接前,先使用软件进行模拟,检查准备的参数是否正确。

演示中使用的是MQTTX软件进行模拟通讯。

将刚才获取到的地址、端口、ClientID、User Name以及Password填入对应的位置。

确认参数正确后,即可尝试连接。

需要注意MQTT版本,可能会由于版本的问题,导致无法连接。推荐使用MQTT3.1.1协议版本。

正确连接到腾讯云后,通过后台看到设备调试页面中的设备,显示设备在线。

进入设备调试页面,方便观察后续数据的收发情况。

返回MQTTX软件,将订阅与发布主题,填入对应的位置。

随后根据前面介绍的报文,发送数据。

成功发送后,可以看到,服务器返回了一条包含ID信息的数据,提示发送成功。

返回腾讯云的设备调试页面,可以看到,刚才通过MQTTX上报的消息。

随后,我们在调试页面手动设置预期温度值。

然后发送。调试日志中会提示我们下行一条设备属性的控制报文。

放回到MQTTX软件,可以看到,刚才收到了一条来自服务器的报文。

设备的接入与通讯

确认所有参数正确后,接下来开始使用实物进行连接与控制。演示将使用一个串口服务器进行模拟,为了方便观察演示效果,用串口连接电脑,模拟实际使用中温度模块采集到数据后处理完成上报给服务器。关于产品的相关使用方法可以查看相关手册或视频进行了解。

首先,将设备工作模式修改到MQTT模式。

随后将刚才我们准备好的参数分别填入。

完成后保存重启设备。然后返回腾讯云观察设备是否成功接入。

接下来,使用一个串口工具。通过串口发送报文到设备。检验是否能够正常通讯。

可以看到,消息成功发送。同样在在线调试页面中也可以看到报文。

随后尝试通过服务器向设备发送参数。

小程序的连接与控制

设备与服务器能够成功通讯后,接下来尝试使用小程序,检查是否能够成功获取到产品相关信息与实现控制。

演示使用的是腾讯云官方提供的小程序,在产品交互中可以找到相关小程序二维码。

扫一扫官方提供的二维码访问小程序。

点击添加设备,通过扫一扫添加。

设备的二维码在腾讯云的设备调试界面中。

扫一扫二维码,成功将设备添加到小程序内。

点击进入产品页面,可看到刚才我们设置的交互页面。

使用串口助手修改温度参数,检验是否能够正常通讯。

最后再尝试使用小程序设置温度,观察串口助手是否能够正常收到报文。