Qt基于开源MQTT自主接入阿里云IoT平台

本文介绍如何使用Qt MQTT库自主接入阿里云IoT平台,包括下载源码、库安装及代码示例。示例中详细展示了如何通过三元组信息计算登录参数,连接阿里云并发布消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt基于开源MQTT自主接入阿里云IoT平台

一、下载qmqtt源码
下载地址:https://github.com/emqtt/qmqtt
二、qmqtt库安装,不想自己编译的,可以直接下载:https://download.youkuaiyun.com/download/miaoliang_happy/11181273
三、代码示例
1、根据三元组信息计算登录阿里云Iot平台的必要参数 代码片.

// 三元组信息设置
    ProductKey="xxxxxxxx";//需要跟阿里云Iot平台一致;
    DeviceName="xxxxxxxx";//需要跟阿里云Iot平台一致;
    DeviceSecret="xxxxxxxx";//需要跟阿里云Iot平台一致;
    RegionId="cn-shanghai";
    PubTopic = "/sys/" + ProductKey + "/" + DeviceName + "/thing/event/property/post";//发布topic
    SubTopic = "/sys/" + ProductKey + "/" + DeviceName + "/thing/service/property/set";//订阅topic
    QString targetServer = ProductKey + ".iot-as-mqtt." + RegionId + ".aliyuncs.com";//域名
    QString clientId="ts1234";//这里随便写,最好是设备的Mac地址
    QString signmethod = "hmacsha1";
    QString timestamp ="789";//这里随便写,表示当前时间毫秒值
    QString message ="clientId"+clientId+"deviceName"+DeviceName+"productKey"+ProductKey+"timestamp"+timestamp;
    
2、连接阿里云  `代码片`.
	client = new QMQTT::Client(targetServer, 1883,0,false);//连接阿里云
	connect(client, SIGNAL(connected()), this, SLOT(mqttConnectSuccess()));//连接成功,打印SUCCESS
    connect(client, SIGNAL(disconnected()), this, SLOT(mqttDisconnect()));//连接失败,打印Disconnect
    client->setUsername(DeviceName + "&" + ProductKey);
    client->setClientId(clientId + "|securemode=3,signmethod=" + signmethod + ",timestamp="+timestamp+ "|");
    //QMessageAuthenticationCode::hash()加密计算,获取用户登录密码
    client->setPassword(QMessageAuthenticationCode::hash(message.toLocal8Bit(), DeviceSecret.toLocal8Bit(), QCryptographicHash::Sha1).toHex());
    client->connectToHost();//连接阿里云
3、发布消息 `代码片`.
    QMQTT::Message msg;
    QString payload="{'params':{'Temperature':20.9,'Humidity':42}}";//测试Temperature=20.9 ,Humidity=42
    msg.setTopic(PubTopic);
    msg.setPayload(payload.toLocal8Bit());
    client->publish(msg);
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值