我所使用的是ESP8266-01S,AT指令的基本功能可以直接使用,但要实现上传数据到物联网平台的需要下载MQTT固件。一开始是在CSDN上参考其他的,下载固件库的引脚普遍很多时IO0接地,VCC接3.3V,RX接CH340的TX,TX接CH340的RX,GND接GND即可。尝试了很久一直下载不成功,最后在查看淘宝给的资料发现我的引脚是这样的,我的只有这样接才能下载MQTT固件
选择是下载模式的引脚就可以下载成功,下载的工具是ESP烧录工具,找到齿轮状图标打开,选择ESP8266的
然后选择MQTT的文件,一般使用的是1471的,参数如图所示
COM是根据电脑连接上CH340,在电脑设置可以查看COM口,点击REASE,拔掉ESP8266的电源重新插上,点击START,再拔掉ESP8266电源重新插上,等待下载。完成下载后ESP8266就可以使用MQTT的固件了。 在串口助手发送AT+GMR可以发现多了一行带有bin的描述
想要实现ESP8266上传数据到物联网平台,我所使用的平台是阿里云平台,要在阿里云平台创建产品,网址如下:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
如果没有账号的先要注册账号,创建产品
在设备-设备列表-添加设备
这里选择刚创建好的产品,可以输入自己喜欢的设备名字,也可以点击确认自动生成。
确认后会弹出
点击查看设备信息
这里的MQTT连接参数很重要,等会ESP8266连接时候需要频繁使用。
回到产品-功能定义-编辑草稿,这里是设置上传的数据
这里可以自定义或者选择标准的
确认后是这样的
点击右上角的发布,并打√和发布
AT-MQTT指令手册:MQTT AT Commands — ESP-AT 用户指南 文档,可以详细查看其参数
在使用串口助手时,一定要勾上自动换行,对了,此时是CH340和与ESP8266的连接,我的是VCC接3.3V,RX接CH340的TX,TX接CH340的RX,GND接GND,EN接3.3V
1.复位操作
AT+RST
2.恢复出厂设置
AT+RESTORE
3.设置SEP8266模式,这里1或者3都可以
AT+CWMODE=3
4.连接wifi,这个wifi是你手机热点也可以,需要能上网的,填入wifi名字和密码
AT+CWJAP="WIFIname","WIFIpasswd"
有此回复说明连接成功,此时查看手机热点有设备已连接
5.开启SNTP服务器,8时域,SNTP服务器为阿里云域名,参数不用更改,直接发送即可
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
6.配置 MQTT 用户属性,更改第三和第四的参数,这两个参数就是前面提到的MQTT连接参数,找到里面的username和passwd对应的参数。(参数过长的建议写到记事本再粘贴到串口助手上,不然会误换行导致不行error)
AT+MQTTUSERCFG=0,1,"NULL","username","passwd",0,0,""
7.配置 MQTT 客户端 ID,更改第二个参数,这个参数也是在前面提到的MQTT连接参数里获取。有逗号的需在逗号前添加 \ 。
AT+MQTTCLIENTID=0,"clientId"
8.连接/查询 MQTT Broker,更改第二和第三个参数,这两个参数也是前面提到MQTT连接参数里获取。
AT+MQTTCONN=0,"mqttHostUrl",port,1
到这一步后在阿里云平台可以看到设备连接上并且在线了
9.想要通信的话需要订阅,更改第二个参数,空格里面填入的是前面提到的MQTT连接参数中clientId中第一个|符号前面的参数,把.改为/
AT+MQTTSUB=0,"/ /user/get",1
在阿里云平台上可以看到已经订阅topic了
10. 发布指令,第一个空出来的和第9步的参数一样,第二个空是功能定义的标志符参数,第三个空是你要发送的数据
AT+MQTTPUB=0,"/sys/ /thing/event/property/post","{params:{\" \": }}",0,0
发送成功后可以在阿里云查看你发送的数据。
11.可以在此发布消息,就是在这里你可以在阿里云上发送数据到ESP8266到串口助手
在串口助手可以查看
11.为了可以节省资源,可以关闭连接
AT+MQTTCLEAN=0
这是本人的学习笔记,stm32控制ESP8266更新待续............