Files
GoodVibe_Stoiki_control/README.md
2025-12-16 09:16:09 +02:00

3.2 KiB
Raw Permalink Blame History

Supported Targets ESP32 ESP32-C2 ESP32-C3 ESP32-C6 ESP32-S2 ESP32-S3

Контролер стійок GoodVibe

Контролер двох світлодіодних стійок із звуковими сигналами на ESP32-S2 (WS2812, 53 LED на кожній), керується двома фізичними кнопками. Є заготовка для роботи як WiFi SoftAP із captive portal (віддає root.html), за замовчуванням вона вимкнена в коді.

Структура проєкту

  • main/main.c — основна логіка: ініціалізація стрічок, кнопок і звукових виходів, обробка натискань, заготовка WiFi/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 + основному циклі.
  • Для увімкнення WiFi/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.