QT——连接腾讯云物联网平台

        这东西也折腾我好几天来着,我也看了无数篇博主的教程博客,最后也登不上去物联网平台。正当我发愁且找不到原因时,还好我一个朋友做过类似的项目并为我解答疑惑,最后我才能实现这个功能。现在我就来留下我的学习笔记。


QT版本:QT5.9        Mingw32

操作系统:win11


步骤一:Qt移植mqtt库

csdn论坛上也有很多教程,我也是看别人的教程的

Qt 移植mqtt库(非官方库)并连接到eMQ、onenet


步骤二:使用Qt的QMqttClient库来连接物联网平台

1、在工程的.pro文件内添加代码

QT += network

2、在对应的文件内添加如下的头文件

#include "QtMqtt/qmqttclient.h"

3、编译工程会提醒部分头文件无法找到,只需要将报错的文件的改为“”引用即可,大概需要修改3个文件内的头文件,一直修改到编译不报错即可。

4、添加如下的代码,初始化QMqttClient对象、异步连接回调、接收消息异步回调

protected:
     QMqttClient *client;//mqtt服务器对象
protected slots:
    void connected_isr();//连接回调函数
private slots:
    void recv_message(QByteArray message);//接收消息回调

5、添加如下的代码,实例化QMqttClient对象,连接服务器

//下面的内容根据腾讯物联网平台信息进行替换

QHostAddress host("106.55.124.154");//腾讯物联网平台IP地址
QByteArray password = "password";//填写密码
quint16 port = 1883;


    client=new QMqttClient(this);
    client->setKeepAlive(120);
    client->setHost(host);//设置EMQ代理服务器IP
    client->setPort(port);//设置EMQ代理服务器端口号
    client->setClientId("ClientID");//onenet设备ID
    client->setUsername("Username");//onenet的产品ID
    client->setPassword(password);//设置一个客户端密码
    client->cleanSession();//清除缓存
//    client->setVersion(QMQTT::MQTTVersion::V3_1_1);//设置mqtt版本,onenet平台规定为mqtt3.1.1版本

    client->connectToHost();//连接EMQ代理服务器

6.需要发布消息的时候这样发布消息

 QString topic="test";//发布的频道
 QString payload="123456";//消息内容体
 client->publish(QMqttTopicName(topic),payload.toLocal8Bit());//发布消息

注意!!!我这里用的是腾讯云的物联网通信,并不是物联网平台。

不知道为什么他官方文档给的ip地址域名不行,而且我这是广州腾讯云的ip地址,不知道我同学在哪里搞来的,用上他就能登陆了。这地方我也不懂,希望有大佬能够为我解惑

QT——连接腾讯云物联网平台

 物联网通信

本文章来源于互联网,如有侵权,请联系删除!原文地址:QT——连接腾讯云物联网平台

相关推荐: 教程五:物联网平台使用手册

《物美智能》系列文章目录 一款强大的物联网管理平台介绍-《物美智能》 教程一:阿里云使用docker快速部署服务端 教程二:本地配置服务端开发环境 教程三:硬件端-Arduino和ESP8266开发板入门 教程四:使用物联网平台控制硬件端 教程五:物联网平台使…