diff --git a/CrabbyHome-comp/CrabbyHome-conn/.vscode/extensions.json b/CrabbyHome-comp/CrabbyHome-conn/.vscode/extensions.json index 0f0d740..080e70d 100644 --- a/CrabbyHome-comp/CrabbyHome-conn/.vscode/extensions.json +++ b/CrabbyHome-comp/CrabbyHome-conn/.vscode/extensions.json @@ -1,7 +1,10 @@ -{ - // See http://go.microsoft.com/fwlink/?LinkId=827846 - // for the documentation about the extensions.json format - "recommendations": [ - "platformio.platformio-ide" - ] -} +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ], + "unwantedRecommendations": [ + "ms-vscode.cpptools-extension-pack" + ] +} diff --git a/CrabbyHome-comp/CrabbyHome-conn/platformio.ini b/CrabbyHome-comp/CrabbyHome-conn/platformio.ini index bc09900..071a0a3 100644 --- a/CrabbyHome-comp/CrabbyHome-conn/platformio.ini +++ b/CrabbyHome-comp/CrabbyHome-conn/platformio.ini @@ -13,7 +13,10 @@ platform = espressif8266 board = d1_mini_pro framework = arduino monitor_speed = 115200 +board_build.filesystem = littlefs +board_build.ldscript = eagle.flash.4m3m.ld lib_deps = https://git.aterve.com/Frozenverse/SimpleSerialProtocol.git - https://github.com/bblanchon/ArduinoJson.git \ No newline at end of file + https://github.com/bblanchon/ArduinoJson.git + https://github.com/earlephilhower/arduino-esp8266littlefs-plugin.git \ No newline at end of file diff --git a/CrabbyHome-comp/CrabbyHome-conn/src/Connection.h b/CrabbyHome-comp/CrabbyHome-conn/src/Connection.h index 0bc2b13..bd23fe2 100644 --- a/CrabbyHome-comp/CrabbyHome-conn/src/Connection.h +++ b/CrabbyHome-comp/CrabbyHome-conn/src/Connection.h @@ -7,6 +7,9 @@ #include #include +#include +#include + #include #include @@ -31,10 +34,12 @@ namespace Connection { void initWifi(); void handleWifi(); void sendResponse(DynamicJsonDocument response); + void handleWifiStatus(); void onApiStatusRoute(); void getCurrentStateRoute(); void onDeviceRoute(); + void onWebpageRoute(); } // serial @@ -78,10 +83,24 @@ void Connection::initWifi(){ WiFi.localIP().toString().toCharArray(ipAdress,50); controller.sendPacket("controller", "wifi_details", ipAdress); + server.on("/", Connection::onWebpageRoute); server.on("/api/status", Connection::onApiStatusRoute); server.on("/api/currentstate", Connection::getCurrentStateRoute); server.on("/api/device", Connection::onDeviceRoute); + + LittleFS.begin(); + + server.serveStatic("/Icon2.ico", LittleFS, "/Icon2.ico"); + server.serveStatic("/background.jpg", LittleFS, "/background.jpg"); + server.serveStatic("/index.js", LittleFS, "/index.js"); + server.serveStatic("/kksign.png", LittleFS, "/kksign.png"); + server.serveStatic("/Styles.css", LittleFS, "/Styles.css"); + + server.onNotFound([]() { + server.send(404, "text/plain", "404: Not Found"); + }); + server.begin(); } @@ -100,6 +119,14 @@ void Connection::sendResponse(DynamicJsonDocument response) { server.send(200, "application/json", serializedJson); } +void Connection::handleWifiStatus() { + if(WiFi.status() != WL_CONNECTED){ + controller.sendPacket("controller", "wifi_status", "reconnecting"); + WiFi.disconnect(); + WiFi.reconnect(); + } +} + void Connection::onApiStatusRoute() { // Init Json Document DynamicJsonDocument response(jsonBufferSize); @@ -157,4 +184,11 @@ void Connection::onDeviceRoute() { response["msg"] = "Processed command!"; sendResponse(response); +} + +void Connection::onWebpageRoute() { + LittleFS.begin(); + File file = LittleFS.open("/index.html", "r"); + server.streamFile(file, "text/html"); + file.close(); } \ No newline at end of file