【问题标题】:My ESP32 is scanning all the nearby WiFi Networks but it does not connect to my WiFi Router using Arduino IDE (Return Value of WiFi.status API = 6)我的 ESP32 正在扫描附近的所有 WiFi 网络,但它没有使用 Arduino IDE 连接到我的 WiFi 路由器(WiFi.status API 的返回值 = 6)
【发布时间】:2022-12-31 05:11:49
【问题描述】:

我正在尝试使用 Arduino IDE 将我的 ESP32 连接到我的 Wifi 路由器,但它没有连接并给出连接失败或断开连接的状态。我还确认它正在扫描所有可用的 Wifi 网络,但没有连接到我的路由器。我什至尝试了另一块 ESP32 板,但问题仍然存在。



I tried this code below. This code would scan/give the available Wifi networks and it did. Also, I was expecting this code to run smoothly but my ESP32 won't connect to my Wifi router.

#include<WiFi.h>

const char *ssid = "my_SSID";  
const char *password = "my_Password";

void setup()
{
    Serial.begin(115200);
    delay(2000);
    WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(100);

    Serial.println("scan start");

    // WiFi.scanNetworks will return the number of networks found
    int n = WiFi.scanNetworks();
    Serial.println("scan done");
    if (n == 0) {
        Serial.println("no networks found");
    } else {
        Serial.print(n);
        Serial.println(" networks found");}

    // Connect to my network.
    WiFi.begin(ssid,password);     

    // Check Status of your WiFi Connection
    int x = WiFi.status(); // If x=3 (Connected to Network) & If x=6 (Disconnected from Network)
    Serial.print("WiFi Connection Status is ");
    Serial.println(x);
    
    while(WiFi.status() != WL_CONNECTED) {
        delay(1000);
        Serial.println("WiFi Connection Failed...");
        WiFi.disconnect();
        WiFi.reconnect();  }

    //Print local IP address and start web server
      Serial.println("\nConnecting");
      Serial.println("");
      Serial.println("WiFi connected.");
      Serial.println("ESP32 IP address: ");
      Serial.println(WiFi.localIP());
}

void loop() {}

1st image shows the output of my serial monitor. 2nd inamge shows the return value for WiFi.status function

【问题讨论】:

  • 在 esp 加入 AP 之前,WiFi.begin 不会阻止。当然,它在连接 (WL_CONNECTED) 之前已断开连接(代码 6)。但你不要让它连接到那个disconnect()电话。看例子。
  • 是的,Juraj,你是对的。它现在工作。

标签: arduino wifi esp32 arduino-ide esp8266wifi


【解决方案1】:

试试这个代码:

#include<WiFi.h>

const char *ssid = "YourSSID";  
const char *password = "YourPassword";
        
void initWiFi() {
      WiFi.mode(WIFI_STA);
      WiFi.begin(ssid, password);
      Serial.print("Connecting to WiFi ..");
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print('.');
        delay(1000);
      }
      Serial.println(WiFi.localIP());
    }
    
    void setup() {
      Serial.begin(115200);
      initWiFi();
      Serial.print("RRSI: ");
      Serial.println(WiFi.RSSI());
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    }

【讨论】:

  • 图书馆的一个基本例子
【解决方案2】:

我只是有同样的问题。我发现,对我来说,问题不在 ESP32 中。这是 WiFi 路由器。我在路由器中将路由器的安全设置为“WEP”。当我将安全性更改为“WPA2-PSK”时,ESP32 设备立即连接。

【讨论】:

    【解决方案3】:

    您还可以以这种简化形式使用您的代码。因为模式需要在 Wifi.begin() 之前再次调用。

    void setup() {
      Serial.begin(115200);
      //initWiFi();
      WiFi.mode(WIFI_STA);
      WiFi.disconnect();
      delay(100);
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, password);
    Serial.print("Connecting to WiFi ..");
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print('.');
        delay(1000);
      }
    
      /////////////////////////////
      Serial.print("RRSI: ");
      Serial.println(WiFi.RSSI());
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    }
    

    【讨论】:

      猜你喜欢
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      相关资源
      最近更新 更多