说明
文章(一)创建了学习计划,通过学习发现,可以不用先考虑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功能做铺垫。
说明
文章(一)创建了学习计划,通过学习发现,可以不用先考虑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功能做铺垫。
举报