diff --git a/firmware/config.h b/firmware/config.h index 1ecdf35..fa7e5ec 100644 --- a/firmware/config.h +++ b/firmware/config.h @@ -10,7 +10,7 @@ #define DELAY_LOOP_MS 50 #define POWERSAVING_SLEEP_S 600 #define EMERGENCY_SLEEP_S 172800 // Sleep for 2 days to recover -#define RESET_ESP_TIME_INTERVAL_MS (60*60*3*1000) // (60*60*6*1000) // reset every 3 hours +#define RESET_ESP_TIME_INTERVAL_MS (60*60*12*1000) // reset every 12 hours #define WIND_SENSOR_MEAS_TIME_S 15 #define INITIAL_WEBSERVER_TIME 20 diff --git a/firmware/firmware.ino b/firmware/firmware.ino index fbc636a..a7730ef 100644 --- a/firmware/firmware.ino +++ b/firmware/firmware.ino @@ -7,13 +7,16 @@ #include #include // WiFiClient -#include // WiFiManager from bib manager // Project includes #include "constants.h" #include "config.h" #include "config_user.h" +#ifdef USE_WIFIMANAGER +#include // WiFiManager from bib manager +#endif + //*************************************************************************// // check if some settings are correct @@ -36,7 +39,9 @@ uint16_t update_windspeed_exceed_cnt = 0; boolean validData = false; +#ifdef USE_WIFIMANAGER WiFiManager wifiManager; +#endif //*************************************************************************// @@ -141,7 +146,7 @@ void setup() #ifdef ENABLE_WATCHDOG // Enable the internal watchdog - ESP.wdtEnable(WATCHDOG_TIMEOUT_MS); + ESP.wdtEnable(WDTO_4S); #endif } @@ -150,6 +155,9 @@ void setup() void wifiConnectionCheck() { + +#ifdef USE_WIFIMANAGER + // Establish WiFi connection String wifiName = "oko-weather-" + DEVICE_NAME; @@ -161,6 +169,7 @@ void wifiConnectionCheck() while (!wifiManager.autoConnect(wifiName.c_str(), "DEADBEEF")) { + debug("WiFi connection failed, try again in 5 seconds..."); // If autoconnect to WLAN failed and no client connected, go to deep sleep #ifdef SLEEP_IF_NO_WLAN_CONNECTION @@ -173,6 +182,33 @@ void wifiConnectionCheck() #endif } +#else // else of USE_WIFIMANAGER + + if (WiFi.status() == WL_CONNECTED) + { + return; + } + + if (!WiFi.config(local_IP, gateway, subnet)) + { + Serial.println("Failed to set IP configuration"); + } else { + Serial.println("Successful set IP configuration"); + } + + WiFi.begin(ssid, password); + + Serial.println("Connecting to WLAN"); + + while (WiFi.status() != WL_CONNECTED) + { + delay(100); + } + + Serial.println("WLAN connection OK"); + +#endif + } //*************************************************************************// diff --git a/firmware/webUpdater.ino b/firmware/webUpdater.ino index 25af4b7..4514cdd 100644 --- a/firmware/webUpdater.ino +++ b/firmware/webUpdater.ino @@ -11,11 +11,14 @@ #include #include -#include // WiFiManager from bib manager #include "config.h" #include "config_user.h" +#ifdef USE_WIFIMANAGER +#include // WiFiManager from bib manager +#endif + ESP8266WebServer httpServer(WEB_UPDATER_HTTP_PORT); ESP8266HTTPUpdateServer httpUpdater; @@ -44,7 +47,9 @@ void setupWebUpdater(String device, String ip) httpUpdater.setup(&httpServer); httpServer.on("/", showHTMLMain); +#ifdef USE_WIFIMANAGER httpServer.on("/resetWifiManager", resetWifiManager); +#endif #ifdef HOMEBRIDGE_WEBSTAT httpServer.on("/hbWebstat", hb_webstat_send); #endif @@ -70,7 +75,7 @@ void setSensorData(float sensorValues[]) { if (sensorValues[i] != 0) { - wuValidData = true; // at least one value is not zero, the data + wuValidData = true; // at least one value is not zero, the data is valid } } @@ -129,6 +134,7 @@ void hb_webstat_send(void) httpServer.send(200, "text/html", msg); } +#ifdef USE_WIFIMANAGER void resetWifiManager() { @@ -150,6 +156,7 @@ void resetWifiManager() // manual reset after restart is required ESP.restart(); } +#endif void measureWindspeed() {