From f33a9f098eed7bcd4e7bd918253c772de8f5b471 Mon Sep 17 00:00:00 2001 From: klaute Date: Sun, 24 Jun 2018 12:00:51 +0200 Subject: [PATCH] Working implementation of the OTA (webbased). --- doc/arduinoIDE_settings.png | Bin 0 -> 13200 bytes firmware/config.h | 15 ++++++++----- firmware/firmware.ino | 43 ++++++++++++++++++++++++++++-------- firmware/webUpdater.ino | 2 ++ firmware/webserver.ino | 27 ---------------------- 5 files changed, 45 insertions(+), 42 deletions(-) create mode 100644 doc/arduinoIDE_settings.png delete mode 100644 firmware/webserver.ino diff --git a/doc/arduinoIDE_settings.png b/doc/arduinoIDE_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..92c319d04921ea13fb6a306647931a7fc79aae1f GIT binary patch literal 13200 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 literal 0 HcmV?d00001 diff --git a/firmware/config.h b/firmware/config.h index 57f67ca..3c2ae5f 100755 --- a/firmware/config.h +++ b/firmware/config.h @@ -16,15 +16,18 @@ #define BME_MOSI 11 #define BME_CS 10 +#define INITIAL_WEBSERVER_TIME 20 + #define SEALEVELPRESSURE_HPA (1013.25) #define BME280_ADDRESS 0x76 -const char *INFLUXDB_HOST = "influxdb.okoyono.de"; -const uint16_t INFLUXDB_PORT = 80; -const char *INFLUXDB_DB = "weatherstation"; -const char *INFLUXDB_USER = "oko"; -const char *INFLUXDB_PASS = "de1873a0d2f8f21f17cf4d8db4f65c59"; +const char *INFLUXDB_HOST = "influxdb.okoyono.de"; +const uint16_t INFLUXDB_PORT = 80; +const char *INFLUXDB_DB = "weatherstation"; +const char *INFLUXDB_USER = "oko"; +const char *INFLUXDB_PASS = "de1873a0d2f8f21f17cf4d8db4f65c59"; -String DEVICE_NAME = "klaute"; +String DEVICE_NAME = "klaute"; + diff --git a/firmware/firmware.ino b/firmware/firmware.ino index aa8db14..71ebd5a 100755 --- a/firmware/firmware.ino +++ b/firmware/firmware.ino @@ -13,6 +13,8 @@ #include "config.h" +//*************************************************************************// + /** * Whishlist: * - Webserver for /metrics endpoint (Prometheus) @@ -29,6 +31,8 @@ * - https://github.com/marvinroger/homie-esp8266 */ +//*************************************************************************// + float currentSensorData[5] = {0.0, 0.0, 0.0, 0.0, 0.0}; WiFiManager wifiManager; @@ -37,16 +41,21 @@ Adafruit_APDS9960 apds; Adafruit_BME280 bme; boolean webUpdaterEnabled = false; +uint16_t webserver_timeout = 0; + +//*************************************************************************// void setup() { + //WiFi.disconnect(); // erase the wifi credentials + #ifdef DEBUG Serial.begin(115200); #endif // Pin settings pinMode(STATUS_LED_PIN, OUTPUT); - //pinMode(ANEMOMETER_PIN, INPUT_PULLUP); + pinMode(ANEMOMETER_PIN, INPUT_PULLUP); // Establish WiFi connection String wifiName = "oko-weather-" + String(ESP.getChipId()); @@ -79,20 +88,32 @@ void setup() { delay(100); } +//*************************************************************************// + void loop() { - if (webUpdaterEnabled == true) - { + //if (INITIAL_WEBSERVER_TIME * 1000 > webserver_timeout) { + + if (webserver_timeout == 0) { + setupWebUpdater(); + } doWebUpdater(); - return; - } - doWebserver(); +#ifdef DEBUG + //Serial.print("."); +#endif + webserver_timeout++; + //delay(1); + + //return; + //} + + /**/ digitalWrite(STATUS_LED_PIN, LOW); #ifdef DEBUG - Serial.println("---"); + //Serial.println("---"); digitalWrite(STATUS_LED_PIN, HIGH); #endif currentSensorData[SENSOR_TEMPERATURE] = fetchTemperature(); @@ -103,7 +124,7 @@ void loop() { #ifdef DEBUG Serial.println(""); - Serial.println("Current readings:"); + //Serial.println("Current readings:"); Serial.println("Temperature: " + String(currentSensorData[SENSOR_TEMPERATURE]) + " °C"); Serial.println("Humidity: " + String(currentSensorData[SENSOR_HUMIDITY]) + " %"); Serial.println("Light: " + String(currentSensorData[SENSOR_LIGHT]) + " Lumen"); @@ -114,4 +135,8 @@ void loop() { pushToInfluxDB(DEVICE_NAME, currentSensorData); delay(UPDATE_INTERVAL * 1000); -} + /**/ +} + +//*************************************************************************// + diff --git a/firmware/webUpdater.ino b/firmware/webUpdater.ino index 9d02762..d4d8561 100644 --- a/firmware/webUpdater.ino +++ b/firmware/webUpdater.ino @@ -1,5 +1,7 @@ /* To upload through terminal you can use: curl -F "image=@firmware.bin" esp8266-webupdate.local/update + + Windows: C:\Users\\AppData\Local\Temp\arduino_build_ */ #include diff --git a/firmware/webserver.ino b/firmware/webserver.ino deleted file mode 100644 index 98aaab2..0000000 --- a/firmware/webserver.ino +++ /dev/null @@ -1,27 +0,0 @@ - -//*************************************************************************// - -WiFiServer server(80); - -void doWebserver(void) -{ - WiFiClient client = server.available(); - if (client) - { - String request = client.readStringUntil('\r'); - - if (request.indexOf("/WU") != -1) - { - setupWebUpdater(); - webUpdaterEnabled = true; // enable the web update mechanism - - } else if (request.indexOf("/RW") != -1) - { - WiFi.disconnect(); // erase the wifi credentials - while(1); // trigger the watchdog - } - - } -} - -