站内搜索
发作品签到
专业版

网络流媒体播放器

工程标签

146
0
0
0

简介

在立创学习了很多,制作了一个网络流媒体播放器,使用ESP32-WROOM,实现了SD卡MP3播放,网络电台播放,navidrome服务器连接播放,音乐闹钟,OTA升级等功能,代码使用人工和AI混合编写

简介:在立创学习了很多,制作了一个网络流媒体播放器,使用ESP32-WROOM,实现了SD卡MP3播放,网络电台播放,navidrome服务器连接播放,音乐闹钟,OTA升级等功能,代码使用人工和AI混合编写
复刻成本:60

开源协议

MIT License

(未经作者授权,禁止转载)
创建时间:2026-02-22 04:23:27更新时间:2026-04-13 09:50:47

描述

# ESP32-MAX98357 网络收音机使用说明书

zhdo1983/IMP-PLAYER: This is a player with functions including MP3 playback, network streaming media playback, Navidrome playback, music clock, and web service.

 

-----------------------------------------------------------------------

OTA服务器和navidrome服务器录入方式:

 configh,h    96-97行 

#define OTA_DEFAULT_VER_URL  ""  // 默认版本检查URL
#define OTA_DEFAULT_FW_URL   ""  // 默认固件下载URL

navidrome.h 41行

ND_DEFAULT_SERVER "https://"  // 默认Navidrome服务器地址
 
---------------------------------------------------------------------------------------------------------------------
服务器端navidrome 建立用户, 在imp播放器WEB页面录入用户名密码
OTA服务器 使用filebrowser文件服务器, 需要2个文件,一个firmware.bin, 一个version.txt
----------------------------------------------------------------------------------------------------------------------
喇叭使用 2030腔体喇叭
 
 
 
代码由于内存空间太小,使用中可能存在一些问题,若有发现,请分享给我
----------------------------------------------------------------------------------------------------------------------
项目中使用了很多其他网友的电路设计及代码设计, 在此感谢
 

## 一、项目概述

这是一个ESP32网络收音机和SD卡MP3播放器项目,采用模块化设计,主要特性包括:

**核心功能:**
- ✅ 网络电台流媒体播放(支持MP3/AAC格式)
- ✅ SD卡本地MP3文件播放
- ✅ 128x64 OLED显示屏(中文支持)
- ✅ 旋转编码器控制
- ✅ WiFi配置Portal
- ✅ OTA固件升级
- ✅ 电池电量监测
- ✅ PONG游戏
- ✅ NTP网络时钟同步

开机画面navidrome播放外观

**硬件配置:**
- 主控:ESP32-WROOM-32
- 功放:MAX98357A I2S D类放大器
- 显示:SSD1306 128x64 OLED
- 存储:TF卡(SPI接口)
- 输入:EC11旋转编码器

## 二、硬件连接说明

### 2.1 引脚定义

| ESP32引脚 | 连接模块 | 说明 |
|-----------|----------|------|
| GPIO5 | SD_CS | SD卡片选 |
| GPIO18 | SPI_SCK | SD卡时钟 |
| GPIO19 | SPI_MISO | SD卡数据输入 |
| GPIO23 | SPI_MOSI | SD卡数据输出 |
| GPIO4 | OLED_SDA | OLED I2C数据 |
| GPIO14 | OLED_SCL | OLED I2C时钟 |
| GPIO25 | I2S_DOUT | I2S音频输出 |
| GPIO26 | I2S_LRC | I2S左右声道时钟 |
| GPIO27 | I2S_BCLK | I2S位时钟 |
| GPIO21 | I2S_SD_MODE | MAX98357A使能 |
| GPIO32 | ENCODER_CLK | 编码器时钟 |
| GPIO16 | ENCODER_DT | 编码器数据 |
| GPIO17 | ENCODER_SW | 编码器按钮 |
| GPIO36 | BAT_DAC | 电池检测 |
| GPIO33 | LED_BLUE | 状态LED |

### 2.2 硬件清单

- ESP32-WROOM-32E *1
- MAX98357A I2S x2
- SSD1306 128x64 OLED显示屏 x1
- SD卡模块(SPI接口)x1
- TF卡 x1
- EC11旋转编码器 x1
- 锂电池(3.7V)602535P 600mah x1
- 充电管理模块 x1
- 扬声器(4Ω 3W)x2
- 若干电阻电容和杜邦线

## 三、首次使用指南

### 3.1 烧录固件

#### 使用PlatformIO编译和上传

### 3.2 WiFi配置

首次上电后设备会自动进入配网模式:

1. **连接WiFi热点**
   - 在手机或电脑WiFi列表中找到 `ESP32_Radio`
   - 连接该热点(无密码)

2. **打开配置页面**
   - 在浏览器中访问:`http://192.168.3.3`
   - 会看到配置界面

