一.烧录
1.esp-01
1.flash_download配置如图,如果没反应就ERASE擦除,再START开始 。
2.接线:GPIO0下拉则进入下载模式,CH_PD拉高使能芯片,RX,TX接串口,RST不接,要是一直上点等待,就复位一下,烧录完,发送AT没反应就复位一下。
![](https://img-blog.csdnimg.cn/direct/f430a2459cb641ea960f0bfd6bf47c42.png)
![](https://img-blog.csdnimg.cn/direct/0c626de5a88b4c83b42ce1b9a2d4cb7e.png)
2.esp-12f Node
1.引脚图如图。
板子没有插任何跳线帽,就可以烧录代码,烧录软件波特率115200,点击开始烧录,同时按住板子的复位按键,然后松开,就可以烧录了。
![](https://img-blog.csdnimg.cn/direct/9ae011afd2a7415da1efa752bc2529ff.png)
![](https://img-blog.csdnimg.cn/direct/3fc9021b27c44f85b0c39b2256908c52.png)
2.用数据线接USB可以通过串口烧录和调试AT指令,USB连接到RXD0和TXD0,所以单片机可通过Node的TXD0通讯。
3.貌似接usb线不可以通讯起来,要接usart模块
二.AT连接阿里云
1.AT+RST
2.AT+CWMODE=1
3.AT+CWJAP="qhq","13099138865"//改成自己的wifi
4.AT+MQTTUSERCFG=0,1,"NULL","用户名","密码",0,0,""
例AT+MQTTUSERCFG=0,1,"NULL","finger&a1VikqFQOO8","07f097f059daf94f22c4b1f6b790daeee9aca4054aca7a875da280d8fec59d71",0,0,""
5. AT+MQTTCLIENTID=0,"ClientId" //ClientId第二个参数注意每个逗号前加分隔符\ (这条特殊,在一个""中还有逗号,在,前要加转义字符)
例AT+MQTTCLIENTID=0,"a1VikqFQOO8.finger|securemode=2\,signmethod=hmacsha256\,timestamp=1681811150023|"
6. AT+MQTTCONN=0,"连接域名",1883,1
例AT+MQTTCONN=0,"
a10nifdBznn.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1
至此,阿里云就可以上线了。
7.AT+MQTTPUB=0,"/sys/a1VikqFQOO8/finger/thing/event/property/post","{\"params\":{\"doors\":0}}",1,0 //发布Topic
8.AT+MQTTSUB=0,"/sys/a1VikqFQOO8/finger/thing/event/property/set",1 //订阅Topic
三.单片机串口连接阿里云
注意:"前要加\转移字符
printf ("AT+RST\r\n")
printf("AT+RESTORE\r\n")
printf("AT+CWMODE=1\r\n")
printf("AT+CIPSNTPCFG=1,8,\"
ntp1.aliyun.com\"\r\n")
printf("AT+CWJAP=\"qhq\",\"13099138865\"\r\n")
printf("AT+MQTTUSERCFG=0,1,\"NULL\",\"finger&a1VikqFQOO8\",\"07f097f059daf94f22c4b1f6b790daeee9aca4054aca7a875da280d8fec59d71\",0,0,\"\"\r\n")
printf("AT+MQTTCLIENTID=0,\"a1VikqFQOO8.finger|securemode=2\\,signmethod=hmacsha256\\,timestamp=1681811150023|\"\r\n")
//上面这条特殊,在一个""中还有逗号,在,前有了转义字符要再加转义字符
printf("AT+MQTTCONN=0,\"
a10nifdBznn.iot-as-mqtt.cn-shanghai.aliyuncs.com\",1883,1\r\n")
printf("AT+MQTTSUB=0,\"/sys/a10axxRj2BN/esp01/thing/service/property/set\",1\r\n");
Delay_ms(5000); //产品订阅
printf("AT+MQTTPUB=0,\"/sys/a10axxRj2BN/esp01/thing/event/property/post\",\"{\\\"params\\\":{\\\"temperature\\\":%f}}\",1,0\r\n", temp); //产品发布
\\\"params\\\" 这段原因是:由于\"params\" \是就要有的,所以 \是给原本就有的\ 还有一个是给“的
AT+MQTTPUB=0,"/sys/a1VikqFQOO8/finger/thing/event/property/post","{\"params\":{\"doors\":0}}",1,0 //发布Topic