From 8093598c55e62b36ad42e20e031c1278abb38b11 Mon Sep 17 00:00:00 2001 From: KubMakCZ Date: Wed, 2 Apr 2025 13:25:47 +0200 Subject: [PATCH] ws2812b server --- 12_web_litlefs_ws2812b/.gitignore | 5 ++ .../.vscode/extensions.json | 10 ++++ 12_web_litlefs_ws2812b/data/index.html | 28 ++++++++++ 12_web_litlefs_ws2812b/platformio.ini | 20 +++++++ 12_web_litlefs_ws2812b/src/main.cpp | 53 +++++++++++++++++++ 12_web_litlefs_ws2812b/test/README | 11 ++++ 6 files changed, 127 insertions(+) create mode 100644 12_web_litlefs_ws2812b/.gitignore create mode 100644 12_web_litlefs_ws2812b/.vscode/extensions.json create mode 100644 12_web_litlefs_ws2812b/data/index.html create mode 100644 12_web_litlefs_ws2812b/platformio.ini create mode 100644 12_web_litlefs_ws2812b/src/main.cpp create mode 100644 12_web_litlefs_ws2812b/test/README diff --git a/12_web_litlefs_ws2812b/.gitignore b/12_web_litlefs_ws2812b/.gitignore new file mode 100644 index 0000000..89cc49c --- /dev/null +++ b/12_web_litlefs_ws2812b/.gitignore @@ -0,0 +1,5 @@ +.pio +.vscode/.browse.c_cpp.db* +.vscode/c_cpp_properties.json +.vscode/launch.json +.vscode/ipch diff --git a/12_web_litlefs_ws2812b/.vscode/extensions.json b/12_web_litlefs_ws2812b/.vscode/extensions.json new file mode 100644 index 0000000..080e70d --- /dev/null +++ b/12_web_litlefs_ws2812b/.vscode/extensions.json @@ -0,0 +1,10 @@ +{ + // 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/12_web_litlefs_ws2812b/data/index.html b/12_web_litlefs_ws2812b/data/index.html new file mode 100644 index 0000000..bbb7f26 --- /dev/null +++ b/12_web_litlefs_ws2812b/data/index.html @@ -0,0 +1,28 @@ + + + + + + Ovládání LED pásku + + +

Ovládání LED pásku

+
+ + + +
+ + + \ No newline at end of file diff --git a/12_web_litlefs_ws2812b/platformio.ini b/12_web_litlefs_ws2812b/platformio.ini new file mode 100644 index 0000000..44a049c --- /dev/null +++ b/12_web_litlefs_ws2812b/platformio.ini @@ -0,0 +1,20 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +[env:esp32dev] +platform = espressif32 +board = esp32dev +framework = arduino +monitor_speed = 115200 +board_build.filesystem = littlefs +lib_deps = + fastled/FastLED@^3.6.0 + ESP32Async/AsyncTCP + ESP32Async/ESPAsyncWebServer \ No newline at end of file diff --git a/12_web_litlefs_ws2812b/src/main.cpp b/12_web_litlefs_ws2812b/src/main.cpp new file mode 100644 index 0000000..983f5be --- /dev/null +++ b/12_web_litlefs_ws2812b/src/main.cpp @@ -0,0 +1,53 @@ +#include +#include +#include +#include +#include + +const char* ssid = "tksteti"; +const char* password = "ProsimTeNevim"; +AsyncWebServer server(80); +#define NUM_LEDS 4 +#define DATA_PIN 12 +CRGB leds[NUM_LEDS]; + +void handleNastavit(AsyncWebServerRequest *request) { + if (request->hasParam("barva",true)) { + String barva = request->getParam("barva",true)->value(); + long barvaLong = strtol(barva.substring(1,7).c_str(),NULL,16); + int r = (barvaLong >> 16) & 0xFF; + int g = (barvaLong >> 8) & 0xFF; + int b = barvaLong & 0xFF; + + for (int i = 0; i < NUM_LEDS; i++) { + leds[i] = CRGB(r,g,b); + } + FastLED.show(); + request->send(200,"text/plain","OK"); + } else { + request->send(400,"text/plain","Bad Request"); + } +} + +void setup() { + Serial.begin(115200); + if(!LittleFS.begin(true)){ + Serial.println("Chyba při zavádění (mounting) LittleFS"); + return; + } + WiFi.begin(ssid,password); + while(WiFi.status() != WL_CONNECTED) { + Serial.print("."); + delay(50); + } + Serial.println("Připojeno k WiFi"); + FastLED.addLeds(leds,NUM_LEDS); + server.on("/",HTTP_GET,[](AsyncWebServerRequest *request){ + request ->send(LittleFS,"/index.html","text/html"); + }); + server.on("/nastavit",HTTP_POST,handleNastavit); + server.begin(); +} + +void loop() { +} \ No newline at end of file diff --git a/12_web_litlefs_ws2812b/test/README b/12_web_litlefs_ws2812b/test/README new file mode 100644 index 0000000..9b1e87b --- /dev/null +++ b/12_web_litlefs_ws2812b/test/README @@ -0,0 +1,11 @@ + +This directory is intended for PlatformIO Test Runner and project tests. + +Unit Testing is a software testing method by which individual units of +source code, sets of one or more MCU program modules together with associated +control data, usage procedures, and operating procedures, are tested to +determine whether they are fit for use. Unit testing finds problems early +in the development cycle. + +More information about PlatformIO Unit Testing: +- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html