// Pracujemy nad możliwością wykorzystania WiFiManager nie tylko do zapisywania parametrów połączenia WiFi,
// ale także do wykorzystania możliwości narzędzia w zakresie niestandardowych parametrów do przechowywania
// odpowiednich parametrów MQTT. Cechą szczególną tego konkretnego projektu jest to, że staramy się,
// aby działał nie tylko z prawdziwym ESP32, ale także w środowisku Wokwi. W Wokwi nie możemy uzyskać dostępu
// do interfejsu webowego serwera WebManager, dlatego pracujemy nad sposobem ustawiania i pobierania wartości domyślnych z WiFiManager.
// Ten konkretny szkic jest pierwszym, który uruchamia WiFiManager w Wokwi.
// Jest też kilka linijek kodu dla WiFiManagerParameter.
#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager
WiFiManager wm;
void setup() {
WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP | jawnie ustaw tryb, domyślnie STA+AP
// put your setup code here, to run once | wpisz tutaj swój kod konfiguracyjny, aby uruchomić go raz:
Serial.begin(115200);
//wifiConnect();
WiFiManagerParameter custom_mqtt_server("server", "mqtt server", "mqtt_server", 40);
wm.addParameter(&custom_mqtt_server);
//wm.autoConnect("Wokwi-GUEST","");
wm.preloadWiFi("Wokwi-GUEST", "");
wm.setConfigPortalTimeout(12);
// This is where I'm attempting to set the SSID password for development purposes.
// Tutaj próbuję ustawić hasło SSID w celach programistycznych.
//wm.setWiFiSSID("Wokwi-GUEST");
//wm.setWiFiPass("MyPassword");
//Serial.print("wm.getWiFiSSID(): ");
Serial.println("SSID: " + wm.getWiFiSSID());
Serial.println("Password: " + wm.getWiFiPass());
// reset settings - wipe credentials for | zresetuj ustawienia - wyczyść dane uwierzytelniające dla testów
//wm.resetSettings();
wm.setConfigPortalBlocking(false);
wm.setConfigPortalTimeout(60);
// automatically connect using saved credentials if they exist
// automatyczne łączenie przy użyciu zapisanych danych uwierzytelniających, jeśli takie istnieją
// If connection fails it starts an access point with the specified name
// Jeśli połączenie się nie powiedzie, uruchamiany jest punkt dostępu o określonej nazwie
if (wm.autoConnect("AutoConnectAP")) {
Serial.println("connected...yeey :)");
} else {
Serial.println("Configportal running");
}
//char mqtt_serverVal[40];
//mqtt_serverVal = custom_mqtt_server.getValue();
Serial.print("custom_mqtt_server: ");
Serial.println(custom_mqtt_server.getValue());
}
void loop() {
wm.process();
// put your main code here, to run repeatedly:
// wpisz tutaj swój główny kod, aby był uruchamiany wielokrotnie
}
void wifiConnect() {
WiFi.mode(WIFI_STA);
WiFi.begin("Wokwi-GUEST", "");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
}