概述
文章目录
- mqttclient
- ENV介绍
- env工具下载安装
- 通过env移植MQTT客户端
- 打开 env 控制台
- 打开env并更新软件包列表
- 移植MQTT客户端
- 编写自己的代码:
- 连接参数配置
- 订阅主题相关的代码配置
- 发布消息相关的代码配置
- 生成代码
- 导出独立的MQTT客户端工程
- 源代码获取
mqttclient
一个高性能、高稳定性的跨平台MQTT客户端
一个高性能、高稳定性的跨平台MQTT客户端,基于socket API之上开发,可以在嵌入式设备(FreeRTOS/LiteOS/RT-Thread/TencentOS tiny)、Linux、Windows、Mac上使用,拥有非常简洁的API接口,以极少的资源实现QOS2的服务质量,并且无缝衔接了mbedtls加密库。开源地址:https://github.com/jiejieTop/mqttclient
ENV介绍
env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。
env 工具包含了 RT-Thread 源代码开发编译环境和软件包管理系统。
env工具下载安装
从 RT-Thread 官网下载 env 工具。地址:https://www.rt-thread.org/page/download.html。
在电脑上装好 git,git 的下载地址为 https://git-scm.com/downloads ,根据向导正确安装 git,并将 git添加到系统环境变量。软件包管理功能需要 git 的支持。
注意在工作环境中,所有的路径都不可以有中文字符或者空格。
通过env移植MQTT客户端
打开 env 控制台
RT-Thread 软件包环境主要以命令行控制台为主,同时以字符型界面来进行辅助,使得尽量减少修改配置文件的方式即可搭建好 RT-Thread 开发环境的方式。
打开env控制台有两种方式:
-
方法一:点击 env 目录下可执行文件进入 env 目录,可以运行本目录下的 env.exe ,如果打开失败可以尝试使用 env.bat 。
-
方法二:在文件夹中通过右键菜单打开 env 控制台env ,可以根据下图的步骤操作,就可以在任意文件夹下通过右键菜单来启动 env 控制台:
打开env并更新软件包列表
scons 是 RT-Thread 使用的编译构建工具,可以使用 scons 相关命令来编译 RT-Thread 。
-
第一步:下载rt-thread的源码,可以在github或者gitee下载:
-
github
git clone https://github.com/RT-Thread/rt-thread.git
-
gitee
git clone https://gitee.com/RT-Thread/rt-thread.git
-
-
第二步:切换到 bsp 根目录:打开控制台后,可以在命令行模式下使用 cd 命令切换到你想要配置的 bsp 根目录中。例如工程目录为 H:jiejieToprt-threadbspstm32stm32f429-fire-challenger,或者直接到这个目录下右键打开env:
-
第二步:更新软件包列表,随着 package 系统的不断壮大,会有越来越多的软件包加入进来,所以本地看到 menuconfig 中的软件包列表可能会与服务器 不同步 。在env环境中使用 pkgs --upgrade 命令即可解决该问题,这个命令不仅会对本地的包信息进行更新同步,还会对 env 的功能脚本进行升级,建议定期使用,或者在 envpackagespackages 目录下手动更新,然后切换最新分支即可。
移植MQTT客户端
-
第一步:在env环境中运行 menuconfig 命令进入可视化配置界面,在Hardware Drivers Config → Onboard Peripheral Drivers路径下使能以太网驱动:
-
第二步:在RT-Thread Components → Network → Network interface device路径下使能使能网络接口:
-
第三步:在RT-Thread online packages → IoT - internet of things路径下选择kawaii-mqtt软件包:
-
第四步:按下回车,进入kawaii-mqtt软件包的配置页面,可以随意配置信息,我们勾选 enable test 即可,这一步操作会将测试代码添加到工程中:
-
第五步:在退出的时候会进行下载软件包,将kawaii-mqtt软件包下载到本地,并且将其添加到工程中,然后你可以通过scons --target=mdk5命令生成keil工程,当然也可以不用。
-
第六步:打开keil工程,因为我们勾选了 enable test ,此时工程中存在测试代码,我们需要间本身的main.c文件的例程注释掉,然后再进行编译,没有问题。
-
第七步:下载到开发板上,观察现象,可以看到完全根据代码运行。
编写自己的代码:
MQTT提供在线配置工具,可以使用工具生成相应的代码:https://jiejietop.gitee.io/mqtt/index.html
与此同时该工具页面还包含了mqttclient的API接口介绍及示例,通过它们就能知道这个工具应该配置了什么内容。
连接参数配置
首先连接参数代表着MQTT客户端应该如何连接到服务器,建立MQTT会话应该是如何配置,这些就是连接参数
-
与服务器相关的参数有:
-
服务器地址。
-
服务器端口号。
-
服务器CA证书(如果有TLS加密的话)。
-
-
建立MQTT连接需要的参数有:
-
MQTT协议版本。
-
用户名。
-
密码。
-
客户端ID。
-
配置是否清除会话,默认清除会话。
-
心跳时间间隔,默认是50秒。
-
是否使用遗嘱。
-
是否保留遗嘱消息。
-
设置遗嘱主题。
-
设置遗嘱消息的服务质量等级。
-
设置遗嘱消息的内容。
-
-
与与客户端资源相关的配置:
-
设置命令的超时,它主要是用于socket读写超时,默认是5000毫秒。
-
读缓冲区大小,默认是1024。
-
写缓冲区大小,默认是1024。
-
订阅主题相关的代码配置
此配置用于配置MQTT客户端订阅的主题信息,指定订阅主题名字,服务质量等级以及当收到来自这个主题消息时候的回调处理函数(可以为NULL),mqttclient代码生成工具支持动态添加多个主题,满足绝大部分的日常需求。
发布消息相关的代码配置
mqttclient代码生成工具支持动态添向多个主题发布消息,满足绝大部分的日常需求。只需指定要发布消息的主题名字、服务质量等级、以及发布的消息内容即可。
生成代码
在配置完成后,点击下方的生成代码按钮,即可生成对应的配置代码。当然,你也可以点击导入模板,使用模板默认的配置来生成代码。
直接将生成的代码复制到你的main.c文件即可编译运行。
导出独立的MQTT客户端工程
在env中,可以通过scons --dist命令来导出工程代码,形成一个独立的demo,因为处于rt-thread工程中,整个代码实在是太庞大了,我们只需要导出我们用到的代码即可:
整个工程就移植完毕。
源代码获取
可以关注微信公众号:
在后台回复“24”即可获取源代码
最后
以上就是魔幻猫咪为你收集整理的MQTT移植到stm32开发板——使用RT-Thread操作系统mqttclientENV介绍env工具下载安装通过env移植MQTT客户端编写自己的代码:源代码获取的全部内容,希望文章能够帮你解决MQTT移植到stm32开发板——使用RT-Thread操作系统mqttclientENV介绍env工具下载安装通过env移植MQTT客户端编写自己的代码:源代码获取所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复