单片机学习小组
直播中

吴湛

9年用户 899经验值
擅长:可编程逻辑
私信 关注

怎样将mqtt移植到单片机工程中呢

怎样将mqtt移植到单片机工程中呢?有哪些移植步骤?

回帖(1)

余婧

2022-1-19 12:06:48
说明

文章(一)创建了学习计划,通过学习发现,可以不用先考虑esp8266驱动及wifi连接问题,学习mqtt对wifi的驱动不是必须的,作为初学者,通过10步学习法划分合适的知识范围,决定跳过第一步学习mqtt没有直接关系的esp8266的at指令及驱动程序的学习。直接从第二部mqtt的移植开始。
硬件平台

芯片选择stm32f103cbt6,板卡暂时没有wifi模块,为了方便调试,直观观察通信数据,采用板卡通过串口(rs232)与电脑相连。在pc上用串口转tcp软件转发数据与网络上的mqtt测试服务器相连。
单片机软件

提前准备了一个移植好freertos的keil5工程。所以电脑提前应该安装好keil5的环境。
第三方软件及工具

[tr]功能名称[/tr]
串口转TCP软件commproxy串口转TCP软件(串口转tcp模块工具)V1.10 绿色免费版
mqtt服务器mqtt中文网提供的mqtt的测试服务端 网址
mqtt C版本架构paho.mqtt.embedded-c-master
移植

stm32工程

首先我们准备了一个keil5的工程,芯片采用stm32f103cbt6。
可以自己移植一个,如果想省事可以从我上传的下载一个。
添加mqtt文件到工程

我们用了第三方的mqtt C语言版本架构《paho.mqtt.embedded-c-master》,大家可以在网上下载。

现在解压缩之后,从下列目录复制src文件夹到stm32工程中。

  paho.mqtt.embedded-c-masterpaho.mqtt.embedded-c-masterMQTTPacket
在下列目录中复制transport.c、transport.h到stm32工程中。

  paho.mqtt.embedded-c-masterpaho.mqtt.embedded-c-masterMQTTPacket
samples
文件结构如下:
keil工程添加mqtt相关文件,如下:
这里注意,要不路径添加到keil工程中,要不提示找不到**.h**文件,会报很多错误。
接口驱动

mqtt通信接口,主要在transport.c中。
例程中是tcp通信的程序,我们采用串口进行通信,tcp相关的程序我们全部屏蔽掉。
我不只需要修改发送函数sendPacketBuffer
如下修改:

int transport_sendPacketBuffer(int sock, unsigned char* buf, int buflen)
{
        int rc = 0;
        //rc = write(sock, buf, buflen);
        user_uart1_send(buf,buflen);
        return rc;
}


编译
移植完成。
下一篇文章,我们进行计划的第三步,MQTT的应用,主要包含mqtt的功能添加及验证。
总结

本文章主要是准备各种工具及环境,移植mqtt到单片机工程,为下一步学习mqtt功能做铺垫。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分