一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

小凌派RK2206開(kāi)發(fā)板:實(shí)現(xiàn)基于OpenHarmony的本地MQTT協(xié)議

海闊天空的專欄 ? 來(lái)源: 凌智電子 ? 作者: 凌智電子 ? 2022-05-27 09:33 ? 次閱讀


一、MQTT協(xié)議簡(jiǎn)介

MQTT(消息隊(duì)列遙測(cè)傳輸)是一個(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é)議的輕量、簡(jiǎn)便、開(kāi)放的特點(diǎn)使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中使用,廣泛應(yīng)用于物聯(lián)網(wǎng)IoT)。MQTT協(xié)議在衛(wèi)星鏈路通信傳感器、醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。

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

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

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

圖片

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

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

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

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

poYBAGKQJ3eAeIcXAAByrZFB5QA643.png


2、MQTT服務(wù)程序設(shè)計(jì)

iot_mqtt_thread函數(shù)中,開(kāi)發(fā)板先連接WIFI,通過(guò)WIFI和PC端的MQTT服務(wù)器通信;WIFI連接成功后,初始化網(wǎng)絡(luò),初始化MQTT客戶端;初始化完成后,連接MQTT服務(wù)端,注冊(cè)消息接收函數(shù)message_receive;函數(shù)進(jìn)入循環(huán),5s向PC端MQTT服務(wù)器發(fā)送一次消息。

poYBAGKQJ62AMs_EAAHJorWKJF0077.png

3、MQTT消息接收程序設(shè)計(jì)

MQTT消息接收程序主要用于接收MQTT服務(wù)端下發(fā)的消息,接收到消息后,打印接收的信息。

pYYBAGKQJ9mAfpWTAAApi15Wo2c334.png



四、編譯測(cè)試

1、修改MQTT服務(wù)端IP

PC端按鍵WIN + R鍵打開(kāi)命令行CMD,執(zhí)行命令ipconfig獲取PC端的IP地址,如圖2所示,PC端的IP地址為:192.168.1.164。

圖片

圖2 獲取PC端IP地址

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

pYYBAGKQKACABI6NAAAOkPL14Hs023.png


2、下載MQTT代理工具mosquitto

根據(jù)PC電腦位數(shù)選擇對(duì)應(yīng)的安裝包,32位系統(tǒng)下載x86后綴的安裝包,64位系統(tǒng)下載x64后綴的安裝包,本文選擇mosquitto-2.0.9a-install-windows版本進(jìn)行測(cè)試。

32位系統(tǒng)下載地址:https://mosquitto.org/files/binary/win32/,如圖3所示。

圖片

圖3 32位系統(tǒng)安裝包

64位系統(tǒng)下載地址:https://mosquitto.org/files/binary/win64/,如圖4所示。

圖片

圖4 64位系統(tǒng)安裝包

下載mosquitto安裝包后,點(diǎn)擊安裝mosquitto工具;安裝完畢后,需要配置mosquitto,修改mosquitto安裝路徑下的mosquitto.conf文件,如圖5所示。

圖片

圖5 mosquitto配置文件

在mosquitto.conf文件末尾增加如下配置,其中,192.168.1.164為PC端IP地址,1883為MQTT服務(wù)器端口號(hào),allow_anonymous為允許匿名登錄。

pYYBAGKQKBmAE9K5AAAOvHcsYzo485.png

mosquitto安裝配置完成后,需要開(kāi)啟mosquitto服務(wù),右擊打開(kāi)我的電腦-管理-服務(wù)和應(yīng)用程序-服務(wù),找到Mosquitto Broker服務(wù),如圖6所示。

圖片

圖6 mosquitto服務(wù)

雙擊打開(kāi)Mosquitto Broker服務(wù),點(diǎn)擊啟動(dòng),開(kāi)啟Mosquitto服務(wù),如圖7所示。

圖片

圖7 開(kāi)啟mosquitto服務(wù)

3、下載Eclipse Paho MQTT 工具

Paho MQTT工具下載地址:

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.1.1/。

下載Paho軟件包:org.eclipse.paho.ui.app-1.1.1-win32.win32.x86_64.zip。如圖8所示。

圖片

圖8 Eclipse Paho MQTT工具下載地址

下載Paho軟件包后,解壓軟件包,雙擊打開(kāi)Paho.exe;進(jìn)入Paho軟件界面,點(diǎn)擊右上角加號(hào)按鍵,添加一個(gè)MQTT服務(wù)器連接,如圖9所示。

圖片

圖9 Eclipse Paho MQTT軟件界面

