0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

小凌派RK2206开发板:实现基于OpenHarmony的本地MQTT协议

海阔天空的专栏 来源: 凌智电子 作者: 凌智电子 2022-05-27 09:33 次阅读


一、MQTT协议简介

MQTT(消息队列遥测传输)是一个基于客户端-服务器的消息发布/订阅传输协议,是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。MQTT工作在TCP/IP协议栈上,是为硬件性能低下的远程设备以及网络状况不理想的情况下而设计的发布/订阅型消息协议。由于MQTT协议的轻量、简便、开放的特点使它适用范围非常广泛。在很多情况下,包括受限的环境中使用,广泛应用于物联网IoT)。MQTT协议在卫星链路通信传感器、医疗设备、智能家居、及一些小型化设备中已广泛使用。

本文使用小凌派RK2206开发板实现基于OpenHarmony的本地MQTT服务。小凌派RK2206开发板采用瑞芯微高性能、高性价比的RK2206芯片。RK2206芯片是一款低功耗、高集成的MCU无线局域网处理器,它可以应用于不同的应用领域,如物联网、可穿戴设备、家庭自动化、云连接等。小凌派RK2206开发板内置WIFI模块,外部接口丰富,使用一个小凌派RK2206开发板就能够轻松实现MQTT物联网多种应用。

二、硬件电路设计

如图1所示,为小凌派RK2206开发板支持的外部接口,本文使用小凌派RK2206开发板内置的WIFI和MQTT服务器通信。

图片

图1 小凌派RK2206开发板

三、软件设计

1、主程序设计

在iot_mqtt_example函数中,通过LOS_TaskCreate函数创建iot_mqtt_thread线程,并设置线程优先级、线程堆栈大小等参数

poYBAGKQJ3eAeIcXAAByrZFB5QA643.png


2、MQTT服务程序设计

iot_mqtt_thread函数中,开发板先连接WIFI,通过WIFI和PC端的MQTT服务器通信;WIFI连接成功后,初始化网络,初始化MQTT客户端;初始化完成后,连接MQTT服务端,注册消息接收函数message_receive;函数进入循环,5s向PC端MQTT服务器发送一次消息。

poYBAGKQJ62AMs_EAAHJorWKJF0077.png

3、MQTT消息接收程序设计

MQTT消息接收程序主要用于接收MQTT服务端下发的消息,接收到消息后,打印接收的信息

pYYBAGKQJ9mAfpWTAAApi15Wo2c334.png



四、编译测试

1、修改MQTT服务端IP

PC端按键WIN + R键打开命令行CMD,执行命令ipconfig获取PC端的IP地址,如图2所示,PC端的IP地址为:192.168.1.164。

图片

图2 获取PC端IP地址

对应修改代码中的MQTT_SERVER_IP为查询到PC端IP地址192.168.1.164,MQTT_SERVER_PORT修改为MQTT服务器端口号1883。代码如下所示:

pYYBAGKQKACABI6NAAAOkPL14Hs023.png


2、下载MQTT代理工具mosquitto

根据PC电脑位数选择对应的安装包,32位系统下载x86后缀的安装包,64位系统下载x64后缀的安装包,本文选择mosquitto-2.0.9a-install-windows版本进行测试。

32位系统下载地址:https://mosquitto.org/files/binary/win32/,如图3所示。

图片

图3 32位系统安装包

64位系统下载地址:https://mosquitto.org/files/binary/win64/,如图4所示。

图片

图4 64位系统安装包

下载mosquitto安装包后,点击安装mosquitto工具;安装完毕后,需要配置mosquitto,修改mosquitto安装路径下的mosquitto.conf文件,如图5所示。

图片

图5 mosquitto配置文件

在mosquitto.conf文件末尾增加如下配置,其中,192.168.1.164为PC端IP地址,1883为MQTT服务器端口号,allow_anonymous为允许匿名登录。

pYYBAGKQKBmAE9K5AAAOvHcsYzo485.png

mosquitto安装配置完成后,需要开启mosquitto服务,右击打开我的电脑-管理-服务和应用程序-服务,找到Mosquitto Broker服务,如图6所示。

图片

图6 mosquitto服务

双击打开Mosquitto Broker服务,点击启动,开启Mosquitto服务,如图7所示。

图片

图7 开启mosquitto服务

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软件包后,解压软件包,双击打开Paho.exe;进入Paho软件界面,点击右上角加号按键,添加一个MQTT服务器连接,如图9所示。

图片

图9 Eclipse Paho MQTT软件界面

4、WIFI连接

修改代码中的SSID和PASSWORD为使用WIFI的SSID和密匙,用于连接网络,设备通过WIFI访问PC端MQTT服务器。代码如下所示:

poYBAGKQKDaABk6rAAALr5AHfAU588.png


5、运行结果

例程代码编译烧写到开发板后,按下开发板的RESET按键,通过串口软件查看日志,串口打印MQTT初始化、连接等日志。

pYYBAGKQKEqAG4kPAAAOVkTCLWw221.png

连接

打开paho软件,点击连接,当连接成功时,连接状态显示为已连接;需要注意的是,如果出现连接失败,请尝试关闭PC防火墙再进行连接。