3. **输入WiFi信息**
   - 输入你的WiFi名称(SSID)
   - 输入WiFi密码
   - 点击"添加WiFi"按钮
   - 可以添加最多5个WiFi账号

4. **保存并重启**
   - 点击底部的"保存并重启"按钮
   - 设备会自动重启并连接WiFi

### 3.3 测试播放

重启后设备会自动:
- 连接WiFi
- 播放默认电台(默认为第8个电台:Radio Paradise)

**基本操作:**
- 旋转编码器:调节音量(0-21级)
- 按下编码器按钮:进入主菜单

## 四、功能使用说明

### 4.1 主菜单操作

按下编码器按钮进入主菜单,包含以下功能:

1. **选择电台** - 选择网络电台播放
2. **SD卡播放器** - 播放SD卡MP3文件
3. **时钟显示** - 显示NTP网络时间
4. **PONG游戏** - 弹球游戏
5. **WiFi设置** - 重新配置WiFi
6. **恢复出厂设置** - 恢复默认电台列表
7. **内存分配** - 查看内存使用情况

**菜单操作:**
- 旋转编码器:上下移动选择项
- 按下按钮:确认选择
- 10秒无操作自动返回

### 4.2 网络电台播放

**选择电台:**
1. 在主菜单选择"1.选择电台"
2. 旋转选择电台
3. 按下确认播放

**电台管理:**
- 通过Web界面管理电台
- 访问设备IP地址
- 可以添加、编辑、删除电台
- 最多保存20个电台

**默认电台列表:**
1. 德意志广播电台 WDR Einslive
2. 经典欧美 181.FM - Awesome 80's
3. 法国广播电台
4. 俄罗斯 PADNO
5. 德国 Hit-Radio FFH
6. 马来西亚 RTM Radio
7. 新加坡 88.3jia
8. 天堂电台 Radio Paradise
9. 芝加哥 WZRD The Wizard 88.3 FM
10. 苏腊巴亚 smart FM88.9
11. AFN Daegu - Korea
12. Swiss Jazz (瑞士爵士乐)

### 4.3 SD卡播放器

**准备工作:**
1. 将TF卡格式化为FAT32
2. 将MP3文件复制到卡中(支持子目录)
3. 将TF卡插入SD卡模块

**使用SD卡播放器:**
1. 在主菜单选择"2.SD卡播放器"
2. 首次使用会自动扫描SD卡
3. 扫描完成后自动开始播放

**播放控制:**
- 进入SD播放器控制菜单
- 旋转选择控制选项
  1. 下一首
  2. 上一首
  3. 播放/暂停
  4. 播放模式
  5. PONG游戏
  6. 切换效果图
  7. 退出

**播放模式:**
1. 单曲循环 - 当前曲目循环播放
2. 顺序播放 - 按列表顺序播放
3. 随机播放 - 随机选择曲目

**播放动画:**
- 12种播放动画可选
- 在"切换效果图"菜单中设置
- 动画效果包括:九宫格、圆环、五分割圆环、三角形切换、旋转圆弧、音频指示器、正弦频谱、爱心跳动、方块滚动、日月旋转、斜线下雨、气泡上升

**退出SD播放:**
- 选择"7.退出"选项
- 设备会自动释放资源并重启

### 4.4 时钟显示

1. 在主菜单选择"3.时钟显示"
2. 设备会自动从NTP服务器同步时间
3. 显示当前网络时间
4. 按下按钮返回主菜单

### 4.5 PONG游戏

1. 在主菜单选择"4.PONG游戏"
2. 游戏规则:
   - 控制左侧挡板
   - 击球到对方得一分
   - 先得5分获胜
3. 操作:
   - 旋转编码器控制挡板上下移动
   - 按下按钮返回主菜单

### 4.6 WiFi设置

**重新配置WiFi:**
1. 在主菜单选择"5.WiFi设置"
2. 设备会进入配网模式
3. 按照首次使用配置WiFi的步骤操作

**WiFi多账号管理:**
- 最多保存5个WiFi账号
- 设备启动时自动选择信号最强的连接
- 可以通过Web界面添加或删除WiFi

### 4.7 恢复出厂设置

1. 在主菜单选择"6.恢复出厂设置"
2. 设备会恢复默认电台列表
3. 恢复默认设置
4. 自动重启

### 4.8 内存分配查看

1. 在主菜单选择"7.内存分配"
2. 显示当前内存使用情况
3. 信息包括:
   - 总内存
   - 空闲内存
   - WiFi占用
   - SSL占用
   - 音频占用

### 4.9 OTA固件升级

**检查更新:**
1. 在主菜单→播放器选择→选择"OTA"选项
2. 设备会自动检查服务器版本
3. 如果有新版本,会提示升级

**执行升级:**
1. 选择"1.升级"开始升级
2. 升级过程中不要断电
3. 升级完成后自动重启

## 五、串口命令

通过串口终端可以输入以下命令:

