1#include <ESP8266WiFi.h>
2
3void setup() {
4    delay(1000); // wait for a second to read from serial port after flashing
5    Serial.begin(9600);
6    Serial.println("disconnect: setup(): CALL: Setup Begin");
7    Serial.println("disconnect: setup(): INFO: Setting baud rate to 9600");
8
9    wifiStatus();
10    disconnectWifi();
11
12    Serial.println("disconnect: setup(): CALL: Setup End");
13}
14
15void loop() {
16    wifiStatus();
17    scanNetworks();
18}
19
20void disconnectWifi() {
21    Serial.println("disconnect: setup(): CALL: Disconnect Begin");
22    WiFi.disconnect();
23    while (WiFi.status() == WL_CONNECTED) {
24        Serial.println("disconnect: setup(): INFO: WiFi connected");
25        delay(1000);
26    }
27    Serial.println("disconnect: setup(): CALL: Disconnect End");
28}
29
30void wifiStatus() {
31    Serial.println("disconnect: wifiStatus(): CALL: Status Begin");
32    Serial.println("disconnect: loop(): INFO: WiFi disconnected");
33    Serial.print("disconnect: wifiStatus(): STATUS: ");
34    Serial.println(WiFi.status());
35    Serial.print("disconnect: wifiStatus(): IP: ");
36    Serial.println(WiFi.localIP());
37    Serial.print("disconnect: wifiStatus(): SSID: ");
38    Serial.println(WiFi.SSID());
39    delay(1000);
40    Serial.println("disconnect: wifiStatus(): CALL: Status End");
41}
42
43void scanNetworks() {
44    Serial.println("disconnect: scanNetworks(): CALL: Scan Begin");
45    int n = WiFi.scanNetworks();
46    if (n == 0) {
47        Serial.println("disconnect: scanNetworks(): INFO: No networks found");
48        Serial.println("disconnect: scanNetworks(): COUNT: 0");
49    } else {
50        Serial.println("disconnect: scanNetworks(): INFO: WiFi Networks Found");
51        Serial.print("COUNT: ");
52        Serial.println(n);
53
54        for (int i = 0; i < n; ++i) {
55            Serial.print("SSID: ");
56            Serial.println(WiFi.SSID(i));
57            Serial.print("RSSI: ");
58            Serial.println(WiFi.RSSI(i));
59        }
60    }
61
62    delay(5000); // Wait a bit before scanning again
63    Serial.println("disconnect: scanNetworks(): CALL: Scan End");
64}
65