乐鑫技术交流
直播中

刘慧

8年用户 1868经验值
私信 关注
[问答]

ESP8266如何防止连接在connectin丢失后重新连接?

正在以透明模式使用 8266,并连接到我的服务器应用程序。一切正常,但如果由于某种原因连接丢失,连接将自动重新建立(我可以看到设备在 Wireshark 中多次尝试)。  重新建立连接后,我的应用程序(从8266方面)无法知道这种情况已经发生。 我编写服务器应用程序的方式,这是不允许的,因为必须有一个登录序列。我不确定 at cipstart 中的超时参数是否用于此目的,但是如果我添加它,我会收到错误。以下是我尝试过的,我添加了最后两个参数,但出现错误(我将我的 ip 替换为 xxx.xxx.xxx.xxx 仅用于此处)

AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",1963,1964,0


在 GMR 返回 :
AT版本:0.60.0.0(Jan 29, 2016 15:10:17)
SDK版本:1.5.2(80914727)
编译时间:Jan 29 2016 19:07:08

回帖(1)

郭大

2024-7-16 17:35:37
要防止ESP8266在连接丢失后自动重新连接,您可以采取以下步骤:

1. 禁用自动连接:首先,您需要禁用ESP8266的自动连接功能。这可以通过发送以下AT命令实现:

```
AT+CIPSTA_CUR?
```

这个命令将返回当前的STA配置。如果自动连接功能已启用,您将看到“AUTOCONN”参数。

2. 设置连接模式:要禁用自动连接,您需要将连接模式设置为“Manual”。发送以下AT命令:

```
AT+CIPSTA_CUR="AUTOCONN",0
```

这将禁用自动连接功能。

3. 手动重新连接:在连接丢失后,您需要手动重新连接到服务器。您可以使用以下AT命令:

```
AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",端口号
```

将“xxx.xxx.xxx.xxx”替换为您的服务器IP地址,将端口号替换为您的服务器应用程序使用的端口。

4. 检测连接丢失:为了检测连接是否丢失,您可以定期发送心跳包或使用其他方法来检查连接状态。如果检测到连接丢失,您可以手动重新连接。

5. 通知服务器应用程序:在重新建立连接后,您需要通知服务器应用程序。这可以通过发送特定的数据包或执行登录序列来实现。这样,服务器应用程序将知道连接已经重新建立。

6. 处理错误:如果您在使用AT+CIPSTART命令时遇到错误,请检查您的参数是否正确。确保您使用了正确的引号和逗号。例如:

```
AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",端口号
```

请注意,ESP8266的连接稳定性可能会受到多种因素的影响,例如信号强度、电源稳定性等。确保您的设备在良好的网络环境中运行,以减少连接丢失的可能性。

总之,要防止ESP8266在连接丢失后自动重新连接,您需要禁用自动连接功能,手动重新连接,并在重新建立连接后通知服务器应用程序。同时,确保您的设备在良好的网络环境中运行,以提高连接稳定性。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分