Added ESP32thing, WIFI depending if STA is privided, check licence for WIfi open

This commit is contained in:
Carsten Graf
2025-06-10 16:38:11 +02:00
parent 7856bb229b
commit 22cc4fe99c
6 changed files with 55 additions and 21 deletions

View File

@@ -184,19 +184,12 @@ void saveWifiSettings() {
preferences.putString("ssid", ssidSTA);
preferences.putString("password", passwordSTA);
preferences.end();
Serial.printf("WLAN-Einstellungen gespeichert: SSID=%s, Passwort=%s\n", ssidSTA, passwordSTA);
}
void loadWifiSettings() {
preferences.begin("wifi", true);
// Speicher freigeben, falls bereits zugewiesen
if (ssidSTA) {
free(ssidSTA);
}
if (passwordSTA) {
free(passwordSTA);
}
// Neue Werte laden und dynamisch zuweisen
String ssid = preferences.getString("ssid", "");
String password = preferences.getString("password", "");
@@ -282,6 +275,7 @@ void setup() {
loadButtonConfig();
loadBestTimes();
loadSettings();
loadWifiSettings();
setupWifi(); // WiFi initialisieren
setupOTA(&server);

View File

@@ -5,6 +5,11 @@
#include <time.h>
#include <sys/time.h>
const char* ssidAP;
const char* passwordAP = nullptr;
char* ssidSTA = nullptr;
char* passwordSTA = nullptr;
// Timer Struktur
struct TimerData {
@@ -61,6 +66,8 @@ void saveBestTimes();
void loadBestTimes();
void saveSettings();
void loadSettings();
void loadWifiSettings();
void saveWifiSettings();
void unlearnButton();
int checkLicence();
String getTimerDataJSON();

View File

@@ -1,7 +1,7 @@
#include <Arduino.h>
#define LED_PIN LED_BUILTIN
#define LED_PIN 13
// Status LED

View File

@@ -191,6 +191,8 @@ void setupRoutes(){
ssidSTA = strdup(ssid.c_str());
passwordSTA = strdup(password.c_str());
saveWifiSettings();
// Rückmeldung
DynamicJsonDocument doc(64);
doc["success"] = true;

View File

@@ -10,11 +10,6 @@
#include "licenceing.h"
String uniqueSSID;
const char* ssidAP;
const char* passwordAP = nullptr;
char* ssidSTA = strdup("Obiwlankenobi");
char* passwordSTA = strdup("Delfine1!");
PrettyOTA OTAUpdates;
@@ -24,15 +19,32 @@ void setupWifi() {
uniqueSSID = getUniqueSSID();
ssidAP = uniqueSSID.c_str();
//print station SSID
Serial.println("Access Point SSID: " + String(ssidSTA));
Serial.println("Access Point PW: " + String(passwordSTA));
WiFi.mode(WIFI_MODE_APSTA);
WiFi.softAP(ssidAP, passwordAP);
WiFi.begin(ssidSTA, passwordSTA);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if ((ssidSTA == nullptr) || (passwordSTA == nullptr)) {
Serial.println("Fehler: ssidSTA oder passwordSTA ist null!");
WiFi.mode(WIFI_MODE_AP);
WiFi.softAP(ssidAP, passwordAP);
}
else
{
WiFi.mode(WIFI_MODE_APSTA);
WiFi.begin(ssidSTA, passwordSTA);
WiFi.softAP(ssidAP, passwordAP);
while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
}
//Only wait for connection if ssidSTA and passwordSTA are set
Serial.println("");
Serial.println("Verbunden mit WLAN!");
Serial.print("IP-Adresse: ");