0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于OpenHarmony的阿里云IoT服務(wù)實(shí)現(xiàn)

福州市凌睿智捷電子有限公司 ? 2022-06-18 10:36 ? 次閱讀

一、MQTT協(xié)議簡介

MQTT(消息隊(duì)列遙測傳輸)是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議,是ISO標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱范式的消息協(xié)議。MQTT工作在TCP/IP協(xié)議棧上,是為硬件性能低下的遠(yuǎn)程設(shè)備以及網(wǎng)絡(luò)狀況不理想的情況下而設(shè)計(jì)的發(fā)布/訂閱型消息協(xié)議。由于MQTT協(xié)議的輕量、簡便、開放的特點(diǎn)使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中使用,廣泛應(yīng)用于物聯(lián)網(wǎng)IoT)。MQTT協(xié)議在衛(wèi)星鏈路通信傳感器、醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。

阿里云為國內(nèi)主流的云平臺,提供免費(fèi)試用的物聯(lián)網(wǎng)平臺,本文使用小凌派RK2206開發(fā)板實(shí)現(xiàn)基于OpenHarmony的阿里云IoT服務(wù)。小凌派RK2206開發(fā)板采用瑞芯微高性能、高性價(jià)比的RK2206芯片。RK2206芯片是一款低功耗、高集成的MCU無線局域網(wǎng)處理器,它可以應(yīng)用于不同的應(yīng)用領(lǐng)域,如物聯(lián)網(wǎng)、可穿戴設(shè)備、家庭自動化、云連接等。小凌派RK2206開發(fā)板內(nèi)置WIFI模塊,外部接口豐富,使用一個(gè)小凌派RK2206開發(fā)板就能夠輕松實(shí)現(xiàn)MQTT物聯(lián)網(wǎng)多種應(yīng)用。

二、硬件電路設(shè)計(jì)

如圖1所示,為小凌派RK2206開發(fā)板支持的外部接口,本文使用小凌派RK2206開發(fā)板內(nèi)置的WIFI和MQTT服務(wù)器通信。

6fc48a3c-ee69-11ec-a2f4-dac502259ad0.png

圖1 小凌派RK2206開發(fā)板

三、軟件設(shè)計(jì)

主程序設(shè)計(jì)

在iot_aliyun_example函數(shù)中,通過LOS_TaskCreate函數(shù)創(chuàng)建iot_aliyun_thread線程,并設(shè)置線程優(yōu)先級、線程堆棧大小等參數(shù)。

void iot_aliyun_example(){ unsigned int ret = LOS_OK; unsigned int thread_id1; unsigned int thread_id2; TSK_INIT_PARAM_S task1 = {0}; TSK_INIT_PARAM_S task2 = {0};

ret = LOS_QueueCreate("queue", MSG_QUEUE_LENGTH, &m_msg_queue, 0, BUFFER_LEN); if (ret != LOS_OK) { printf("Falied to create Message Queue ret:0x%x\n", ret); return; }

task1.pfnTaskEntry = (TSK_ENTRY_FUNC)iot_aliyun_thread; task1.uwStackSize = 10240; task1.pcName = "iot_aliyun_thread"; task1.usTaskPrio = 24; ret = LOS_TaskCreate(&thread_id1, &task1); if (ret != LOS_OK) { printf("Falied to create iot_aliyun_thread ret:0x%x\n", ret); return; }}

阿里云服務(wù)程序設(shè)計(jì)

iot_aliyun_thread函數(shù)中,開發(fā)板先連接WIFI,通過WIFI和阿里云IoT平臺通信;WIFI連接成功后,初始化網(wǎng)絡(luò),初始化MQTT客戶端;初始化完成后,成功連接阿里云IoT平臺。

int iot_aliyun_thread(){ aliyun_msg_t *app_msg = NULL; unsigned int addr; int ret;

/*WIFI連接*/ SetWifiModeOn();

device_info_init(CLIENT_ID, USERNAME, PASSWORD); ret = oc_mqtt_init(); if (ret != LOS_OK) { printf("oc_mqtt_init fail ret:%d\n", ret); }

while (1) { LOS_Msleep(100); }}

四、編譯測試

登錄阿里云

