This project implements a music receiver using an ESP32 microcontroller. It combines WiFi, Bluetooth A2DP, IR remote control, and physical button functionality to create a versatile audio device.
- WiFi connectivity for network-based features
- Bluetooth A2DP sink for wireless audio streaming
- IR remote control support for device control
- Physical buttons for play/pause, next, and previous track control
- FreeRTOS task for responsive button handling
- ESP32 development board
- IR receiver (e.g., TSOP38238)
- IR transmitter (optional)
- Push buttons (3x)
- Audio output device (e.g., I2S DAC or amplifier)
- Arduino core for ESP32
- ESP32-A2DP library
- Arduino-audio-tools library
- IRremote library
- Clone this repository
- Open the project in PlatformIO
- Copy
credentials_example.htocredentials.hand update with your WiFi credentials - Update
config.hwith your specific pin assignments and other settings - Build and upload the project to your ESP32
- Power on the device and wait for it to connect to WiFi
- Pair your Bluetooth device with "ESP32 Music Receiver"
- Use the IR remote or physical buttons to control playback
- The device will automatically reconnect to WiFi if the connection is lost
main.cpp: Main program logicconfig.h: Configuration settingscredentials.h: WiFi credentials (not tracked in git)wifi_manager.h/cpp: WiFi connection managementbluetooth_manager.h/cpp: Bluetooth A2DP functionalityir_manager.h/cpp: IR remote control handlingbutton_manager.h/cpp: Physical button handling
Contributions to this project are welcome. Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License - see the LICENSE file for details.