### 5.1 可用命令

```
help          - 显示帮助信息
refresh       - 刷新SD卡数据库
refreshsd     - 刷新SD卡数据库(同上)
dbinfo        - 显示数据库信息
<URL>         - 直接播放网络流(输入URL)

## 六、Web管理界面

### 6.1 访问Web界面

1. 确保设备已连接WiFi
2. 在串口输出中查看设备IP地址
3. 在浏览器中访问该IP地址

### 6.2 电台管理

**查看电台列表:**
- 页面显示所有已保存的电台
- 显示电台名称和URL

**添加电台:**
1. 在"添加新电台"区域输入电台名称
2. 输入电台URL
3. 点击"添加电台"按钮

**编辑电台:**
1. 直接在列表中修改电台名称和URL
2. 点击"保存"按钮

**删除电台:**
1. 点击电台右侧的"删除"按钮
2. 确认删除

### 6.3 WiFi管理

**查看WiFi列表:**
- 显示所有已保存的WiFi账号
- 显示SSID(不显示密码)

**添加WiFi:**
1. 在"新增 WiFi 名称"输入SSID
2. 在"密码"输入WiFi密码(无密码留空)
3. 点击"添加 WiFi"按钮

**删除WiFi:**
1. 点击WiFi右侧的"删除"按钮
2. 确认删除

## 七、常见问题解答

### 7.1 连接问题

**Q: WiFi连接失败?**
A:
- 检查WiFi密码是否正确
- 尝试重启设备
- 检查WiFi信号强度
- 尝试删除后重新添加WiFi账号

**Q: SD卡无法识别?**
A:
- 确保SD卡格式化为FAT32
- 使用Class 10或更高速的SD卡
- 检查SD卡是否损坏
- 重新插拔SD卡

**Q: 播放无声音?**
A:
- 检查I2S接线是否正确
- 确保MAX98357A供电正常(3.3V-5V)
- 检查扬声器连接
- 确认音量已调节

### 7.2 播放问题

**Q: 电台播放卡顿?**
A:
- 检查网络连接质量
- 尝试更换其他电台
- 检查WiFi信号强度
- 重启设备

**Q: SD播放失败?**
A:
- 确认MP3文件格式正确
- 检查文件是否损坏
- 确认SD卡容量未满
- 重新扫描SD卡

**Q: 频繁自动重启?**
A:
- 可能是内存不足
- 减少SD卡MP3数量
- 优化播放列表
- 检查是否超过最大曲目数(500首)

### 7.3 内存问题

**Q: 如何查看内存使用?**
A:
- 进入主菜单→内存分配
- 查看详细的内存信息
- 监控内存变化

**Q: 内存不足怎么办?**
A:
- 减少SD卡MP3数量
- 优化电台列表
- 避免频繁切换电台
- 重启设备释放内存

### 7.4 其他问题

**Q: 电池电量显示不准?**
A:
- 电池检测基于ADC值,需要校准
- 根据实际电池特性调整参数
- 查看电池.h文件中的ADC阈值

**Q: 如何更新固件?**
A:
- 通过OTA升级(见4.9节)
- 或通过USB重新烧录固件

**Q: 串口波特率是多少?**
A: 115200

## 八、技术规格

### 8.1 硬件参数

| 参数 | 数值 |
|------|------|
| 工作电压 | 3.3V / 5V (USB供电) |
| 锂电池电压 | 3.7V |
| 音频输出 | 3W @ 4Ω |
| 显示屏 | 128x64 OLED |
| 存储卡支持 | 最大32GB FAT32 |
| 音频格式 | MP3, AAC, FLAC, WAV |
| 串口波特率 | 115200 |
| WiFi频段 | 2.4GHz |

 

## 九、开发说明

### 9.1 项目结构src/
├── main.cpp             # 主程序入口、全局变量定义
├── config.h             # 硬件配置和常量定义
├── globals.h            # 全局变量声明
├── display.h            # OLED显示驱动、菜单、滚动
├── oled_task.h          # OLED显示任务
├── wifi_config.h        # WiFi连接、配网portal、Web服务器
├── stations.h           # 网络电台管理、预设电台列表
├── sd_player.h          # SD卡MP3播放、文件扫描
├── encoder.h            # 旋转编码器驱动、按钮事件
├── audio_manager.h      # 音频管理、内存清理
├── menu.h               # 菜单处理、状态管理
├── battery.h            # 电池检测
├── ota.h                # OTA升级功能
├── boot_animation.h     # 开机动画
├── icons.h              # 图标定义
└── 使用说明书.md          # 本文件

## 十一、许可协议

MIT License

 
 
 
 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
1
外壳.3mf
6

附件

序号文件名称下载次数
1
源代码.rar
7
2
firmware.bin
6
3
version.txt
6
4
platformio.ini
5
5
partitions_custom.csv
6
6
README.md
5
7
演示视频.rar
4
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航