Create nodemcuwifi.h and include it in main source code, also add these defined entry before the "include" in the main source code: #define WIFI_SSID "ssid" #define WIFI_PASSWORD "password" #include "nodemcuwifi.h" #include #include bool nodemcuwificonnected = false; unsigned long startAttemptTime; WiFiEventHandler wifiConnectHandler; WiFiEventHandler wifiDisconnectHandler; Ticker wifiReconnectTimer; void onWifiConnect(const WiFiEventStationModeGotIP& event); void onWifiDisconnect(const WiFiEventStationModeDisconnected& event); void initializenodemcuwifi() { wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect); wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect); WiFi.disconnect(); Serial.println("Connecting to Wi-Fi..."); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); startAttemptTime = millis(); nodemcuwificonnected = false; while (WiFi.status() != WL_CONNECTED && millis() - startAttemptTime < 10000) delay(500); // Small delay to avoid spamming } void onWifiConnect(const WiFiEventStationModeGotIP& event) { Serial.println("Connected to Wi-Fi."); Serial.println(""); Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); nodemcuwificonnected = true; } void onWifiDisconnect(const WiFiEventStationModeDisconnected& event) { Serial.println("Disconnected from Wi-Fi."); wifiReconnectTimer.once(2, initializenodemcuwifi); Serial.println(""); Serial.println("NO WIFI"); nodemcuwificonnected = false; }