reworked WiFi-Stuff

This commit is contained in:
Marcel Peterkau 2023-04-12 22:43:25 +02:00
parent ae29e23812
commit 6b89ed9a8c
4 changed files with 36 additions and 20 deletions

View File

@ -26,13 +26,14 @@ upload_speed = 921600
build_flags= build_flags=
!python git_rev_macro.py !python git_rev_macro.py
;-DSERIAL_DEBUG -DATOMIC_FS_UPDATE
;-DWIFI_CLIENT ;-DFEATURE_ENABLE_WIFI_CLIENT
;-DCAPTIVE ;-DCAPTIVE
-DWIFI_AP_IP_GW=10,0,1,1 -DWIFI_AP_IP_GW=10,0,1,1
-DADMIN_PASSWORD=${wifi_cred.admin_password} -DADMIN_PASSWORD=${wifi_cred.admin_password}
-DWIFI_SSID=${wifi_cred.wifi_ssid} -DWIFI_SSID=${wifi_cred.wifi_ssid}
-DWIFI_PASSWORD=${wifi_cred.wifi_password} -DWIFI_PASSWORD=${wifi_cred.wifi_password}
-DWIFI_AP_SSID=${wifi_cred.wifi_ap_ssid}
-DWIFI_AP_PASSWORD=${wifi_cred.wifi_ap_password} -DWIFI_AP_PASSWORD=${wifi_cred.wifi_ap_password}
-DDEVICE_NAME='"Dark Emergency Timer"' -DDEVICE_NAME='"Dark Emergency Timer"'
-DFACTION_1_NAME='"GOF"' -DFACTION_1_NAME='"GOF"'

View File

@ -52,6 +52,10 @@
#ifndef WIFI_SSID #ifndef WIFI_SSID
#error "You must define an WIFI_SSID for OTA-Update" #error "You must define an WIFI_SSID for OTA-Update"
#endif #endif
#ifndef WIFI_AP_SSID
#warning "No WIFI_AP_SSID defined. Using DeviceName"
#define WIFI_AP_SSID DEVICE_NAME
#endif
#ifndef WIFI_AP_PASSWORD #ifndef WIFI_AP_PASSWORD
#error "You must define an WIFI_AP_PASSWORD for Standalone AP-Mode" #error "You must define an WIFI_AP_PASSWORD for Standalone AP-Mode"
#endif #endif

View File

