Created
May 22, 2025 12:29
-
-
Save 0x48piraj/092c7648f1cd37177d2ff306dd9a0e9d to your computer and use it in GitHub Desktop.
Artefact from 14 January 2024, 21:04:05.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <WiFi.h> | |
| const char* ssid = "ssid"; | |
| const char* password = "password"; | |
| int btnGPIO = 0; | |
| int btnState = false; | |
| void setup() | |
| { | |
| Serial.begin(115200); | |
| delay(10); | |
| // Set GPIO0 Boot button as input | |
| pinMode(btnGPIO, INPUT); | |
| // We start by connecting to a WiFi network | |
| // To debug, please enable Core Debug Level to Verbose | |
| Serial.println(); | |
| Serial.print("[WiFi] Connecting to "); | |
| Serial.println(ssid); | |
| WiFi.begin(ssid, password); | |
| // Auto reconnect is set true as default | |
| // To set auto connect off, use the following function | |
| // WiFi.setAutoReconnect(false); | |
| // Will try for about 10 seconds (20x 500ms) | |
| int tryDelay = 500; | |
| int numberOfTries = 20; | |
| // Wait for the WiFi event | |
| while (true) { | |
| switch(WiFi.status()) { | |
| case WL_NO_SSID_AVAIL: | |
| Serial.println("[WiFi] SSID not found"); | |
| break; | |
| case WL_CONNECT_FAILED: | |
| Serial.print("[WiFi] Failed - WiFi not connected! Reason: "); | |
| return; | |
| break; | |
| case WL_CONNECTION_LOST: | |
| Serial.println("[WiFi] Connection was lost"); | |
| break; | |
| case WL_SCAN_COMPLETED: | |
| Serial.println("[WiFi] Scan is completed"); | |
| break; | |
| case WL_DISCONNECTED: | |
| Serial.println("[WiFi] WiFi is disconnected"); | |
| break; | |
| case WL_CONNECTED: | |
| Serial.println("[WiFi] WiFi is connected!"); | |
| Serial.print("[WiFi] IP address: "); | |
| Serial.println(WiFi.localIP()); | |
| return; | |
| break; | |
| default: | |
| Serial.print("[WiFi] WiFi Status: "); | |
| Serial.println(WiFi.status()); | |
| break; | |
| } | |
| delay(tryDelay); | |
| if(numberOfTries <= 0){ | |
| Serial.print("[WiFi] Failed to connect to WiFi!"); | |
| // Use disconnect function to force stop trying to connect | |
| WiFi.disconnect(); | |
| return; | |
| } else { | |
| numberOfTries--; | |
| } | |
| } | |
| } | |
| void loop() | |
| { | |
| // Read the button state | |
| btnState = digitalRead(btnGPIO); | |
| if (btnState == LOW) { | |
| // Disconnect from WiFi | |
| Serial.println("[WiFi] Disconnecting from WiFi!"); | |
| // This function will disconnect and turn off the WiFi (NVS WiFi data is kept) | |
| if(WiFi.disconnect(true, false)){ | |
| Serial.println("[WiFi] Disconnected from WiFi!"); | |
| } | |
| delay(1000); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment