解决ESP8266 NodeMCU连接WIFI速度时快时慢的问题
因为毕设所以本人需要使用Arduino IDE进行开发,主控为ESP8266NodeMCU,当使用网上比较多比较简单的WIFI连接代码时发现,手机显示设备已连接,但是就是设备代码就是不往下运行,而后对代码进行修改为一个比较快的代码。如下将给出网上的基础代码以及改良的代码,目前估计是WIFI.begin()这个函数被反复调用所导致的问题。
//改良前
while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
// failed, retry
Serial.print(".");
delay(5000);
//超时退出
if(++timemout_i >= 12)
{
timemout_status = 0;
break;
}
}
//改良后的 ssid为WIFI账号,pass为密码
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
// failed, retry
Serial.print(".");
delay(3000);
//超时退出
if(++timemout_i >= 12)
{
timemout_status = 0;
break;
}
}
可以看出之前的代码是直接使用 WIFI.begin() 进行多次连接,不好用(也可能是我的个别问题),而后我改变判断目标为 WiFi.status() 连接WIFI就变得很快了。我曾尝试过将WiFi.begin(ssid, pass);加入while循环中如下
//改良后的 ssid为WIFI账号,pass为密码
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
// failed, retry
Serial.print(".");
delay(3000);
if(++timemout_i >= 12)
{
timemout_status = 0;
break;
}
WiFi.begin(ssid, pass);
}
发现如果这样使用反而会使程序运行变慢,故推测 WiFi.begin(ssid, pass);,不能反复调用或反复调用会出问题。
作者:东十九