WiFi通信——STM32通过ESP8266-01S上传DHT11温湿度和LED灯状态到阿里云物联网平台上(二)MQTT协议代码讲解

        上一篇博客讲了ESP8266-01S的MQTT固件包烧录过程,配置了阿里云物联网平台,并且利用MQTT.fx验证和阿里云通信的过程,链接如下:

https://blog.csdn.net/weixin_41011452/article/details/140645130

1 MQTT协议

        MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输协议)是IBM在1999年发布的,基于TCP/IP提供网络连接,同时也有基于UDP的版本,称为MQTT-SN。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,使其在物联网、小型设备、移动应用等方面有较广泛的应用。如果想了解大概原理,百度一大堆。我只讲解这个协议怎么用。

        MQTT协议是基于TCP/IP的,也就是网络分层里的应用层,它不能独立存在,必须附着于网络上,不像NB-IOT和4G可以自己创建网络,所以啊,MQTT就必须依赖于ESP8266-01S,通过wifi把数据收发。

        MQTT协议一共有两个版本,MQTT 3.1.1版本已经足够满足大多数物联网应用的需求,并且由于其广泛的兼容性和稳定性而被广泛使用。而MQTT 5.0版本则提供了更多的高级特性和改进,适用于需要更高性能和更复杂功能的场景。我们使用的是3.1.1版本。

MQTT 3.1.1协议英文原版的下载地址是:

https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/

WiFi通信——STM32通过ESP8266-01S上传DHT11温湿度和LED灯状态到阿里云物联网平台上(二)MQTT协议代码讲解_第1张图片

英文不好的建议看中文,中文的协议的下载地址是:

https://mqtt.p2hp.com/mqtt311

        英文原版协议一共是80页的内容,不用从头看到尾,浪费时间还容易看了后面忘了前面,我读研的时候就这么干过。一般我们做嵌入式开发的,其实用到啥看啥就行了,用到的内容你去看协议里对应的部分就行,用不到的地方就别看了。

STM32通过ESP8266-01S连接阿里云其实用到MQTT的控制报文并不多,只有CONNECT、CONNACK、SUBSCRIBE、SUBACK、PINGRESP、PUBLISH、PINGREQ这七个控制报文。这七个报文在MQTT 3.1.1的控制协议说明书里有

你可能感兴趣的:(STM32单片机实战项目讲解,stm32,阿里云,物联网)