MQTT是IBM开发的一个即时通讯协议面姠M2M和物联网的连接,采用轻量级发布和订阅消息传输机制并且有可能成为物联网的重要组成部分。
在这个文件中有几个宏定义可能需偠修改的
还有一个最重要的宏定义——CFG_HOLDER,因为这个MQTT示例在ESP8266运行过一次后会把这些信息保存到FLASH中如果要继续修改这些信息,记得要修改CFG_HOLDER这個宏定义改成另一个数值即可。
CFG_HOLDER作的用是:在CFG_Load
函数中如果发现从FLASH读取出来的CFG_HOLDER
数值和宏定义的不一样,则会更新这些信息并保存到FLASH中。不修改CFG_HOLDER
的话可能会发觉明明用户名和密码都正确但是就是连接不上去
根据上面分析,下面我们就可以修改示例代码:
- 最后修改CFG_HOLDER,以讓这些配置生效直接给原来CFG_HOLDER定义的数值加1即可。
编译查看Console窗口,如果输出
那说明代码已经编译成功另外要注意,ESP8266 SDK
另外如果Problems窗口报Errors的只要Console窗口编译通过,就可以不用管
如果前面一切顺利,打开串口设置波特率为115200,上电后前面的乱码不用管之后串口打印信息如下,省略了一部分信息:
其中加粗带方括号的字段根据测试环境不同而不同
同时看源码和串口信息可知,ESP8266向MQTT服务器订阅了三个主题假设使用的是本地搭建的MQTT服务器,那么查看MQTT服务器后台就可以看到:
同时在后台的Connects页面也可以看到ESP8266的链接:
MQTT本地服务器搭建教程Windows版链接在后面
另外博主已经用ESP8266的MQTT连接上了OneNET云,连接该云需要注释掉下面这条语句在user_init
函数下。
原因是OneNET不支持否则连接不上。