# esp32-pcm5102a-8002a-music **Repository Path**: yunlong/esp32-pcm5102a-8002a-music ## Basic Information - **Project Name**: esp32-pcm5102a-8002a-music - **Description**: 本项目基于 esp32,音频解码采用 pcm5102a,功放采用 8002a,开发的一款音乐播放器,支持内置乐谱、网络音乐、蓝牙播放,软硬件全部开源,欢迎 star - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-06-16 - **Last Updated**: 2025-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Momo Audio 项目 基于ESP32的音频项目,支持I2S音频输出、蓝牙连接、OLED显示和按键控制功能。 ## 项目开源地址 * 软件 https://gitee.com/yunlong/esp32-pcm5102a-8002a-music * 硬件 https://oshwhub.com/dashilong/esp32-mo-smart-speaker ## 项目演示 ![项目演示](https://image.lceda.cn/oshwhub/pullImage/79eae16bd4014599a244331726c283ff.jpg) ## 视频演示 ## 项目概述 本项目使用ESP32微控制器实现了一个多功能音频播放系统,集成了多种硬件接口和网络功能,非常适合音频爱好者和嵌入式开发者学习与扩展。 ## 核心功能 - **I2S音频输出**:支持PCM5102A模块,提供高质量音频播放 - **蓝牙音频**:支持A2DP协议接收音频流,可连接手机等蓝牙设备播放音乐 - **OLED显示**:128x64 SSD1306显示屏,显示播放状态、音量和网络信息 - **按键控制**:支持播放/暂停、上一曲/下一曲、音量调节等基本操作 - **WiFi连接**:支持网络音频流播放和OTA固件更新 - **定时播放**:可设置定时播放音乐或提醒功能 ## 硬件要求 - ESP32开发板(推荐ESP32-WROOM-32) - PCM5102A I2S DAC音频模块 - SSD1306 OLED显示屏(I2C接口) - 4个轻触按键(播放/暂停、上一曲、下一曲、音量调节) - 8002A音频放大器和扬声器 - USB-C数据线(供电和编程) ## 软件依赖 - ESP-IDF v5.3或更高版本 - FreeRTOS实时操作系统 - I2S驱动库 - SSD1306 OLED显示库 - 蓝牙协议栈(ESP-IDF Bluetooth Stack) - WiFi管理库 - 按键扫描库 ## 安装与设置 ### 环境准备 1. 安装ESP-IDF开发环境 2. 配置ESP-IDF路径到系统环境变量 3. 连接ESP32开发板到电脑 ### 编译与烧录 ```bash # 克隆仓库 git clone https://gitee.com/yunlong/esp32-pcm5102a-8002a-music cd momo-audio # 配置项目 idf.py menuconfig # 编译项目 idf.py build # 烧录固件 idf.py -p COMx flash monitor ``` 将COMx替换为实际的串口名称(如COM3) ## 项目结构 ``` momo-audio/ ├── .gitignore ├── CMakeLists.txt ├── README.md ├── components/ │ ├── dsl_button/ # 按键控制组件 │ ├── ssd1306/ # OLED显示驱动 │ ├── timer/ # 定时器功能 │ └── wifi/ # WiFi连接管理 ├── examples/ │ ├── data_music.h # 音频数据示例 │ ├── music.c # 音乐播放示例 │ └── oled.c # OLED显示示例 ├── main/ │ ├── CMakeLists.txt │ ├── idf_component.yml │ └── main.c # 主应用入口 ├── partitions.csv # Flash分区配置 └── sdkconfig # ESP-IDF配置 ``` ## 使用方法 1. 烧录固件后,设备自动启动并初始化 2. 蓝牙模式:设备将以"ESP-Test"名称广播,手机搜索并连接 3. 按键操作: - 短按播放/暂停键:播放或暂停音频 - 短按上一曲/下一曲键:切换上一首/下一首 - 长按音量键:调节音量大小 4. OLED显示:实时显示播放状态、音量和连接信息 ## 配置说明 通过`idf.py menuconfig`可配置以下参数: - 蓝牙名称和可见性 - WiFi网络凭据 - 按键GPIO引脚分配 - OLED显示参数 - 音频输出设置 - 定时器参数 ## 故障排除 - **无音频输出**:检查I2S接线是否正确,确认DAC模块供电正常 - **蓝牙连接失败**:确保设备未被其他设备连接,尝试重启设备 - **显示屏无显示**:检查I2C接线,确认OLED地址正确 - **按键无响应**:检查按键引脚配置和接线 - **编译错误**:确保ESP-IDF环境配置正确,更新到最新版本