Search code examples
c++esp8266esp8266wifi

What does the return code of the Wifi Libary in an ESP8266 mean?


#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

#ifndef STASSID
#define STASSID "wlanName"
#define STAPSK  "wlanPassword"
#endif

const char* ssid = STASSID;
const char* password = STAPSK;

const char* host = "api.github.com";
const int httpsPort = 443;

const char fingerprint[] PROGMEM = "5F F1 60 31 09 04 3E F2 90 D2 B0 8A 50 38 04 E8 37 9F BC 76";

void setup() {
  Serial.begin(115200);
  delay(5000);
  Serial.println();
  Serial.print("connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (true) {
    delay(500);
    Serial.print(WiFi.status());
  }
}

void loop() {
  // put your main code here, to run repeatedly:
}

If I run this code, I will get 6 as output from Wifi.status(), and once I also got 4. What do 4 and 6 stand for? Is it connected or not? What other status codes do I have to know?


Solution

  • There is publicly available documentation https://www.arduino.cc/en/Reference/WiFiStatus

    Arduino sources are open source. You can browse the sources.

    Type in google "Arduino esp8266 source github" and you may find https://github.com/esp8266/Arduino . From there you can ex. type WL_CONNECTED in search bar above and find this line of code:

    typedef enum {
        WL_NO_SHIELD        = 255,   // for compatibility with WiFi Shield library
        WL_IDLE_STATUS      = 0,
        WL_NO_SSID_AVAIL    = 1,
        WL_SCAN_COMPLETED   = 2,
        WL_CONNECTED        = 3,
        WL_CONNECT_FAILED   = 4,
        WL_CONNECTION_LOST  = 5,
        WL_WRONG_PASSWORD   = 6,
        WL_DISCONNECTED     = 7
    } wl_status_t;