設(shè)備連接阿里云前,需要做一些準(zhǔn)備工作;登錄阿里云IoT平臺,在平臺注冊個(gè)人用戶賬號,并且需要實(shí)名認(rèn)證后才可以正常使用。如圖2所示,為阿里云IoT平臺地址:https://free.aliyun.com/product/iotfreetrail。

6fe0cda0-ee69-11ec-a2f4-dac502259ad0.png

圖2 阿里云IoT平臺地址

開通物聯(lián)網(wǎng)服務(wù)

在阿里云IoT平臺注冊個(gè)人用戶賬號并進(jìn)行登錄,登錄后需要開通物聯(lián)網(wǎng)平臺服務(wù),點(diǎn)擊立即開通,如圖3所示。

6fed276c-ee69-11ec-a2f4-dac502259ad0.png

圖3 開通物聯(lián)網(wǎng)平臺

點(diǎn)擊立即開通,在確認(rèn)頁面,點(diǎn)擊右下角的立即開通,如圖4所示。

70012492-ee69-11ec-a2f4-dac502259ad0.png

圖4 立即開通

點(diǎn)擊立即開通,提示開通成功,如圖5所示。

70080cbc-ee69-11ec-a2f4-dac502259ad0.png

圖5 開通成功提示

點(diǎn)擊進(jìn)入管理控制臺,管理控制臺如圖6所示。

700f5f8a-ee69-11ec-a2f4-dac502259ad0.png

圖6 管理控制臺

創(chuàng)建產(chǎn)品

點(diǎn)擊進(jìn)入公共實(shí)例,點(diǎn)擊側(cè)邊欄的產(chǎn)品頁面,點(diǎn)擊創(chuàng)建產(chǎn)品,如圖7所示。

702ebe2a-ee69-11ec-a2f4-dac502259ad0.png

圖7 創(chuàng)建產(chǎn)品

輸入產(chǎn)品名稱,選擇自定義品類-直連設(shè)備,點(diǎn)擊確定創(chuàng)建產(chǎn)品,如圖8所示。

70496446-ee69-11ec-a2f4-dac502259ad0.png

圖8 創(chuàng)建產(chǎn)品詳情

成功創(chuàng)建產(chǎn)品后,側(cè)邊欄點(diǎn)擊產(chǎn)品,可以查看到創(chuàng)建的產(chǎn)品信息,如圖9所示。

70571a64-ee69-11ec-a2f4-dac502259ad0.png

圖9 產(chǎn)品詳情

添加設(shè)備

點(diǎn)擊側(cè)邊欄設(shè)備頁面,點(diǎn)擊添加設(shè)備,如圖10所示。

7072adf6-ee69-11ec-a2f4-dac502259ad0.png

圖10 添加設(shè)備

按照要求填入產(chǎn)品名稱和DeviceName,點(diǎn)擊確認(rèn),如圖11所示。

70909b86-ee69-11ec-a2f4-dac502259ad0.png

圖11 添加設(shè)備詳情頁

成功創(chuàng)建設(shè)備后,側(cè)邊欄點(diǎn)擊設(shè)備,可以查看到創(chuàng)建的設(shè)備信息,如圖12所示。

70af58d2-ee69-11ec-a2f4-dac502259ad0.png

圖12 設(shè)備頁面

點(diǎn)擊進(jìn)入剛添加的設(shè)備,可以查看到設(shè)備的詳細(xì)信息,如圖13所示。

70b92c54-ee69-11ec-a2f4-dac502259ad0.png

圖13 設(shè)備詳情

點(diǎn)擊查看MQTT連接參數(shù),查看MQTT連接所需的參數(shù),如圖14所示。

70d354c6-ee69-11ec-a2f4-dac502259ad0.png

圖14 MQTT連接參數(shù)

在PC上使用WIN + R鍵打開命令行CMD,執(zhí)行如下命令獲取接入域名的IP地址。如圖15所示,通過ping命令可以查詢到MQTT域名的IP地址為47.102.164.191。

ping iot-06z00d4dxawzdv7.mqtt.iothub.aliyuncs.com

70f996e0-ee69-11ec-a2f4-dac502259ad0.png

圖15 查詢MQTT域名IP地址

對應(yīng)修改代碼中的MQTT_SERVER_IP為查詢到PC端IP地址47.102.164.191,MQTT_SERVER_PORT修改為MQTT服務(wù)器端口號1883。代碼如下所示:


