ESP32MP3:全开源硬件便携蓝牙 MP3 音乐播放器

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

ESP32MP3:全开源硬件便携蓝牙 MP3 音乐播放器封面
oshw_hqzl2026-08-10 18:10:34GPL-3.0
45
Star

PCBA

设计文件

KiCad图标ESP32MP3-master.zip21.92MB(3次下载)

EDA查看器

复制嵌入代码

详细介绍

一、项目简介

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

二、核心功能特性

硬件部分

  1. 自制 PCB:KiCad 绘制的定制开发板(Rev1.1),集成全部元器件

  2. 显示屏:0.96" OLED(SSD1306,128×64)

  3. 输入:5 个实体按键(上、下、左、右、确认)

  4. 存储:MicroSD 卡读取 MP3 音乐文件

  5. 电源:锂电池管理,支持锂聚电池 + USB‑C 充电

  6. 主控:ESP32‑WROOM‑32E 模块

软件部分

  1. 蓝牙 A2DP 音源:作为蓝牙音频发射端,把音乐推送到蓝牙耳机 / 音箱

  2. 多屏幕 UI 界面:蓝牙设备扫描、播放列表、正在播放、音量控制

  3. SD 卡播放:自动扫描 SD 卡 MP3 文件,完整播放列表管理,支持曲目切换、音量调节

  4. 按键交互:短按、长按、自动重复按键,实现流畅导航

  5. 模块化固件架构:采用 Manager 分层设计(显示、输入、蓝牙、播放),便于维护调试

三、开发环境信息

  • 框架:Arduino‑PlatformIO,VS Code 开发

  • 关键库

    • U8g2:OLED 屏幕驱动

    • arduino‑audio‑tools:音频解码处理流水线

    • ESP32 A2DP 库:蓝牙音频发射

    • arduino‑heltec:MP3 解码器

  • 硬件资料:KiCad 原理图、PCB、库文件全部开源放在hardware/dev‑board目录

四、上手步骤

  1. 硬件准备

    • 焊接组装自制开发板;简易 Alpha 版本可使用通用 ESP32+SD 卡模块

    • SD 卡格式化为 FAT32,放入 MP3 音乐;44100Hz 采样率最佳

    • USB‑C 数据线用于烧录固件

  2. 软件准备

    1. 安装 VS Code + PlatformIO 插件

    2. git clone拉取仓库,更新 git 子模块

    3. 在 VS Code 打开Software子文件夹作为项目

    4. 修改src/settings.h适配硬件引脚

    5. PlatformIO 编译并烧录固件到 ESP32

💡 Alpha 版本:仅做概念验证,不需要自制 PCB,普通 ESP32 开发板 + SD 卡模块就可以体验基础功能。

五、许可协议

项目采用 GPL‑3.0开源协议,硬件工程文件、固件代码全部开放。

六、项目限制

  • 仅做蓝牙音频发送 (A2DP Source),播放器本身没有 DAC 音频输出,声音只能通过蓝牙输出到耳机音箱,不能直接接喇叭。

  • 只读取 SD 卡本地 MP3 文件,不支持网络流媒体

七、项目地址

https://github.com/GiacoBot/ESP32MP3