commit a67d3b66ff8aff887910b20b7c7222a19743ecbe Author: RonMeier <48986706+RonMeier@users.noreply.github.com> Date: Wed Apr 12 17:53:43 2023 +0200 Add files via upload diff --git a/OTAWebUpdater.ino b/OTAWebUpdater.ino new file mode 100644 index 0000000..fb2823f --- /dev/null +++ b/OTAWebUpdater.ino @@ -0,0 +1,97 @@ +#include +#include +#include +#include + +const char* ssid = "NetzName"; +const char* password = "pwd"; + +WebServer server(80); + +const char* serverIndex = +"" +"
" + "" + "" + "
" + "
progress: 0%
" + ""; + +void setup(void) { + Serial.begin(115200); + + WiFi.begin(ssid, password); + Serial.println(""); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + Serial.print("Connected to "); + Serial.println(ssid); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + + server.on("/", HTTP_GET, []() { + server.sendHeader("Connection", "close"); + server.send(200, "text/html", serverIndex); + }); + server.on("/update", HTTP_POST, []() { + server.sendHeader("Connection", "close"); + server.send(200, "text/plain", (Update.hasError()) ? "FAIL" : "OK"); + ESP.restart(); + }, []() { + HTTPUpload& upload = server.upload(); + if (upload.status == UPLOAD_FILE_START) { + Serial.printf("Update: %s\n", upload.filename.c_str()); + if (!Update.begin(UPDATE_SIZE_UNKNOWN)) { //start with max available size + Update.printError(Serial); + } + } else if (upload.status == UPLOAD_FILE_WRITE) { + if (Update.write(upload.buf, upload.currentSize) != upload.currentSize) { + Update.printError(Serial); + } + } else if (upload.status == UPLOAD_FILE_END) { + if (Update.end(true)) { //true to set the size to the current progress + Serial.printf("Update Success: %u\nRebooting...\n", upload.totalSize); + } else { + Update.printError(Serial); + } + } + }); + server.begin(); +} + +void loop(void) { + server.handleClient(); + delay(1); +}