#include "WiFi.h"
// WiFi network credentials
const char* ssid = "Varshitha";
const char* password = "Varshi@123";
// Signal strength threshold (RSSI)
const int signalThreshold = 70;
// Struct to hold WiFi scan results
struct WiFiNetwork {
String ssid;
int32_t rssi;
bool isSecure;
};
// Array to hold scan results
WiFiNetwork networks[20];
int networkCount = 0;
void setup() {
Serial.begin(115200);
Serial.println("Initializing WiFi...");
WiFi.mode(WIFI_STA); // Set WiFi mode to station
Serial.println("Setup done!");
// Connect to specified network
connectToNetwork();
}
void loop() {
// Enhance scan frequency: Scan every 2 seconds
delay(2000);
Serial.println("Scanning...");
int n = WiFi.scanNetworks();
Serial.println("Scan done!");
if (n == 0) {
Serial.println("No networks found.");
} else {
Serial.println();
Serial.print(n);
Serial.println(" networks found");
networkCount = (n > 20) ? 20 : n;
for (int i = 0; i < networkCount; ++i) {
networks[i].ssid = WiFi.SSID(i);
networks[i].rssi = WiFi.RSSI(i);
networks[i].isSecure = (WiFi.encryptionType(i) != WIFI_AUTH_OPEN);
Serial.print(i + 1);
Serial.print(": ");
Serial.print(networks[i].ssid);
Serial.print(" (");
Serial.print(networks[i].rssi);
Serial.print(")");
Serial.println(networks[i].isSecure ? "*" : " ");
}
}
Serial.println("");
WiFi.mode(WIFI_OFF);
delay(3000);
WiFi.mode(WIFI_STA);
}
void connectToNetwork() {
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}