Connecting to WiFi

The ESP32 is an amazing chip for building IoT devices because it has WiFi built-in.

Here’s a simple Arduino program that connects to a WiFi network of your choosing. Just remember to correctly set the WIFI_NETWORK and WIFI_PASSWORD variables.

#include <Arduino.h>
#include "WiFi.h"

#define WIFI_TIMEOUT_MS 20000
#define WIFI_NETWORK "My Network"
#define WIFI_PASSWORD "SuperSecure1"

void connectToWiFi(){
    Serial.print("Connecting to Wifi");
    WiFi.mode(WIFI_STA);
    WiFi.begin(WIFI_NETWORK, WIFI_PASSWORD);
    
    unsigned long startAttemptTime = millis();
    
    // Keep looping while we're not connected and haven't reached the timeout
    while (WiFi.status() != WL_CONNECTED && 
              millis() - startAttemptTime < WIFI_TIMEOUT_MS){
        Serial.print(".");
        delay(100);
    }
    
    // Make sure that we're actually connected, otherwise go to deep sleep
    if(WiFi.status() != WL_CONNECTED){
        Serial.println(" Failed!");
      // Handle this case. Restart ESP, go to deep sleep, retry after delay...
    }else{
        Serial.print(" Connected!");
        Serial.println(WiFi.localIP());
    }
}