#define MQTT_SERVER_IP "47.102.164.191"

#define MQTT_SERVER_PORT 1883


根據(jù)MQTT連接參數(shù)依次修改代碼中的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和密匙,用于連接網(wǎng)絡(luò),設(shè)備通過WIFI訪問阿里云IoT平臺。代碼如下所示:


#define SSID "lzdz"

#define PASSWORD "12345678"


運(yùn)行結(jié)果

例程代碼編譯燒寫到開發(fā)板后,按下開發(fā)板的RESET按鍵,通過串口軟件查看日志,串口打印MQTT初始化、連接等日志。


NetworkConnect...

MQTTClientInit...

MQTTConnect...

MQTTSubscribe...

此時(shí)登錄阿里云IoT平臺,點(diǎn)擊進(jìn)入設(shè)備詳情頁面,可以看到設(shè)備的當(dāng)前狀態(tài)為在線。如圖所示。

711b2760-ee69-11ec-a2f4-dac502259ad0.png

圖16 設(shè)備上線阿里云IoT平臺


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • IOT
    IOT
    +關(guān)注

    關(guān)注

    187

    文章

    4225

    瀏覽量

    197216
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3732

    瀏覽量

    16441
收藏 人收藏

    評論

    相關(guān)推薦

    2025阿里代理政策:火傘帶來專屬優(yōu)惠

    數(shù)字化轉(zhuǎn)型。在這一框架下,阿里旗艦級代理商火傘成為焦點(diǎn),通過其完善的服務(wù)體系和強(qiáng)大的技術(shù)支持能力,為企業(yè)提供高效、經(jīng)濟(jì)的上路徑,尤其是
    的頭像 發(fā)表于 01-09 14:44 ?76次閱讀

    梯度科技成為AI Cloud MSP技術(shù)服務(wù)實(shí)驗(yàn)室首批成員單位

    近日,2024全球數(shù)字經(jīng)濟(jì)大會·AI·計(jì)算國際合作論壇成功召開。會上,公布了AI Cloud MSP技術(shù)服務(wù)實(shí)驗(yàn)室首批成員單位,梯度科技憑借在人工智能管理服務(wù)領(lǐng)域的卓越實(shí)力成為AI
    的頭像 發(fā)表于 12-18 10:07 ?226次閱讀

    探究阿里代理商的奧秘

    在數(shù)字化時(shí)代,阿里服務(wù)器以其卓越的性能和可靠的穩(wěn)定性,成為了眾多企業(yè)首選的服務(wù)提供商。然而,你是否曾好奇,為何選擇
    的頭像 發(fā)表于 12-12 14:24 ?108次閱讀

    阿里代理有哪些?

    阿里作為全球領(lǐng)先的計(jì)算服務(wù)商,提供多種級別的代理商合作伙伴,以便更好地服務(wù)企業(yè)客戶。不同級別的阿里
    的頭像 發(fā)表于 12-06 15:44 ?213次閱讀

    全新NVIDIA NIM微服務(wù)實(shí)現(xiàn)突破性進(jìn)展

    全新 NVIDIA NIM 微服務(wù)實(shí)現(xiàn)突破性進(jìn)展,可助力氣象技術(shù)公司開發(fā)和部署 AI 模型,實(shí)現(xiàn)對降雪、結(jié)冰和冰雹的預(yù)測。
    的頭像 發(fā)表于 11-21 10:07 ?266次閱讀

    告別繁瑣的平臺開發(fā)!IoT_CLOUD之百度

    ?眾所周知,市面上有很多云平臺,阿里、騰訊、中移OneNET、華為、百度、涂鴉、Tli
    的頭像 發(fā)表于 10-21 07:05 ?751次閱讀
    告別繁瑣的<b class='flag-5'>云</b>平臺開發(fā)!<b class='flag-5'>IoT</b>_CLOUD之百度<b class='flag-5'>云</b>

    工業(yè)物聯(lián)網(wǎng)(IOT平臺是什么

    隨著信息技術(shù)的飛速發(fā)展,工業(yè)互聯(lián)網(wǎng)(IoT平臺已成為推動制造業(yè)數(shù)字化轉(zhuǎn)型的重要力量。這一平臺基于計(jì)算、物聯(lián)網(wǎng)技術(shù)、大數(shù)據(jù)分析等先進(jìn)技術(shù)構(gòu)建,旨在通過連接設(shè)備、生產(chǎn)線、工廠和企業(yè),實(shí)現(xiàn)
    的頭像 發(fā)表于 09-19 14:16 ?543次閱讀

    串口服務(wù)器NE2-T1M接入阿里教程

    本次展示億佰特串口服務(wù)器接入阿里教程,以NE2-T1M為例,其他產(chǎn)品可參照本教程。服務(wù)器配置教程瀏覽器搜索“阿里
    的頭像 發(fā)表于 08-30 12:34 ?259次閱讀
    串口<b class='flag-5'>服務(wù)</b>器NE2-T1M接入<b class='flag-5'>阿里</b><b class='flag-5'>云</b>教程

    阿里巴巴季報(bào)出爐 阿里二季度營收增長6%

    調(diào)整EBITA利潤達(dá)到450.35億。阿里巴巴的季度經(jīng)營業(yè)績超出市場預(yù)期。AI則是一個(gè)大亮點(diǎn);AI正推動阿里重回增長。阿里營收增長6%至
    的頭像 發(fā)表于 08-16 16:45 ?526次閱讀

    通過鋇錸PLC轉(zhuǎn)MQTT網(wǎng)關(guān)實(shí)現(xiàn)PLC數(shù)據(jù)上傳至阿里平臺

    鋇錸技術(shù)PLC轉(zhuǎn)MQTT網(wǎng)關(guān)BL102是一款專為工業(yè)自動化設(shè)計(jì)的設(shè)備,它能夠實(shí)現(xiàn)PLC數(shù)據(jù)的高效采集,并通過MQTT協(xié)議將數(shù)據(jù)傳輸至阿里平臺,下面是對接阿里
    的頭像 發(fā)表于 07-31 17:20 ?533次閱讀
    通過鋇錸PLC轉(zhuǎn)MQTT網(wǎng)關(guān)<b class='flag-5'>實(shí)現(xiàn)</b>PLC數(shù)據(jù)上傳至<b class='flag-5'>阿里</b><b class='flag-5'>云</b>平臺

    阿里設(shè)備的物模型數(shù)據(jù)里面始終沒有值是為什么?

    如上圖,不知道講清楚沒有。 IG502自定義TOPIC 上發(fā)到阿里沒問題。采用阿里物模型的格式來上發(fā)就不行。請大佬指教!
    發(fā)表于 07-24 07:49

    請問esp8266會開放使用第三方服務(wù)器嗎?

    如題,esp8266會開放使用第三方服務(wù)器嗎,如百度,阿里服務(wù)器?
    發(fā)表于 07-12 11:40

    ESP32S3連接阿里物聯(lián)網(wǎng)平臺LinkSDK報(bào)錯怎么解決?

    posix_port.c,具體報(bào)錯信息如圖所示。向阿里客服提交工單希望能夠解決,客服最終回復(fù):posix_port.c這個(gè)文件,是系統(tǒng)依賴接口的實(shí)現(xiàn),也是用戶需要進(jìn)行移植的那一部分,根據(jù)對應(yīng)的底層系統(tǒng)進(jìn)行
    發(fā)表于 06-28 11:30

    阿里調(diào)整商標(biāo)代理服務(wù),停接知域互聯(lián)科技訂單,建議關(guān)注

    阿里僅作為平臺運(yùn)營方,保護(hù)并提升合作服務(wù)商的服務(wù)質(zhì)量。為了保障注冊記錄與訂單管理的連續(xù)性,阿里
    的頭像 發(fā)表于 03-04 15:33 ?1360次閱讀

    亞馬遜科技推出數(shù)字孿生服務(wù)Amazon IoT TwinMaker

    亞馬遜科技近日宣布,已與光環(huán)新網(wǎng)和上海新網(wǎng)達(dá)成緊密合作,在中國區(qū)域推出全新的數(shù)字孿生服務(wù)Amazon IoT TwinMaker。該服務(wù)旨在幫助企業(yè)輕松、快速地構(gòu)建現(xiàn)實(shí)世界的數(shù)字孿生
    的頭像 發(fā)表于 01-29 11:48 ?847次閱讀