订阅

点击订阅添加按键,新增主题IOT_MQTT(主题名称需要与例程代码MQTTPublish函数传参的主题名称一致),点击订阅按键,此时,历史记录页面就开始显示接收的开发板上报信息,如图10所示。

图片

图10 订阅消息

发布

在发布主题栏,输入主题名称substopic(主题名称需要与例程代码MQTTSubscribe函数传参的主题名称一致),在消息栏输入消息hello world,点击发布,此时,历史记录页面显示已发布出的消息,如图11所示。

图片

图11 发布消息

同时,开发板串口会同步显示接收到的消息日志,如下所示。

poYBAGKQKGSAbvZdAAAPpfuwCZ0630.png

来源:凌智电子

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MQTT
    +关注

    关注

    5

    文章

    650

    浏览量

    22478
  • OpenHarmony
    +关注

    关注

    25

    文章

    3710

    浏览量

    16243
  • RK2206
    +关注

    关注

    0

    文章

    34

    浏览量

    1780
  • 小凌派
    +关注

    关注

    0

    文章

    27

    浏览量

    1198
收藏 人收藏

    评论

    相关推荐

    基于OpenHarmony+小RK2206开发板制作的简易示波器

    基于OpenHarmony + 小RK2206开发板制作的简易示波器,实时采集波形,实时计算并实时显示对应的波形。
    的头像 发表于 05-10 09:02 4473次阅读

    轻量系统开发套件介绍:睿智捷 | 小-RK2206 开发板套件

    睿智捷 | 小-RK2206 开发板套件是由福州市睿智捷电子有限公司出品,主控器为瑞芯微
    发表于 04-21 13:39

    【小RK2206开发板试用体验】2、开箱及hello

    \lockzhiner-rk2206\images5、下载固件:6、下载成功后就可以看到串口打印了:总结:今天第一次拿开发板,对于
    发表于 05-02 14:54

    【小RK2206开发板试用体验】第2章 源码编译与固件下载

    开发环境:开发系统:Ubuntu 20.04开发板:小-RK2206
    发表于 05-08 14:02

    【小RK2206开发板试用体验】第3章 应用开发

    开发环境:开发系统:Ubuntu 20.04开发板:小-RK2206
    发表于 05-08 14:07

    【小RK2206开发板试用体验】小手势应用之原力控制星球大战BB-8机器人

    与你同在![/fly]在这篇文章中,你将会了解到如下的信息:人气超高的星球大战之BB-8机器人控制BB-8机器人的服务工具小RK2206开发板之智能手势小
    发表于 05-11 12:52

    【小RK2206开发板试用体验】小手势应用之原力控制星球大战BB-8机器人

    与你同在![/fly]在这篇文章中,你将会了解到如下的信息:人气超高的星球大战之BB-8机器人控制BB-8机器人的服务工具小RK2206开发板之智能手势小
    发表于 05-24 10:56

    【小RK2206开发板试用体验】鸿蒙应用开发和鸿蒙线程创建

    开发系统:Ubuntu 20.04开发板:小-RK2206开发板
    发表于 05-25 01:32

    【小RK2206开发板试用体验】OpenHarmony华为云IoT应用开发-智慧井盖

    本帖最后由 周安平 于 2022-6-4 10:07 编辑 【小RK2206开发板试用体验】OpenHarmony华为云IoT应用
    发表于 06-03 20:48

    RK2206开发板搭载OpenHarmony操作系统简介

    1、小-RK2206开发板简介小-RK2206
    发表于 07-28 17:28

    RK2206开发板顺利通过开放原子开源基金会XTS认证

    -RK2206开发板OpenHarmony 良好兼容、系统互通,符合 OpenHarmony 兼容性设计要求及认证标准。 未来,智电子
    的头像 发表于 03-23 16:18 4981次阅读
    小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>顺利通过开放原子开源基金会XTS认证

    基于OpenHarmony系统和小RK2206开发板的避障小车

    这是一款基于OpenHarmony系统和小-RK2206开发板的避障小车。同时,小车上搭载了超声波测距模块、舵机模块、红外寻迹模块、直流
    的头像 发表于 04-21 07:58 5038次阅读

    基于小RK2206开发板所制作的简易示波器

    基于OpenHarmony + 小RK2206开发板制作的简易示波器,实时采集波形,实时计算并实时显示对应的波形。
    的头像 发表于 05-06 17:09 1797次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>所制作的简易示波器

    智电子:小-RK2206开发板顺利通过开放原子开源基金会兼容性测评

    3月18日,智电子小-RK2206开发套件顺利完成OpenAtomOpenHarmony
    的头像 发表于 04-13 09:56 1008次阅读
    <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'>开发板</b>顺利通过开放原子开源基金会兼容性测评

    -RK2206开发板:UART控制案例

    -RK2206开发板:UART控制案例一、简介通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter),通常称作UART。它将要传
    的头像 发表于 06-14 11:12 1030次阅读
    小<b class='flag-5'>凌</b><b class='flag-5'>派</b>-<b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:UART控制案例