0 前情提要
这次在做arduino实验连接到乐为互联时,一直出现以下问题:
无论发送任何AT指令都会出现如下错误
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Verb</h2>
<hr><p>HTTP Error 400. The request verb is invalid.</p>
</BODY></HTML>
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 10 Jun 2024 07:02:57 GMT
Connection: close
Content-Length: 326
当时想的解决方式是刷机,或者是重新再写一块板子。我选择了后者,写“坏”三块板子后我陷入了沉思。
1 解决方式
后面我想到在配置的时候我使用了如下代码:
//AT指令发送时记得勾线发送新行
AT+RST //复位
AT+CIPMODE=1 //STA模式
AT+CIPMUX=0 //单连接模式
AT+CWMODE=1 //透传模式
AT+CWJAP="412","cxjlb412" //连接WiFi 这里是WiFi和密码
AT+CIPSTART="TCP","api.lewei50.com",80 //与乐联网建立TCP连接
AT+CIPSEND //进入透传开始发送数据
/* 这里使用透传模式有一个好处 就是一般不会轻易断开连接,如果不使用透传模式,TCP连接容易断开,下次发数据还要重新建立连接 */
//开机自动进入透传 并且连接到乐联网
AT+SAVETRANSLINK=1,"api.lewei50.com",80,"TCP"
最重要的是最后一个代码AT+SAVETRANSLINK=1
使得以上的操作在重启ESP时会自动执行。上面AT指令无法使用的原因也是因为开机自动进入了透传模式。所以我们的主要任务就是如何关闭透传模式。
首先进入我们的串口调试工具后,发送
+++
请注意!:这里的三个加号一定要不发送新行,这里以XCOM作为演示
如图所示画红框的地方,点选掉,发送即可,发送之后等待一段时间(1-3秒),然后再输入如下命令:
AT+SAVETRANSLINK=0 //罪魁祸首,关闭 开机自动进入透传模式
然后进行测试:
AT
AT+RST
若测试成功,那么就说明关闭成功