一、准备工具
1. 硬件
(1)WiFi模块 (AT指令固件)
(2)STM32
2. 软件
(1)Wireshark (网络抓包工具)
(2)MQTT.fx (MQTT调试软件)
(3)网络调试助手
二、MQTT介绍
1. MQTT协议
三、原理介绍
1. 参考 W5500 以太网接口芯片
W5500芯片内部集成全硬件TCP/IP协议栈。现在只需在MCU上进行应用层协议封装,就可以实现我们想使用的MQTT协议。
![](https://img.haomeiwen.com/i6540285/622f3a9867c32bf7.png)
2. ESP8266实现MQTT协议方式
ESP8266内部也已集成TCP/IP协议栈,并且固件代码是开源的可以实现二次开发。所以 在ESP8266实现MQTT协议有两种方式,一种是直接对ESP8266固件进行开发,在ESP8266芯片中实现MQTT协议的。另外一种方式(也是这篇文章介绍的方式)参考W5500方式在MCU上实现MQTT应用层协议。相比之下在MCU上实现应用更加广泛,不仅可以对ESP8266实现MQTT协议,只要接入模块内部实现了TCP/IP协议更改少许的代码都可以实现MQTT 协议。
3. 接入流程介绍
借鉴与AT指令上手难度低使用方便,因此选择使用AT指令先使ESP8266以TCP协议去连接服务器(MQTT基于TCP协议)。连接成功后模块进入透传状态,然后在STM32上封装MQTT协议格式的数据,封装后的数据即已是MQTT协议,再透过ESP8266和MQTT服务器进行交互。
网友评论