日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

MQTT连接阿里云IoT(四)

發(fā)布時間:2025/1/21 c/c++ 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MQTT连接阿里云IoT(四) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概述

前一篇文章我們介紹了設(shè)備密鑰的認(rèn)證方式,那么這里重點(diǎn)來看如何通過Qt的HTTP接口來實(shí)現(xiàn)一型一密動態(tài)注冊的流程。

一型一密動態(tài)注冊

【官網(wǎng)介紹】
直連設(shè)備使用一型一密動態(tài)注冊的流程:

  • 在物聯(lián)網(wǎng)平臺預(yù)注冊設(shè)備,并獲取產(chǎn)品證書(ProductKey和ProductSecret)。預(yù)注冊設(shè)備時,可以使用設(shè)備的MAC地址或SN序列號等作為DeviceName。
  • 在控制臺開啟設(shè)備所屬產(chǎn)品的動態(tài)注冊開關(guān)。
  • 將產(chǎn)品證書燒錄至固件。
  • 設(shè)備向云端發(fā)起身份認(rèn)證。云端認(rèn)證成功后,下發(fā)DeviceSecret。
  • 設(shè)備使用設(shè)備證書與云端建立連接。

直連設(shè)備動態(tài)注冊,通過HTTP發(fā)送請求。 需先在控制臺上,開通該產(chǎn)品的一型一密動態(tài)注冊功能,如下,這個開關(guān)要打開:

URL模板: https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device
HTTP方法: POST

請求數(shù)據(jù)格式:

POST /auth/register/device HTTP/1.1 Host: iot-auth.cn-shanghai.aliyuncs.com Content-Type: application/x-www-form-urlencoded Content-Length: 123 productKey=1234556554&deviceName=deviceName1234&random=567345&sign=adfv123hdfdh&signMethod=HmacMD5

響應(yīng)數(shù)據(jù)格式:

{"code": 200,"data": {"productKey": "1234556554","deviceName": "deviceName1234","deviceSecret": "adsfweafdsf"},"message": "success" }

參數(shù)說明:

根據(jù)官網(wǎng)的接口說明,我們使用Qt接口來請求。

Qt Http post請求動態(tài)注冊設(shè)備

QString productKey = "xxxxx";QString productSecret = "xxxxx";QString deviceName = "xxxxx";QString message = "deviceNameXXXXXXproductKeyXXXXXXXrandom123222";QUrlQuery params;QString sign = QMessageAuthenticationCode::hash(message.toLocal8Bit(),productSecret.toLocal8Bit(),QCryptographicHash::Sha1).toHex();params.addQueryItem("productKey",productKey);params.addQueryItem("deviceName",deviceName);params.addQueryItem("random","123222");params.addQueryItem("sign",sign);params.addQueryItem("signMethod","HmacSHA1");QNetworkRequest request;QString data = params.toString();request.setUrl(QString("https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device"));request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded;");request.setHeader(QNetworkRequest::ContentLengthHeader, data.size());m_pNetWorkManager->post(request,data.toUtf8() );

注意,雖然是動態(tài)注冊設(shè)備,但前提要現(xiàn)在阿里云IOT上創(chuàng)建好設(shè)備。上面代碼中的xxxx換成自己的響應(yīng)信息。

在正式項目中,也可以選擇批量添加設(shè)備。

請求完成就會收到服務(wù)器下發(fā)的數(shù)據(jù)啦:

"{\"code\":200,\"data\":{\"deviceName\":\"xxxxxxxxx\",\"deviceSecret\":\"xxxxxxxxxxxx\",\"productKey\":\"xxxxxxxx\"},\"message\":\"success\"}"

ok,這時候就請求到設(shè)備的deviceSecret了,接下來就可以通過這些信息去正式連接服務(wù)器。關(guān)于連接的部分已經(jīng)在前面的文章中介紹過了,詳情看這里。

總結(jié)

以上是生活随笔為你收集整理的MQTT连接阿里云IoT(四)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。