/esp32-Async-FastLED-Audio

Async version of Jason Coon's esp8266-esp32 Fastled Webserver. AP and STA mode at the same time

Primary LanguageC++

ESP32 FastLED Async Web Server with Audio, AP and STA mode at the same time!

Work in progress ESP32 port of:

Control addressable LEDs with an ESP32 via a web browser over Wi-Fi.

Features

Currently Working:

  • DemoReel100 patterns
  • MSGEQ7 Integration / Audio
  • Static web app file serving from SPIFFS
  • Ability to adjust these settings via the HTTP REST API:
    • power on/off
    • brightness
    • pattern
    • autoplay on/off
    • autoplay duration
    • speed
    • palette
    • auto palette cycling
    • palette duration
    • solid color
    • twinkle speed/density
    • fire cooling/sparking
  • Setting storage in EEPROM
  • AP Mode with Station mode
  • for now on AP mode, you need to go to 192.168.1.1/index-ap.htm to load the offline javascript files.

Currently Lacking:

  • More Audio Patterns
  • Fixed Audio Patterns
  • WebSockets for automatically refreshing/syncing web clients
  • Bluetooth Port
  • Bluetooth and Wifi Port
  • AP Mode with Station mode default routing website loading ( index.htm on AP/STA mode)
  • Sam's multi-core support
    • Freezing Stopped/ Core dumps.
    • commenting it out removes these issues.
    • issue is in async/Wifi(also exists in Webserver.h) and how fastled and wifi access the core. causes core dumps and other issues.

Requirements

Hardware

  • Optional
    • MSGEQ7 for Audio Support. with a microphone
    • Potentiometer
    • push button

Example circuit.

Ours uses:

  • MSGEQ7_AUDIO_PIN 34
  • MSGEQ7_STROBE_PIN 26
  • MSGEQ7_RESET_PIN 27

https://github.com/debsahu/ESP32_FFT_Audio_LEDs hw_wiring
https://github.com/debsahu/ESP32_FFT_Audio_LEDs

ESP32 Development Board

I used an Esp32 Node32s, the cheap one on amazon.

Adafruit HUZZAH32 – ESP32 Feather Board

Adafruit HUZZAH32 – ESP32 Feather Board

or

WEMOS LOLIN D32

or

An ESP32 development board of your choice

Addressable LED strip

Adafruit NeoPixel Ring

Adafruit NeoPixel Ring

Other hardware:

Recommended by Adafruit NeoPixel "Best Practices" to help protect LEDs from current onrush:

Software

Libraries

SPIFFS fix

To fix an issue with serving files from SPIFFS over the web server, I used Yves BAZIN's fix here: https://github.com/hpwit/lib

Copy libspiffs.a to the ESP32 tools directory: \Documents\Arduino\hardware\espressif\esp32\tools\sdk\lib\libspiffs.a

And copy esp32fs.jar to the Arduino tools directory: \Documents\Arduino\tools\ESP32FS\tool\esp32fs.jar