ESP8266 TCP ERROR CLOSED的常见原因及解决办法

时间:2024-04-02 14:54:14

前言

最近在使用ESP8266的简单AT指令做串口透传,本来想着和HC-05的蓝牙串口差不多简单吧,,结果发现ESP8266似乎并没有像HC-05那么易用,需要配置的东西还挺多的,而且也不大方便。不过遇到的问题总算是解决了
以下为遇到的问题和可能的解决方案

进行TCP透传链接时遇到TCP ERROR CLOSED

一般遇到这种情况,如果硬件其他步骤都配好的话,导致不能正常运行的应该就是电脑的防火墙问题了。由于使用电脑作为TCP服务器,而一般情况下电脑防火墙会将一些不怎么常见的端口进行阻挡,从而导致虽然电脑打开了TCP服务器但是ESP8266无法接收到。如果是这种问题的话,解决的办法有两种:

  • 以ESP8266作为TCP的服务端,电脑作为客户端进行通信。这样子的话防火墙就不会阻拦了,因为电脑只是访问端口,从安全的角度上来说比开放端口让他人访问会好很多,因此默认下是可以访问到的。

  • 更改防火墙设置。如果电脑拥有的是一个固定ip的话,让电脑作为主机怎么来说都会方便一些。因此为了能够TCP通讯需要重新修改防火墙设置。步骤如下

  1. 打开安全面板

ESP8266 TCP ERROR CLOSED的常见原因及解决办法
2. 将防火墙还原为默认设置

此处的还原默认设置也不是什么很恐怖的还原所有配置,就是以后的应用的网络通信权限在第一次运行的时候会重新询问而已

ESP8266 TCP ERROR CLOSED的常见原因及解决办法
还原完成后重新打开自己的TCP网络助手,系统会弹出提示允许权限及作用域,此时最好把所有的(公用,专有)都允许。设置完成后应该就可以愉快的使用了!

让ESP8266保存设置,开机自动进入透传模式

使用AT+SAVETRANSLINK指令进行透传参数保存。
AT+SAVETRANSLINK=MODE,IP,PORT,TYPE,TIMEOUT
MODE为1即为开机自启
IP填远端TCP服务器地址
PORT为端口号
TYPE为通信类型"UDP"或"TCP",默认TCP
TIMEOUT为等待服务器的时间