一、项目简介
软硬全开源的便携蓝牙 MP3 播放器。基于 ESP32 主控,KiCad 自主设计硬件,搭载 OLED 屏幕与实体按键。从 SD 卡读取 MP3 文件,通过 A2DP 蓝牙输出音频至耳机或音箱,支持锂电池 USB‑C 供电,固件采用模块化架构,可二次开发。

二、核心功能特性
硬件部分
自制 PCB:KiCad 绘制的定制开发板(Rev1.1),集成全部元器件
显示屏:0.96" OLED(SSD1306,128×64)
输入:5 个实体按键(上、下、左、右、确认)
存储:MicroSD 卡读取 MP3 音乐文件
电源:锂电池管理,支持锂聚电池 + USB‑C 充电
主控:ESP32‑WROOM‑32E 模块
软件部分
蓝牙 A2DP 音源:作为蓝牙音频发射端,把音乐推送到蓝牙耳机 / 音箱
多屏幕 UI 界面:蓝牙设备扫描、播放列表、正在播放、音量控制
SD 卡播放:自动扫描 SD 卡 MP3 文件,完整播放列表管理,支持曲目切换、音量调节
按键交互:短按、长按、自动重复按键,实现流畅导航
模块化固件架构:采用 Manager 分层设计(显示、输入、蓝牙、播放),便于维护调试
三、开发环境信息
框架:Arduino‑PlatformIO,VS Code 开发
关键库
U8g2:OLED 屏幕驱动arduino‑audio‑tools:音频解码处理流水线ESP32 A2DP 库:蓝牙音频发射
arduino‑heltec:MP3 解码器
硬件资料:KiCad 原理图、PCB、库文件全部开源放在
hardware/dev‑board目录
四、上手步骤
硬件准备
焊接组装自制开发板;简易 Alpha 版本可使用通用 ESP32+SD 卡模块
SD 卡格式化为 FAT32,放入 MP3 音乐;44100Hz 采样率最佳
USB‑C 数据线用于烧录固件
软件准备
安装 VS Code + PlatformIO 插件
git clone拉取仓库,更新 git 子模块在 VS Code 打开
Software子文件夹作为项目修改
src/settings.h适配硬件引脚PlatformIO 编译并烧录固件到 ESP32
💡 Alpha 版本:仅做概念验证,不需要自制 PCB,普通 ESP32 开发板 + SD 卡模块就可以体验基础功能。
五、许可协议
项目采用 GPL‑3.0开源协议,硬件工程文件、固件代码全部开放。
六、项目限制
仅做蓝牙音频发送 (A2DP Source),播放器本身没有 DAC 音频输出,声音只能通过蓝牙输出到耳机音箱,不能直接接喇叭。
只读取 SD 卡本地 MP3 文件,不支持网络流媒体。
