do wifi connection in loop

This commit is contained in:
Marcel Walter 2026-01-15 00:08:39 +01:00
parent 557f61f48e
commit 7c316e54cc

View File

@ -98,19 +98,8 @@ void setup()
flip.sendRaw(rawBuff, sizeof(rawBuff));
/* attempt to connect to Wifi network */
Serial.print("Connecting to Wifi SSID ");
Serial.print(WIFI_SSID);
WiFi.setHostname(HOSTNAME);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED)
{
Serial.print("!");
Serial.print(WiFi.status());
Serial.print(".");
delay(500);
}
Serial.print("\nWiFi connected. IP address: ");
Serial.println(WiFi.localIP());
/* get internet time */
Serial.print("Retrieving time: ");
@ -127,32 +116,70 @@ void setup()
/* setup ArduinoOTA */
ArduinoOTA.setHostname(HOSTNAME);
ArduinoOTA.begin();
ArduinoOTA.onStart(onOTAStart);
/* initialize and connect telegram bot */
tele.init();
/* initialy print closed at the display */
printClose("");
}
void loop()
{
static wl_status_t oldWifiStatus = WL_DISCONNECTED;
unsigned long now = millis();
static unsigned long lastDisplayRefresh = now;
static unsigned long lastTelegramRefresh = now;
/* OTA handling */
ArduinoOTA.handle();
yield();
/* Telegram handling */
if ((now - lastTelegramRefresh) > 5000)
if (WiFi.status() == WL_CONNECTED)
{
lastTelegramRefresh = now;
tele.cyclic(now);
// if the Wifi is connected do all the internet stuff
if (WiFi.status() != oldWifiStatus)
{
/* we freshly reconnected so tell everybody that we are online */
Serial.print("\nWiFi connected. IP address: ");
Serial.println(WiFi.localIP());
Serial.print("Retrieving time: ");
configTime(0, 0, "pool.ntp.org"); // get UTC time via NTP
configTzTime("CET-1CEST,M3.5.0,M10.5.0/3", "pool.ntp.org");
time_t now = time(nullptr);
while (now < 24 * 3600)
{
Serial.print(".");
delay(100);
now = time(nullptr);
}
Serial.println(now);
ArduinoOTA.begin();
tele.init();
printClose("");
oldWifiStatus = WiFi.status();
}
/* handle the OTA update */
ArduinoOTA.handle();
/* handle Telegram messages */
if ((now - lastTelegramRefresh) > 5000)
{
lastTelegramRefresh = now;
tele.cyclic(now);
}
}
else
{
// if wifi is not connected wait for connection
if (WiFi.status() != oldWifiStatus)
{
/* we freshly disconnected so tell everybody that we are offline */
Text = "Wifi \"";
Text += WIFI_SSID;
Text += "\" not connected";
ArduinoOTA.end();
oldWifiStatus = WiFi.status();
}
}
/* FlipDot Handling */
@ -203,6 +230,12 @@ void loop()
// send canvas to display
flip.sendCanvas(&canvas);
}
/* wait here if loop execution was faster then 200ms but yield minimum once */
do
{
yield();
} while ((millis() - now) < 200);
}
/* function to write text onto the canvas