4129|0

119

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【EasyARM-RT1052测评】+ MQTTClient移植 [复制链接]

MQTT也是现在物联网传输比较火的一个网络协议,今天就来移植学习下

具体的源码也可以在KEIL的PACK包里面下载到,下载之后我还是将它放到SDK_2.4.2_MIMXRT1052xxxxB\middleware目录下



源码包里面MQTTPacket主要包含了MQTT的编解码,订阅等协议的解析内容,而MQTTClient-C就是我们需要和自己开发板匹配的接口文件,MQTTClient是给arduino,mbed移植用的,不用管它


准备工作都OK了,接下去就移植到自己的平台,打开Paho_MQTT\1.0.0\MQTTClient-C\src,可以看到如下内容MQTTClient.c.h就是客户端使用的一些API函数,包括MQTT连接,订阅,推送,接收等,可以直接用。红框内的就是和板卡的接口函数实现,这里提供了CC3200,linux等的移植示例参考




这里我选择FreeRTOS的这个做参考,因为系统跑的也是FreeRTOS嘛,方便一些,工程添加相应的源码,(这里我修改了文件名称,MQTTFreeRTOS.c/h换成了paho_mqtt_platform.c/h,毕竟平台变了嘛,app_mqtt就是MQTTClient-C\samples\FreeRTOS目录下MQTTEcho.c



添加相应的头文件地址,这里需要在define栏定义下头文件选择


打开MQTTFreeRTOS.c,这里我重名为paho_mqtt_platform.c,这几个函数可以直接删了,不太需要




主要是修改以下几个函数,这些都是调用的FreeRTOS自己的socket,而我们用的是lwip的socket,将其替换掉,相应的头文件包含一下,具体怎么替换成LWIP接口就不自己介绍了,可以直接看源码



源码的网络连接是支持域名解析的,所以需要在lwipopts.h配置文件开启DNS解析



修改完接口函数之后,可以使用MQTTClient-C\samples\FreeRTOS目录下的例程进行测试,具体的流程如下,先注册网络,连接到MQTT服务器,发送自己的设备名,订阅的主题等信息,然后定时推送数据,轮询接收数据






串口信息打印可以看到设备连接到了服务器



利用mQTT客户端订阅设备的发送信息,可以看到设备正常推送数据



以上就是MQTT的简单移植,主要就是网络接口部分的移植


附上工程 hello_eeworld.rar (149.01 KB, 下载次数: 35) ,放在SDK_2.4.2_MIMXRT1052xxxxB\boards\EasyARM-RT1052-V1_0\demo_apps目录下解压即可,keil版本是V5.26.2.0


此内容由EEWORLD论坛网友ID.LODA原创,如需转载或用于商业用途需征得作者同意并注明出处


此帖出自NXP MCU论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表