一、MQTT協議簡介
MQTT(消息隊列遙測傳輸)是一個基于客戶端-服務器的消息發布/訂閱傳輸協議,是ISO標準(ISO/IEC PRF 20922)下基于發布/訂閱范式的消息協議。MQTT工作在TCP/IP協議棧上,是為硬件性能低下的遠程設備以及網絡狀況不理想的情況下而設計的發布/訂閱型消息協議。由于MQTT協議的輕量、簡便、開放的特點使它適用范圍非常廣泛。在很多情況下,包括受限的環境中使用,廣泛應用于物聯網(IoT)。MQTT協議在衛星鏈路通信傳感器、醫療設備、智能家居、及一些小型化設備中已廣泛使用。
阿里云為國內主流的云平臺,提供免費試用的物聯網平臺,本文使用小凌派RK2206開發板實現基于OpenHarmony的阿里云IoT服務。小凌派RK2206開發板采用瑞芯微高性能、高性價比的RK2206芯片。RK2206芯片是一款低功耗、高集成的MCU無線局域網處理器,它可以應用于不同的應用領域,如物聯網、可穿戴設備、家庭自動化、云連接等。小凌派RK2206開發板內置WIFI模塊,外部接口豐富,使用一個小凌派RK2206開發板就能夠輕松實現MQTT物聯網多種應用。
二、硬件電路設計
如圖1所示,為小凌派RK2206開發板支持的外部接口,本文使用小凌派RK2206開發板內置的WIFI和MQTT服務器通信。
圖1 小凌派RK2206開發板
三、軟件設計
主程序設計
在iot_aliyun_example函數中,通過LOS_TaskCreate函數創建iot_aliyun_thread線程,并設置線程優先級、線程堆棧大小等參數。
阿里云服務程序設計
iot_aliyun_thread函數中,開發板先連接WIFI,通過WIFI和阿里云IoT平臺通信;WIFI連接成功后,初始化網絡,初始化MQTT客戶端;初始化完成后,成功連接阿里云IoT平臺。
四、編譯測試
登錄阿里云
設備連接阿里云前,需要做一些準備工作;登錄阿里云IoT平臺,在平臺注冊個人用戶賬號,并且需要實名認證后才可以正常使用。如圖2所示,為阿里云IoT平臺地址:https://free.aliyun.com/product/iotfreetrail。
圖2 阿里云IoT平臺地址
開通物聯網服務
在阿里云IoT平臺注冊個人用戶賬號并進行登錄,登錄后需要開通物聯網平臺服務,點擊立即開通,如圖3所示。
圖3 開通物聯網平臺
點擊立即開通,在確認頁面,點擊右下角的立即開通,如圖4所示。
圖4 立即開通
點擊立即開通,提示開通成功,如圖5所示。
圖5 開通成功提示
點擊進入管理控制臺,管理控制臺如圖6所示。
圖6 管理控制臺
創建產品
點擊進入公共實例,點擊側邊欄的產品頁面,點擊創建產品,如圖7所示。
圖7 創建產品
輸入產品名稱,選擇自定義品類-直連設備,點擊確定創建產品,如圖8所示。
圖8 創建產品詳情
成功創建產品后,側邊欄點擊產品,可以查看到創建的產品信息,如圖9所示。
圖9 產品詳情
添加設備
點擊側邊欄設備頁面,點擊添加設備,如圖10所示。
圖10 添加設備
按照要求填入產品名稱和DeviceName,點擊確認,如圖11所示。
圖11 添加設備詳情頁
成功創建設備后,側邊欄點擊設備,可以查看到創建的設備信息,如圖12所示。
圖12 設備頁面
點擊進入剛添加的設備,可以查看到設備的詳細信息,如圖13所示。
圖13 設備詳情
點擊查看MQTT連接參數,查看MQTT連接所需的參數,如圖14所示。
圖14 MQTT連接參數
在PC上使用WIN + R鍵打開命令行CMD,執行如下命令獲取接入域名的IP地址。如圖15所示,通過ping命令可以查詢到MQTT域名的IP地址為47.102.164.191。
ping iot-06z00d4dxawzdv7.mqtt.iothub.aliyuncs.com
圖15 查詢MQTT域名IP地址
對應修改代碼中的MQTT_SERVER_IP為查詢到PC端IP地址47.102.164.191,MQTT_SERVER_PORT修改為MQTT服務器端口號1883。代碼如下所示:
#define MQTT_SERVER_IP "47.102.164.191"
#define MQTT_SERVER_PORT 1883
根據MQTT連接參數依次修改代碼中的CLIENT_ID、USERNAME和PASSWORD,代碼如下所示:
#define PRODUCT_KEY "hdm1KctTIxC"
#define DEVICE_NAME "aliyun"
#define CLIENT_ID "hdm1KctTIxC.aliyun|securemode=2,signmethod=hmacsha256,timestamp=1655280007303|"
#define USERNAME "aliyun&hdm1KctTIxC"
#define PASSWORD "d41441cfae339f4a09ac2bc600b736db80d3d6694f1d58efc16eb8e812d4d295"
WIFI連接
修改代碼中的SSID和PASSWORD為使用WIFI的SSID和密匙,用于連接網絡,設備通過WIFI訪問阿里云IoT平臺。代碼如下所示:
#define SSID "lzdz"
#define PASSWORD "12345678"
運行結果
例程代碼編譯燒寫到開發板后,按下開發板的RESET按鍵,通過串口軟件查看日志,串口打印MQTT初始化、連接等日志。
NetworkConnect...
MQTTClientInit...
MQTTConnect...
MQTTSubscribe...
此時登錄阿里云IoT平臺,點擊進入設備詳情頁面,可以看到設備的當前狀態為在線。如圖所示。
圖16 設備上線阿里云IoT平臺
來源:凌智電子
-
IOT
+關注
關注
187文章
4210瀏覽量
196798 -
OpenHarmony
+關注
關注
25文章
3722瀏覽量
16317 -
RK2206
+關注
關注
0文章
34瀏覽量
1788 -
小凌派
+關注
關注
0文章
27瀏覽量
1202
發布評論請先 登錄
相關推薦
評論