[英]How to connect to the AP in loop() in ESP8266
我在 esp8266-12F 中遇到WiFi.begin()
问题。
我要将 ESP8266 与loop()
的特定接入点连接,而不是在setup()
。
我想如果特定的 AP 可用,ESP8266 会连接到它。 在下面的代码中,我应该连接到“abc”AP 并打开一个 LED,如果没有连接,它会关闭 LED,但是WiFi.begin("abc", "123456789");
不管用。
在这种情况下我必须做什么?
setup(){
}
loop(){
if (WiFi.status() != WL_CONNECTED){
WiFi.disconnect();
WiFi.mode(WIFI_STA);
WiFi.begin("abc", "123456789");
digitalWrite(5, HIGH);
} else {
digitalWrite(5, LOW);
}
}
我将使用标准代码在setup()
中setup()
WiFi 连接,并根据WiFi.status()
在loop()
WiFi.status()
设置为高/低。 重新连接应该自动处理...
如果您目前未连接到任何 AP,则添加WiFi-disconnect()
毫无意义。 只需连接到设置上的 AP 并在loop()
上保留if (WiFi.status() != WL_CONNECTED)
。 ESP 在可用时将自身重新连接到 AP。
setup(){
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
WiFi.setAutoConnect(true);
Serial.print("Connecting to ");
Serial.print(ssid);
int attempt = 0;
while(WiFi.status() != WL_CONNECTED && attempt<150){ //Connecting to Wi-Fi
delay(100);
Serial.print(".");
attempt++;
}
if(WiFi.status() == WL_CONNECTED){
Serial.println("");
Serial.println("WiFi Connected!");
Serial.print("Local IP: ");
Serial.println(WiFi.localIP());
}
if(attempt == 150){
Serial.println("Failed to connect to WiFi...");
}
}
loop(){
if(WiFi.status() != WL_CONNECTED){
digitalWrite(5,HIGH);
}else{
digitalWrite(5,LOW);
}
}
但是对于好的代码优化的热爱使用一个标志来防止 digitalWrite 每秒发生数百次
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.