#include "WiFi.h"
void setup() {
Serial.begin(115200);
// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
return;
}
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");
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");
delay(10);
}
}
Serial.println("\nWhat Network would you like to join?");
while (Serial.available() == 0) {
}
int menuChoice = Serial.parseInt();
String ssid = WiFi.SSID(menuChoice - 1);
Serial.println(ssid);
while(Serial.available() == 0){
}
String password;
if(WiFi.encryptionType(menuChoice - 1) == 0){
password = "";
}
else {
Serial.println("Please enter your password: ");
password = Serial.readString();
}
WiFi.begin(ssid,password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
// Wait a bit before scanning again
delay(5000);
}