feat: verbessere WLAN-Konfiguration und füge mDNS-Unterstützung hinzu
This commit is contained in:
parent
76100593cc
commit
944b156528
90
src/wlan.cpp
90
src/wlan.cpp
@ -3,6 +3,8 @@
|
||||
#include <WiFi.h>
|
||||
#include <esp_wifi.h>
|
||||
#include <WiFiManager.h>
|
||||
#include <DNSServer.h>
|
||||
#include <ESPmDNS.h>
|
||||
#include "display.h"
|
||||
#include "config.h"
|
||||
|
||||
@ -10,33 +12,60 @@ WiFiManager wm;
|
||||
bool wm_nonblocking = false;
|
||||
uint8_t wifiErrorCounter = 0;
|
||||
|
||||
void initWiFi() {
|
||||
// Optimierte WiFi-Einstellungen
|
||||
WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP
|
||||
WiFi.setSleep(false); // disable sleep mode
|
||||
esp_wifi_set_ps(WIFI_PS_NONE);
|
||||
void wifiSettings() {
|
||||
// Optimierte WiFi-Einstellungen
|
||||
WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP
|
||||
WiFi.setSleep(false); // disable sleep mode
|
||||
WiFi.setHostname("FilaMan");
|
||||
esp_wifi_set_ps(WIFI_PS_NONE);
|
||||
|
||||
// Maximale Sendeleistung
|
||||
WiFi.setTxPower(WIFI_POWER_19_5dBm); // Set maximum transmit power
|
||||
|
||||
// Maximale Sendeleistung
|
||||
WiFi.setTxPower(WIFI_POWER_19_5dBm); // Set maximum transmit power
|
||||
// Optimiere TCP/IP Stack
|
||||
esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_11B | WIFI_PROTOCOL_11G | WIFI_PROTOCOL_11N);
|
||||
|
||||
// Aktiviere WiFi-Roaming für bessere Stabilität
|
||||
esp_wifi_set_rssi_threshold(-80);
|
||||
}
|
||||
|
||||
// Optimiere TCP/IP Stack
|
||||
esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_11B | WIFI_PROTOCOL_11G | WIFI_PROTOCOL_11N);
|
||||
|
||||
// Aktiviere WiFi-Roaming für bessere Stabilität
|
||||
esp_wifi_set_rssi_threshold(-80);
|
||||
void startMDNS() {
|
||||
if (!MDNS.begin("filaman")) {
|
||||
Serial.println("Error setting up MDNS responder!");
|
||||
while(1) {
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
}
|
||||
}
|
||||
Serial.println("mDNS responder started");
|
||||
}
|
||||
|
||||
void configModeCallback (WiFiManager *myWiFiManager) {
|
||||
Serial.println("Entered config mode");
|
||||
oledShowTopRow();
|
||||
oledShowMessage("WiFi Config Mode");
|
||||
}
|
||||
|
||||
void initWiFi() {
|
||||
// load Wifi settings
|
||||
wifiSettings();
|
||||
|
||||
wm.setAPCallback(configModeCallback);
|
||||
|
||||
wm.setSaveConfigCallback([]() {
|
||||
Serial.println("Configurations updated");
|
||||
ESP.restart();
|
||||
});
|
||||
|
||||
if(wm_nonblocking) wm.setConfigPortalBlocking(false);
|
||||
wm.setConfigPortalTimeout(320); // Portal nach 5min schließen
|
||||
//wm.setConfigPortalTimeout(320); // Portal nach 5min schließen
|
||||
wm.setWiFiAutoReconnect(true);
|
||||
wm.setConnectTimeout(5);
|
||||
|
||||
oledShowTopRow();
|
||||
oledShowMessage("WiFi Setup");
|
||||
|
||||
bool res;
|
||||
// res = wm.autoConnect(); // auto generated AP name from chipid
|
||||
res = wm.autoConnect("FilaMan"); // anonymous ap
|
||||
// res = wm.autoConnect("spoolman","password"); // password protected ap
|
||||
|
||||
if(!res) {
|
||||
//bool res = wm.autoConnect("FilaMan"); // anonymous ap
|
||||
if(!wm.autoConnect("FilaMan")) {
|
||||
Serial.println("Failed to connect or hit timeout");
|
||||
// ESP.restart();
|
||||
oledShowTopRow();
|
||||
@ -52,6 +81,11 @@ void initWiFi() {
|
||||
|
||||
oledShowTopRow();
|
||||
display.display();
|
||||
|
||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||
|
||||
// mDNS
|
||||
startMDNS();
|
||||
}
|
||||
}
|
||||
|
||||
@ -59,21 +93,31 @@ void checkWiFiConnection() {
|
||||
if (WiFi.status() != WL_CONNECTED)
|
||||
{
|
||||
Serial.println("WiFi connection lost. Reconnecting...");
|
||||
wifiOn = false;
|
||||
oledShowTopRow();
|
||||
oledShowMessage("WiFi reconnecting...");
|
||||
oledShowMessage("WiFi reconnecting");
|
||||
WiFi.reconnect(); // Versuche, die Verbindung wiederherzustellen
|
||||
delay(5000); // Warte 5 Sekunden, bevor erneut geprüft wird
|
||||
vTaskDelay(5000 / portTICK_PERIOD_MS); // Warte 5 Sekunden, bevor erneut geprüft wird
|
||||
if (WiFi.status() != WL_CONNECTED)
|
||||
{
|
||||
Serial.println("Failed to reconnect. Restarting WiFi...");
|
||||
WiFi.disconnect();
|
||||
delay(1000);
|
||||
Serial.println("WiFi disconnected.");
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
wifiErrorCounter++;
|
||||
//initWiFi();
|
||||
|
||||
//wifiSettings();
|
||||
WiFi.reconnect();
|
||||
Serial.println("WiFi reconnecting...");
|
||||
WiFi.waitForConnectResult();
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.println("WiFi reconnected.");
|
||||
wifiErrorCounter = 0;
|
||||
wifiOn = true;
|
||||
oledShowTopRow();
|
||||
startMDNS();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user