4、WIFI連接

修改代碼中的SSID和PASSWORD為使用WIFI的SSID和密匙,用于連接網(wǎng)絡(luò),設(shè)備通過(guò)WIFI訪問(wèn)PC端MQTT服務(wù)器。代碼如下所示:

poYBAGKQKDaABk6rAAALr5AHfAU588.png


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

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

pYYBAGKQKEqAG4kPAAAOVkTCLWw221.png

連接

打開(kāi)paho軟件,點(diǎn)擊連接,當(dāng)連接成功時(shí),連接狀態(tài)顯示為已連接;需要注意的是,如果出現(xiàn)連接失敗,請(qǐng)嘗試關(guān)閉PC防火墻再進(jìn)行連接。

訂閱

點(diǎn)擊訂閱添加按鍵,新增主題IOT_MQTT(主題名稱需要與例程代碼MQTTPublish函數(shù)傳參的主題名稱一致),點(diǎn)擊訂閱按鍵,此時(shí),歷史記錄頁(yè)面就開(kāi)始顯示接收的開(kāi)發(fā)板上報(bào)信息,如圖10所示。

圖片

圖10 訂閱消息

發(fā)布

在發(fā)布主題欄,輸入主題名稱substopic(主題名稱需要與例程代碼MQTTSubscribe函數(shù)傳參的主題名稱一致),在消息欄輸入消息hello world,點(diǎn)擊發(fā)布,此時(shí),歷史記錄頁(yè)面顯示已發(fā)布出的消息,如圖11所示。

圖片

圖11 發(fā)布消息

同時(shí),開(kāi)發(fā)板串口會(huì)同步顯示接收到的消息日志,如下所示。

poYBAGKQKGSAbvZdAAAPpfuwCZ0630.png

