From 349cfed8644e5a10669b814de60c926520a0fc26 Mon Sep 17 00:00:00 2001 From: Marcel Peterkau Date: Sun, 13 Jun 2021 23:15:53 +0200 Subject: [PATCH] Added Wifi Client Mode --- platformio.ini | 8 ++++++-- src/defaults.h | 8 ++++++++ src/main.cpp | 24 +++++++++++++++++++++++- 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/platformio.ini b/platformio.ini index 6f75ae0..b85c9b4 100644 --- a/platformio.ini +++ b/platformio.ini @@ -16,8 +16,12 @@ board_build.f_flash = 80000000L board_build.ldscript = eagle.flash.4m1m.ld build_flags= - -D WIFI_SSID='"Dark Emergency CTF Timer"' - -D WIFI_PASS='"CaptureTheFlag"' + -D WIFI_CLIENT + -D WIFI_SSID='"BND_Scanner_#42"' + -D WIFI_PASS='"5xMYkerbLMdrsSdF3hpy5DM9"' + ;-D WIFI_AP + ;-D WIFI_SSID='"Dark Emergency CTF Timer"' + ;-D WIFI_PASS='"CaptureTheFlag"' -D FACTION_1_NAME='"GOF"' -D FACTION_2_NAME='"MILIZ"' -D FACTION_3_NAME='"KGG"' diff --git a/src/defaults.h b/src/defaults.h index 550f1ac..a2d5262 100644 --- a/src/defaults.h +++ b/src/defaults.h @@ -1,6 +1,14 @@ #ifndef _DEFAULTS_H_ #define _DEFAULTS_H_ +#ifndef WIFI_CLIENT +#define WIFI_AP +#endif + +#if defined(WIFI_CLIENT) && defined(WIFI_AP) +#error "You can't define AP and CLIENT at the same Time!" +#endif + #ifndef WIFI_SSID #define WIFI_SSID "3 Factions CTF Timer" #endif diff --git a/src/main.cpp b/src/main.cpp index 2245904..805ec42 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,9 +7,11 @@ #ifdef ESP32 #include #include +#include #elif defined(ESP8266) #include #include +#include #endif #include #include @@ -51,6 +53,10 @@ Adafruit_INA219 ina219; WiFiEventHandler stationConnectedHandler; WiFiEventHandler stationDisconnectedHandler; +#ifdef WIFI_CLIENT +ESP8266WiFiMulti wifiMulti; +#endif + #ifdef CAPTIVE DNSServer dnsServer; #endif @@ -355,16 +361,32 @@ void setup() LittleFS.begin(); WiFi.persistent(false); + +#ifdef WIFI_AP WiFi.mode(WIFI_AP); WiFi.softAP(WIFI_SSID, WIFI_PASS); stationConnectedHandler = WiFi.onSoftAPModeStationConnected(&onStationConnected); stationDisconnectedHandler = WiFi.onSoftAPModeStationDisconnected(&onStationDisconnected); +#else + WiFi.mode(WIFI_STA); + wifiMulti.addAP(WIFI_SSID, WIFI_PASS); + + Serial.println("Connecting Wifi..."); + if (wifiMulti.run() == WL_CONNECTED) + { + Serial.println(""); + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.print(WiFi.localIP()); + } +#endif #ifdef CAPTIVE dnsServer.start(53, "*", WiFi.softAPIP()); #endif - server.addHandler(new CaptiveRequestHandler()).setFilter(ON_AP_FILTER); //only when requested from AP + + server.addHandler(new CaptiveRequestHandler()); server.begin(); FactionTicker.start();