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——连接腾讯云物联网平台

物联网通信

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/31642

(0)
上一篇 2024年8月16日
下一篇 2024年8月17日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml