From eb77a811886dbef80616cb3acdf98f5fb98336cb Mon Sep 17 00:00:00 2001 From: vlapa Date: Sat, 13 Jun 2026 21:20:11 +0300 Subject: First --- src/main.cpp | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 src/main.cpp (limited to 'src') diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..563f617 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,174 @@ +#include + +#include +#include +#include +#include +#include +const char *host = "esp32"; +const char *ssid = "link"; +const char *password = "dkfgf#*12091997"; +// variabls to blink without delay: +const int led = 2; +WebServer server(80); + +/* + * Login page + */ +const char *loginIndex = + "
" + "" + "" + "" + "
" + "
" + "" + "" + "" + "" + "
" + "
" + "" + "" + "" + "
" + "
" + "" + "" + "" + "" + "
" + "
ESP32 Login Page
" + "
" + "
Username:
Password:
" + "
" + ""; +/* + * Server Index Page + */ +const char *serverIndex = + "" + "
" + "" + "" + "
" + "
progress: 0%
" + ""; +/* + * setup function + */ +void setup(void) +{ + pinMode(led, OUTPUT); + Serial.begin(115200); + // Connect to WiFi network + WiFi.begin(ssid, password); + Serial.println(""); + // Wait for connection + 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()); + + + /*use mdns for host name resolution*/ + if (!MDNS.begin(host)) + { // http://esp32.local + Serial.println("Error setting up MDNS responder!"); + while (1) + { + delay(1000); + } + } + Serial.println("mDNS responder started"); + /*return index page which is stored in serverIndex */ + server.on("/", HTTP_GET, []() + { + server.sendHeader("Connection", "close"); + server.send(200, "text/html", loginIndex); }); + server.on("/serverIndex", HTTP_GET, []() + { + server.sendHeader("Connection", "close"); + server.send(200, "text/html", serverIndex); }); + /*handling uploading firmware file */ + 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) { + /* flashing firmware to ESP*/ + 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); + digitalWrite(led, HIGH); + delay(600); + digitalWrite(led, LOW); + delay(600); +} \ No newline at end of file -- cgit v1.2.3