启蒙视频:stm32+esp8266(MQTT固件)阿里云物联网开发哔哩哔哩bilibili 视频说明:内容主要是部分实现,细节实现以及可能遇到问题解决如下
一、烧录固件
0. 为什么要烧录固件:一般出厂的esp8266还不支持MQTT,需要重新烧录带有MQTT的指令包 1. 查看esp8266-01s的Flash大小(我的Flash:1M)* 2. 固件下载地址:AT固件汇总 | 安信可科技(这里面根据自己Flash大小选择AT固件) 3. 使用多绑线连接esp8266和STM32引脚对应图:
二、连接阿里云AT指令(按顺序即可)
-
-
AT+RST //重启
-
-
ATE0 //关闭回显
-
-
AT+CIPMODE=1 //sta模式
-
-
AT+CWJAP="WIFI名称","WIFI密码" //连接热点
-
-
AT+MQTTUSERCFG=0,1,"clientId","username","passwd",0,0,"" //用户信息配置
-
-
AT+MQTTCONN=0,"阿里云服务器IP地址",1883,1 //连接服务器
重点说明
第五小点细节说明(可参考阿里云MQTT接入文档):
-
Client ID、username、passwd这三个不是MQTT连接参数
-
Client ID(图解):
-
细说这个Client ID:
-
一般值为 ${ClientId任意值(建议五位)}|securemode=3,signmethod=hmacsha1| -
第一点的值(有个坑):在发送AT指令时,要在| | 之间的每个逗号前面要加 \发送 -
由上图可知Client ID和ClientId是不同的
-
username(图解):
-
passwd(图解):
说明ProductKey、DeviceName、DeviceSecret:
三、我遇到问题
失败原因:上图中 \ 没有加导致返回error
解决:在||之间的逗号前加 \
-
串口工具的使用 失败原因:不清楚 解决:前面我一直使用的XCOM串口工具,发送AT指令,在连接服务器时始终失败,后面我更换了串口工具SSCOM结果就成功了。 -
密码生成工具的使用 失败原因:我在ClientId一栏填写了Client ID(就是完整的值:${ClientId:任意值(建议五位)}|securemode=3,signmethod=hmacsha1|) 解决:只需要填写任意值(建议5个)生成密码才是正确密码
|