@ -22,11 +22,14 @@
#ifdef WIFI_CLIENT #ifdef WIFI_CLIENT
#include <WiFiMulti.h> #include <WiFiMulti.h>
const char *ssid = QUOTE(WIFI_SSID); #ifdef FEATURE_ENABLE_WIFI_CLIENT
const char *password = QUOTE(WIFI_PASSWORD); #include <ESP8266WiFiMulti.h>
const char *ssid = QUOTE(WIFI_SSID_CLIENT);
const char *password = QUOTE(WIFI_PASSWORD_CLIENT);
const uint32_t connectTimeoutMs = 5000; const uint32_t connectTimeoutMs = 5000;
WiFiMulti wifiMulti; ESP8266WiFiMulti wifiMulti;
#endif #endif
PCF8574 i2c_io(I2C_IO_ADDRESS); PCF8574 i2c_io(I2C_IO_ADDRESS);
@ -56,7 +59,7 @@ Ticker tmrInputGetter(tmrCallback_InputGetter, 250, 0, MILLIS);
void tmrCallback_EEPROMCyclicPDS(); void tmrCallback_EEPROMCyclicPDS();
Ticker tmrEEPROMCyclicPDS(tmrCallback_EEPROMCyclicPDS, 60000, 0, MILLIS); Ticker tmrEEPROMCyclicPDS(tmrCallback_EEPROMCyclicPDS, 60000, 0, MILLIS);
#ifdef WIFI_CLIENT #ifdef FEATURE_ENABLE_WIFI_CLIENT
void tmrCallback_WiFiMaintainConnection(); void tmrCallback_WiFiMaintainConnection();
Ticker tmrWiFiMaintainConnection(tmrCallback_WiFiMaintainConnection, 1000, 0, MILLIS); Ticker tmrWiFiMaintainConnection(tmrCallback_WiFiMaintainConnection, 1000, 0, MILLIS);
#endif #endif
@ -120,14 +123,12 @@ void setup()
InitLoRa(&setMPins_Helper); InitLoRa(&setMPins_Helper);
tmrStatusSender.start(); tmrStatusSender.start();
#ifdef WIFI_CLIENT #ifdef FEATURE_ENABLE_WIFI_CLIENT
WiFi.mode(WIFI_STA); WiFi.mode(WIFI_STA);
WiFi.setHostname(globals.DeviceName_ID); WiFi.setHostname(globals.DeviceName);
wifiMulti.addAP(QUOTE(WIFI_SSID), QUOTE(WIFI_PASSWORD)); wifiMulti.addAP(QUOTE(WIFI_SSID_CLIENT), QUOTE(WIFI_PASSWORD_CLIENT));
tmrWiFiMaintainConnection.start(); WiFiMaintainConnectionTicker.start();
#else #else
WiFi.mode(WIFI_AP);
WiFi.begin(QUOTE(DEVICE_NAME), QUOTE(WIFI_AP_PASSWORD));
WiFi.mode(WIFI_OFF); WiFi.mode(WIFI_OFF);
#endif #endif
@ -420,29 +421,38 @@ void tmrCallback_WiFiMaintainConnection()
else else
{ {
if (WiFiFailCount < WiFiFailMax) if (WiFiFailCount < WiFiFailMax)
{
WiFiFailCount++; WiFiFailCount++;
}
else else
toggleWiFiAP(false); {
debugV("WiFi not connected! - Start AP");
toggleWiFiAP();
}
} }
} }
#endif #endif
void toggleWiFiAP(boolean shutdown) void toggleWiFiAP(boolean shutdown)
{ {
if (WiFi.getMode() != WIFI_OFF && shutdown == true) if (WiFi.getMode() != WIFI_OFF)
{ {
WiFi.mode(WIFI_OFF); WiFi.mode(WIFI_OFF);
#ifdef WIFI_CLIENT debugV("WiFi turned off");
tmrWiFiMaintainConnection.stop(); #ifdef FEATURE_ENABLE_WIFI_CLIENT
WiFiMaintainConnectionTicker.stop();
#endif #endif
} }
else if (shutdown == false) else
{ {
WiFi.mode(WIFI_AP); WiFi.mode(WIFI_AP);
WiFi.softAPConfig(IPAddress(WIFI_AP_IP_GW), IPAddress(WIFI_AP_IP_GW), IPAddress(255, 255, 255, 0)); WiFi.softAPConfig(IPAddress(WIFI_AP_IP_GW), IPAddress(WIFI_AP_IP_GW), IPAddress(255, 255, 255, 0));
WiFi.softAP(globals.DeviceName_ID, QUOTE(WIFI_AP_PASSWORD)); WiFi.softAP(QUOTE(WIFI_AP_SSID), QUOTE(WIFI_AP_PASSWORD));
#ifdef WIFI_CLIENT #ifdef FEATURE_ENABLE_WIFI_CLIENT
tmrWiFiMaintainConnection.stop(); WiFiMaintainConnectionTicker.stop();
debugV("WiFi AP started, stopped Maintain-Timer");
#else
debugV("WiFi AP started");
#endif #endif
} }
} }

View File

@ -1,4 +1,5 @@
[wifi_cred] [wifi_cred]
wifi_ap_ssid = wifi-ap-ssid
wifi_ap_password = wifiappass wifi_ap_password = wifiappass
wifi_ssid = wifi-ssid wifi_ssid = wifi-ssid
wifi_password = wifi-pass wifi_password = wifi-pass