Analyzer Manager is a small Android application for controlling a LED spectrum analyzer over a local Wi-Fi connection.
The project consists of three parts:
Analyzer_Manager2— Android application.sketch_esp8266.ino— ESP8266 firmware that accepts HTTP requests and forwards commands over serial.analyzer_arduino.ino— Arduino firmware that reads the audio signal and renders the spectrum on a WS2812B LED matrix.
The application can send commands for:
- LED brightness;
- four spectrum colors;
- animation smoothness;
- input gain;
- low-pass threshold;
- automatic gain coefficient.
Matrix width and height are configured in analyzer_arduino.ino before flashing. They cannot be changed while the firmware is running because the LED buffer is allocated at compile time.
The ESP8266 and Arduino communicate over UART at 115200 baud. The ESP8266 starts a Wi-Fi access point and exposes a simple HTTP endpoint on port 80. The Android application sends form data to that endpoint.
Set a device-specific Wi-Fi name and password when building the ESP8266 firmware. The source supports the following build definitions:
WIFI_SSID
WIFI_PASSWORD
For example, use your Arduino build configuration to pass a unique password for each device. Do not use the fallback setup password on a deployed device.
Open Analyzer_Manager2 in Android Studio. The project uses Android Gradle Plugin 8.1.3, so it needs JDK 11 or newer.
After installing the application:
- Connect the phone to the ESP8266 access point.
- Open the IP address screen in the app.
- Enter the address configured in
sketch_esp8266.ino. - Use the control screens to send commands to the analyzer.
- Set the matrix dimensions and pin configuration in
analyzer_arduino.ino. - Flash
analyzer_arduino.inoto the Arduino connected to the LED matrix and audio input. - Configure the Wi-Fi credentials and network address in
sketch_esp8266.ino. - Flash
sketch_esp8266.inoto the ESP8266. - Connect the ESP8266 and Arduino serial pins, with a shared ground.
The Arduino sketch requires the FastLED and FHT libraries. The ESP8266 sketch requires the ESP8266 Arduino core.