| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 | | ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | # Контролер стійок GoodVibe Контролер двох світлодіодних стійок із звуковими сигналами на ESP32-S2 (WS2812, 53 LED на кожній), керується двома фізичними кнопками. Є заготовка для роботи як Wi‑Fi SoftAP із captive portal (віддає `root.html`), за замовчуванням вона вимкнена в коді. ## Структура проєкту - `main/main.c` — основна логіка: ініціалізація стрічок, кнопок і звукових виходів, обробка натискань, заготовка Wi‑Fi/AP+HTTP+DNS. - `managed_components/` — залежності ESP-IDF (наприклад, `led_strip`). - `build/` — артефакти збірки (elf/bin/map, крос-компіляційні файли). - `sdkconfig`, `sdkconfig.old` — налаштування цілі та параметрів ESP-IDF. - `root.html` (у вигляді бінарного ресурсу, посилається через `root_start/root_end`) — сторінка для captive portal. - `0001.wav`, `0002.wav` — потрібні аудіо-файли проєкту. ## Що робить прошивка - На старті запускає обидві LED-стрічки в режимі привітання (`welcome_strip`). - GPIO: LED стрічки на 4 та 5 пінах, кнопки на 2 і 3 (`KEY1`, `KEY2`), звукові виходи на 12 та 13 (`SOUND_OUT1/2`). - Натискання `KEY1` → короткий звуковий сигнал на `SOUND_OUT1` + мигання стрічки 1 синім. - Натискання `KEY2` → короткий звуковий сигнал на `SOUND_OUT2` + мигання стрічки 2 жовтим. - У коді закоментовано ініціалізацію SoftAP + HTTP + DNS, їх можна ввімкнути для captive portal (конфігурується через `CONFIG_ESP_WIFI_*` у `sdkconfig`). ## Збірка та прошивка (ESP-IDF) 1) Встановіть ESP-IDF (розробка велась на 5.2.x). 2) Виберіть ціль: `idf.py set-target esp32s2`. 3) Зберіть: `idf.py build`. 4) Прошийте й відкрийте монітор: `idf.py -p COMx flash monitor` (замініть `COMx` на ваш порт). ## Використання - Після прошивки живленням запускається анімація привітання. - При натисканні кнопок спрацьовують відповідні світло- і звуко-сценарії; обробка йде в ISR + основному циклі. - Для увімкнення Wi‑Fi/AP з captive portal розкоментуйте в `app_main` виклики `esp_netif_init`, `esp_event_loop_create_default`, `nvs_flash_init`, `esp_netif_create_default_wifi_ap`, `wifi_init_softap`, `start_webserver` та DNS серверу, і задайте SSID/пароль у `sdkconfig`.