/*
Author: D.O.T
Date: 28/03/2024
Course: EmTech 2023-2024
*/
#include <WiFi.h>
void setup() {
Serial.begin(115200); //baudrate esp32
WiFi.mode(WIFI_STA);
WiFi.disconnect(); //verbinding loskoppelen van verbonden access point (AP)
delay(100);
Serial.println("Ready to iniitialise WiFi ...");
}
void loop() {
Serial.println("Scanning for WiFi networks");
int networkCount = WiFi.scanNetworks(); // deze functie retourneert het aantal gevonden netwerken
Serial.println("Scan completed");
if (networkCount == 0){
Serial.println("no networks found");
} else {
Serial.print(networkCount);
Serial.println(" networks founds");
// Naam netwerk weergeven, sterkte, kanaal en Encryptie type
Serial.println("Nr | SSID | RSSI | CH | Encryption");
for(int i = 0; i < networkCount; i++){
Serial.printf("%2d",i + 1);
Serial.print(" | ");
Serial.printf("%-32.32s", WiFi.SSID(i).c_str()); // get SSID
Serial.print(" | ");
Serial.printf("%4d", WiFi.RSSI(i)); // get RSSI
Serial.print(" | ");
Serial.printf("%2d", WiFi.channel(i)); // get channel
Serial.print(" | ");
/* get encryption type (hier maken we gebruik van switch-case omdat er meer dan 2 encryptietypes bestaan.
Door the verschillende types alvorens te definieren kunnen we gaan types vergelijken tot er een
overeenkomst is van type. Dan gaan we printen welke type encryptie het is) */
switch (WiFi.encryptionType(i)){
case WIFI_AUTH_OPEN:
Serial.print("open");
break;
case WIFI_AUTH_WEP:
Serial.print("WEP");
break;
case WIFI_AUTH_WPA_PSK:
Serial.print("WPA");
break;
case WIFI_AUTH_WPA2_PSK:
Serial.print("WPA2");
break;
case WIFI_AUTH_WPA_WPA2_PSK:
Serial.print("WPA+WPA2");
break;
case WIFI_AUTH_WPA2_ENTERPRISE:
Serial.print("WPA2-EAP");
break;
case WIFI_AUTH_WPA3_PSK:
Serial.print("WPA3");
break;
case WIFI_AUTH_WPA2_WPA3_PSK:
Serial.print("WPA2+WPA3");
break;
case WIFI_AUTH_WAPI_PSK:
Serial.print("WAPI");
break;
default:
Serial.print("unknown");
}
Serial.println();
delay(10);
}
}
Serial.println("");
/* Dit wordt continu geloop't. Dus om gebeugen te besparen gaan we het scan resultaat verwijderen
voor de scan opnieuw gebeurt
*/
WiFi.scanDelete();
delay(5000); // even wachten voor opnieuw scannen
}