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;
}