| 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`.
