ESP32 网络收音机 yoRadio 完整指南:从接线到出声一次跑通
【免费下载链接】yoradioWeb-radio based on ESP32-audioI2S library项目地址: https://gitcode.com/GitHub_Trending/yo/yoradio
yoRadio 是一个基于 ESP32-audioI2S 音频库的开源网络收音机固件,把一块裸的 ESP32 开发板变成能播放网络电台的收音机,带 Web 配置界面、屏幕显示和多种控制方式,适合想自制网络收音机或入门嵌入式音频开发的人。
项目速览:yoRadio 能做什么
yoRadio 的定位是一台轻量级网络收音机:核心负责流媒体解码播放,显示、控制、联网能力则按你的硬件自由搭配,官方还另有 yopcb 仓库提供配套的 PCB 设计文件。主要功能:
- 播放最多 65535 个电台
- 支持 20 多种 OLED/TFT/LCD 屏幕
- 按钮、编码器、红外、触屏控制
- Web 界面管理 WiFi 与歌单
- 内置 Web 服务器,支持 OTA 升级
设备屏幕上的播放器界面:电台、歌曲名、均衡器滑条和歌单列表。
准备工作:硬件清单与软件版本
硬件(必选):
- 1 块 ESP32 开发板(Dev Module 或 Wrover 系列均可)
- I2S DAC 模块(MAX98357A 一类)或 VS1053b 模块,二选一
- 可选:SSD1306、ST7735、ST7789、ILI9341 等屏幕,三个轻触按键,旋转编码器,红外接收头,DS3231 时钟模块
软件:
- Arduino IDE 1.8.19(不支持 2.x 版本)
- ESP32 板卡核心 ≥ 2.0.0
- ESP32 Filesystem Uploader 工具,或使用 IDE 内置的 ESP32 Sketch Data Upload
- Adafruit_GFX 等屏幕相关库,通过 Library Manager 安装(取决于所选屏幕)
首次跑通:五步从克隆到出声
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/yo/yoradio- 按你的接线生成硬件配置文件,放在项目根目录(与 yoRadio.ino 同级)。模板见 examples/myoptions.h,需要确认的关键项:
DSP_MODEL(屏幕型号,无屏填DSP_DUMMY)、I2S_DOUT/VS1053_CS(未用的模块一律填 255)、各引脚定义。 - 用 yoRadio/fonts/glcdfont.c 替换
Arduino/libraries/Adafruit_GFX_Library/下的同名文件,重启 Arduino IDE。 - 在 IDE 中先执行 Tools → ESP32 Sketch Data Upload 上传网页与配置数据(分区方案选 Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)),再上传 yoRadio.ino 程序。
- 连上设备热点 yoRadioAP(密码 12345987),打开
http://192.168.4.1/配置家里的 WiFi。连上后访问设备 IP,把电台加入歌单,出声。
三种 ESP32 板型的 IDE 关键设置:上传速度 921600、Flash Mode QIO、分区方案 Minimal SPIFFS。
实用技巧:三个常用配置点
- 跳过热点配置:上传数据前,把家里 WiFi 写入 yoRadio/data/data/wifi.csv(SSID 和密码以制表符分隔,一行一个热点),设备开机后直连,省去热点配置步骤。
- 屏幕配色与旋转:TFT 彩色屏的背景、歌名、时钟各区块颜色定义在 examples/mytheme.h,取消注释对应行即可改色;屏幕旋转角度由 myoptions.h 中的
TFT_ROTATE控制(0/90/180/270 度)。 - 绿色板 VS1053 无声:部分绿色电路的 VS1053 模块装好后没声音,在 myoptions.h 中加
#define VS_PATCH_ENABLE false关闭补丁,通常即可出声。
3.5 英寸彩色屏上同时显示电台、歌曲、天气、时钟与 VU 表。
常见坑位与解决
问:程序编译报错或行为异常,像是版本问题。答:yoRadio 不支持 Arduino IDE 2.x,换回 1.8.19,并确认 ESP32 核心不低于 2.0.0。
问:TFT 彩色屏配 wroom 板,内存不够或播放卡顿。答:VSPI 任务栈占用过大,按 README 说明把 AsyncTCP.cpp 中任务栈8192 * 2改为8192 / 2。
问:屏幕上的天气、WiFi 信号等图标不显示。答:屏幕字体文件没换成项目版本,重新把 yoRadio/fonts/glcdfont.c 拷入 Adafruit_GFX 库目录并重启 IDE。
问:升级后电台列表和 WiFi 配置丢了。答:升级前从设备网页下载data/playlist.csv与data/wifi.csv,存回 yoRadio/data/data/ 目录,再重新上传数据。
扩展与生态:从插件到智能家居
- MQTT:把 examples/mqttoptions.h 复制到 yoRadio/ 目录并填写 broker 地址与主题前缀,即可暴露 command/status/playlist/volume 四个主题,支持 next、prev、play x、vol x 等指令。
- Home Assistant:将 HA/custom_components/yoradio 拷到
.homeassistant/custom_components/,按 HA/example_configuration.yaml 添加实体,Lovelace 里即可当作 Media Player 使用(依赖 MQTT 集成)。 - 插件系统:继承 Plugin 基类、重写 on_start_play、on_btn_click 等钩子,新插件放在 src/plugins/ 对应目录;examples/plugins/ 有背光控制、深度睡眠等现成示例,接口定义见 yoRadio/src/pluginsManager/pluginsManager.h。
- 其他:mDNS 发现、屏保、通过 /update 页面上传固件与 SPIFFS 镜像做 OTA 均已内置;屏幕文字支持 EN/RU 两种语言(
L10N_LANGUAGE参数,源文件在 yoRadio/locale/);Nextion 触摸屏有独立的 nextion/ 工程。按键行为映射、红外遥控器配码流程等细节见 Controls.md。
yoRadio 把解码、播放、显示、控制和智能家居集成做成了完整的闭环,硬件最小组合只需一块 ESP32、一个音频模块和几个按键。更多细节可看仓库 README 与 Wiki,遇到问题先查版本日志,或直接向官方仓库提 Issue。
【免费下载链接】yoradioWeb-radio based on ESP32-audioI2S library项目地址: https://gitcode.com/GitHub_Trending/yo/yoradio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考