來(lái)源:凌智電子

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

    關(guān)注

    5

    文章

    662

    瀏覽量

    23357
  • OpenHarmony
    +關(guān)注

    關(guān)注

    26

    文章

    3804

    瀏覽量

    17858
  • RK2206
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    2052
  • 小凌派
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    1350
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于OpenHarmony+小RK2206開(kāi)發(fā)板制作的簡(jiǎn)易示波器

    基于OpenHarmony + 小RK2206開(kāi)發(fā)板制作的簡(jiǎn)易示波器,實(shí)時(shí)采集波形,實(shí)時(shí)計(jì)算并實(shí)時(shí)顯示對(duì)應(yīng)的波形。
    的頭像 發(fā)表于 05-10 09:02 ?4970次閱讀

    【小RK2206開(kāi)發(fā)板試用體驗(yàn)】第2章 源碼編譯與固件下載

    開(kāi)發(fā)環(huán)境:開(kāi)發(fā)系統(tǒng):Ubuntu 20.04開(kāi)發(fā)板:小-RK2206
    發(fā)表于 05-08 14:02

    【小RK2206開(kāi)發(fā)板試用體驗(yàn)】第3章 應(yīng)用開(kāi)發(fā)

    開(kāi)發(fā)環(huán)境:開(kāi)發(fā)系統(tǒng):Ubuntu 20.04開(kāi)發(fā)板:小-RK2206
    發(fā)表于 05-08 14:07

    【小RK2206開(kāi)發(fā)板試用體驗(yàn)】鴻蒙應(yīng)用開(kāi)發(fā)和鴻蒙線程創(chuàng)建

    開(kāi)發(fā)系統(tǒng):Ubuntu 20.04開(kāi)發(fā)板:小-RK2206開(kāi)發(fā)板
    發(fā)表于 05-25 01:32

    【小RK2206開(kāi)發(fā)板試用體驗(yàn)】OpenHarmony華為云IoT應(yīng)用開(kāi)發(fā)-智慧井蓋

    本帖最后由 周安平 于 2022-6-4 10:07 編輯 【小RK2206開(kāi)發(fā)板試用體驗(yàn)】OpenHarmony華為云IoT應(yīng)用
    發(fā)表于 06-03 20:48

    RK2206開(kāi)發(fā)板搭載OpenHarmony操作系統(tǒng)簡(jiǎn)介

    1、小-RK2206開(kāi)發(fā)板簡(jiǎn)介小-RK2206
    發(fā)表于 07-28 17:28

    基于OpenHarmony系統(tǒng)和小RK2206開(kāi)發(fā)板的避障小車

    這是一款基于OpenHarmony系統(tǒng)和小-RK2206開(kāi)發(fā)板的避障小車。同時(shí),小車上搭載了超聲波測(cè)距模塊、舵機(jī)模塊、紅外尋跡模塊、直流
    的頭像 發(fā)表于 04-21 07:58 ?5670次閱讀

    基于小RK2206開(kāi)發(fā)板所制作的簡(jiǎn)易示波器

    基于OpenHarmony + 小RK2206開(kāi)發(fā)板制作的簡(jiǎn)易示波器,實(shí)時(shí)采集波形,實(shí)時(shí)計(jì)算并實(shí)時(shí)顯示對(duì)應(yīng)的波形。
    的頭像 發(fā)表于 05-06 17:09 ?2031次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開(kāi)發(fā)板</b>所制作的簡(jiǎn)易示波器

    智電子:小-RK2206開(kāi)發(fā)板順利通過(guò)開(kāi)放原子開(kāi)源基金會(huì)兼容性測(cè)評(píng)

    3月18日,智電子小-RK2206開(kāi)發(fā)套件順利完成OpenAtomOpenHarmony
    的頭像 發(fā)表于 04-13 09:56 ?1181次閱讀
    <b class='flag-5'>凌</b>智電子:小<b class='flag-5'>凌</b><b class='flag-5'>派</b>-<b class='flag-5'>RK2206</b><b class='flag-5'>開(kāi)發(fā)板</b>順利通過(guò)開(kāi)放原子開(kāi)源基金會(huì)兼容性測(cè)評(píng)

    -RK2206開(kāi)發(fā)板:UART控制案例

    -RK2206開(kāi)發(fā)板:UART控制案例一、簡(jiǎn)介通用異步收發(fā)傳輸器(UniversalAsynchronousReceiver/Transmitter),通常稱作UART。它將要傳
    的頭像 發(fā)表于 06-14 11:12 ?1300次閱讀
    小<b class='flag-5'>凌</b><b class='flag-5'>派</b>-<b class='flag-5'>RK2206</b><b class='flag-5'>開(kāi)發(fā)板</b>:UART控制案例

    基于小RK2206開(kāi)發(fā)板OpenHarmony如何使用IoT接口控制ADC外設(shè)

    1、案例簡(jiǎn)介本案例主要講解如何在小-RK2206開(kāi)發(fā)板上使用IoT庫(kù)的ADC接口,進(jìn)行ADC編程開(kāi)發(fā)。例程內(nèi)容為創(chuàng)建一個(gè)任務(wù),讀取按鍵的
    的頭像 發(fā)表于 04-10 16:00 ?238次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開(kāi)發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制ADC外設(shè)

    基于小RK2206開(kāi)發(fā)板OpenHarmony如何使用IoT接口控制GPIO外設(shè)

    1、案例簡(jiǎn)介本案例主要是如何在小-RK2206開(kāi)發(fā)板上使用IOT庫(kù)的GPIO接口,進(jìn)行GPIO編程開(kāi)發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過(guò)配置GP
    的頭像 發(fā)表于 04-11 15:36 ?336次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開(kāi)發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制GPIO外設(shè)

    基于小RK2206開(kāi)發(fā)板OpenHarmony如何使用IoT接口控制GPIO中斷

    1、實(shí)驗(yàn)簡(jiǎn)介本實(shí)驗(yàn)將演示如何在小-RK2206開(kāi)發(fā)板上使用IOT庫(kù)的GPIO中斷模式,進(jìn)行GPIO編程開(kāi)發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過(guò)配置
    的頭像 發(fā)表于 04-21 10:39 ?236次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開(kāi)發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制GPIO中斷

    基于小RK2206開(kāi)發(fā)板OpenHarmony如何使用IoT接口控制UART外設(shè)

    1、實(shí)驗(yàn)簡(jiǎn)介本實(shí)驗(yàn)將演示如何在小-RK2206開(kāi)發(fā)板上使用IOT庫(kù)的UART接口,進(jìn)行UART編程開(kāi)發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過(guò)配置UA
    的頭像 發(fā)表于 04-22 14:22 ?229次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開(kāi)發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制UART外設(shè)

    基于小RK2206開(kāi)發(fā)板OpenHarmony如何使用IoT接口控制FLASH外設(shè)

    1、實(shí)驗(yàn)簡(jiǎn)介本實(shí)驗(yàn)將演示如何在小-RK2206開(kāi)發(fā)板上使用IOT庫(kù)的FLASH接口,進(jìn)行FLASH編程開(kāi)發(fā)。例程將創(chuàng)建一個(gè)任務(wù),
    的頭像 發(fā)表于 04-22 14:49 ?173次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開(kāi)發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制FLASH外設(shè)