1.刷固件
原厂的esp8266一般都是自带AT固件的,因为我们要连接阿里云云平台,所以我们需要去安信可官网下载并刷MQTT+AT固件。
https://docs.ai-/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB
这个固件是4M Flsah的:
这个是1M Flash的:
注意你所使用的esp8266型号,不然烧录固件的时候会报错
提示:Chip flash download error esp_write_flash.
通过esp8266数据手册察看可知:
01-07的型号Flash为1M,其他型号的Flash均为4M
(1M=8Mbit)
下载并解压好固件后,我们就要进行烧录。我使用的烧录工具为ESPFlashDownloadTool_v3.6.4
打开后点击红圈选项
点击三个点,选择固件下载的位置,选中对应bin文件,旁边设置0x00。
其他的按照图中设置,(注意选择FLASH的大小,上文有提到)COM口选择自己电脑分配的COM口,关于SPI MODE 的选择,大多数都支持DIO/DOUT,如果下载不成功换QIO/QOUT,详情参考以下网站:
【ESP8266学习3——固件烧录及相关参数说明 | 码农家园】/cs107069667/
接线问题(esp8266-01s):按照下图连接即可,其他已经内置好了,不同型号的esp8266接线可以网上查询并线接即可
两个设备GND必须共地!!!如果烧录过程中突然失败,原因之一可能是工作电压未达到。usb-ttl的3.3v并未达到标准的3.3v,所以大胆一点,把usb-ttl的5v接esp8266的3.3v!!!不是特别烫的话问题都不大。
接好线后,先点击ERASE清除数据,等待完成后
再点击START,静待进度条
2.阿里云平台项目创建和配置
打开阿里云网站,注册并登录
阿里云-计算,为了无法计算的价值 ()
依次点击:
新注册的话开通一下,免费使用一个月。开通好后点击管理控制台
点击公共实例后,点击产品,创建产品
设置产品信息,点击确定
新建设备(步骤三后面会用到,建议填写)
定义设备功能:
添加自定义功能:
点击确定后,点击左下角的发布上线
发布完成后即可看到我们创建的设备。当前设备尚未连接平台,显示未激活状态
3.esp8266的MQTT-AT指令的使用
接入阿里云
烧录好MQTT-AT固件后,打开串口调试助手并打开串口后接受界面就会出现我们烧录固件的详情
AT+RST//用于重置AT+CWMODE=1//设置当前模式为STA模式AT+CWLAP//查看当前环境下的WIFIAT+CWJAP="WIFI名称","WIFI密码"//连接WIFI
在接收区显示此结果即为连接WIFI成功:
连接WIFI后,我们就可以去连接阿里云了
找到我们之前建立的设备,点击右上角的查看
点击一键复制:
这里用到阿里云参数生成工具,具体可到此链接下载
/mhtc/p/11130809.html
将复制的消息粘贴到1.处,再点击右下角生成
指令如下:
AT+MQTTUSERCFG=0,1,"client_id","username","password",0,0,""//client_id随便写,username和password填生成的参数AT+MQTTCLIENTID=0,"ClientId"//ClientId填生成的参数,注意要在每个逗号前加分隔符"\"AT+MQTTCONN=0,"连接域名",1883,1//连接域名填上面生成的,注意要去掉端口号1883,因为后面已经设置了
以我们生成的参数举例:
AT+MQTTUSERCFG=0,1,"NULL","name&iknjuQejQ6d","0546DE8D18B9040FE2B90744131B15A5636CA24A",0,0,""AT+MQTTCLIENTID=0,"332211|securemode=3\,signmethod=hmacsha1\,timestamp=112233|"AT+MQTTCONN=0,"iknjuQejQ6d.iot-as--",1883,1
第一行代码对应阿里云输出参数的第三、四行
第二行代码对应阿里云输出参数的第二行
第三行代码对应阿里云输出参数的第一行
如果接入失败,建议手打,有点玄学,也有可能是复制粘贴环节出问题
显示3个ok即为接入成功,我们可以在阿里云看到设备已激活
收发数据
下发数据
topic订阅属性设置:复制横线内容
AT+MQTTSUB=0,"topic",1//"topic"改为我们刚刚复制的内容///sys/iknjuQejQ6d/${deviceName}/thing/service/property/set//${deviceName}用我们上文新建设备时候的name
代码举例:
AT+MQTTSUB=0,"/sys/iknjuQejQ6d/name/thing/service/property/set",1
接收端显示ok即为成功
在这里就可以看到我们刚刚的订阅
然后点击在线调试
发送温度指令,可以看到发送指令成功
在串口调试助手也可以看到下发的温度
上报数据
复制横线内容
AT+MQTTPUB=0,"topic","data",1,0//"topic"选择复制的/sys/iknjuQejQ6d/${deviceName}/thing/event/property/post//${deviceName}填对应的deviceName//"data"采用json数据格式,{\"params\":{\"temperature\":20}},其中temperature为属性的标识符
代码举例:
AT+MQTTPUB=0,"/sys/iknjuQejQ6d/name/thing/event/property/post","{\"params\":{\"temperature\":80}}",1,0
接收端显示ok即为成功
在物模型数据中便可以看到我们上传的数据
也可以到日志服务中查看
好了,以上便是esp8266接入阿里云的全部步骤!本文章如若有错请指出。
感谢您的耐心观看!!!
esp8266通过MQTT-AT指令连接阿里云互联网平台并收发数据(保姆级教程)(本文用的型号为esp8266-01s)