用 ESP32 从零搭建一台网络收音机:YoRadio 快速上手完整指南
发布时间:2026/10/29 1:27:50 锦皓数字建站

用 ESP32 从零搭建一台网络收音机YoRadio 快速上手完整指南【免费下载链接】yoradioWeb-radio based on ESP32-audioI2S library项目地址: https://gitcode.com/GitHub_Trending/yo/yoradio家里躺着一块 ESP32想让它收网络电台、把歌曲信息投到屏幕上还能用手机远程切台却又不想从零写底层驱动ESP32 YoRadio 就是为这件事准备的把 ESP32 变成一台可联网、可显示、能接入智能家居的网络收音机支持 MP3、AAC、FLAC 流媒体播放。下面按先跑起来再接入最后定制的顺序带你走完一遍。能力速览它到底能做什么先看结论再决定要不要折腾。YoRadio 的核心能力如下能力维度你实际能得到的音频解码I2S DAC 与 VS1053b 两种模块二选一可播 MP3、AAC、FLAC 网络流显示20 余种屏幕驱动单色 OLED、彩色 TFT、高分辨率大屏不接屏也可用DSP_DUMMY控制按键、旋转编码器、摇杆、触摸屏、红外遥控可混用联网配置内置 Web 服务器 WiFi浏览器里完成配网、加台、调参智能家居原生支持 MQTT 与 Home Assistant电台列表最多 65535 个电台可导入 KaRadio 的WebStations.txt播放列表附加功能mDNS 发现、屏幕保护、OTA 升级、SD 卡本地播放、中英文界面它同时支持联网WEB模式和 SD 卡本地SD模式可以互相切换断网时也能播卡内音乐。把硬件跑起来从源码到点亮的五步第一步获取源码并确认环境把仓库克隆到本地git clone https://gitcode.com/GitHub_Trending/yo/yoradio环境有两个硬要求先核对省得后面卡住使用Arduino IDE 1.8.19暂不支持 2.x 系列。ESP32 core 版本 ≥ 2.0.0。主工程在yoRadio/目录下入口是yoRadio.ino。第二步生成并修改硬件配置硬件全部由一个文件决定examples/myoptions.h。把它复制到yoRadio.ino同级目录只打开你需要的行来覆盖默认值。项目还提供了一个可视化的引脚表生成工具画好接线就能导出这份文件省去手查引脚有两个宏最容易踩坑务必二选一// 用 I2S DAC 时 #define I2S_DOUT 27 #define VS1053_CS 255 // 255 表示该模块不启用 // 用 VS1053b 时 #define I2S_DOUT 255 #define VS1053_CS 27再按实接屏幕设定#define DSP_MODEL DSP_ST7735不接屏就填DSP_DUMMY。其余旋钮、按键、I2C、红外等引脚也都在这一个文件里。第三步替换字体文件把yoRadio/fonts/glcdfont.c覆盖到 Arduino 的Adafruit_GFX_Library/glcdfont.c。这一步是为了让界面里的天气、WiFi 信号、音量等新图标正常显示替换后重启一次 Arduino IDE。第四步上传数据与固件在 Arduino IDE 里分两步顺序别反工具 →ESP32 Sketch Data Upload先把yoRadio/data/里的网页和配置写进 SPIFFS再点上传把固件烧进 ESP32。第五步配网并加入第一台电台上电后 ESP32 会自建热点yoRadioAP密码12345987用手机或电脑连上访问http://192.168.4.1/填入家里 WiFi。连上后设备会拿到局域网 IP访问http://设备IP/在播放列表里加电台或导入 KaRadio 的WebStations.txt。想省掉这一步也可以提前把SSIDTAB密码写进yoRadio/data/data/wifi.csv再上传数据。接入你的家MQTT 与 Home Assistant接进智能家居后YoRadio 从台面上的播放器变成可以被调度的设备。两条路径MQTT 直连或走 Home Assistant。只开 MQTT 就够用时把examples/mqttoptions.h复制到yoRadio/目录填上 broker 地址、端口和主题前缀。四个主题分工很清晰ROOT/command下发指令如next、prev、toggle、stop、vol 80、play 3ROOT/status回报播放状态ROOT/volume回报当前音量ROOT/playlist回报播放列表地址。也就是说你发一条play 3就能让设备播第 3 台发vol 80直接定音量而不必碰机器。用 Home Assistant 做自动化项目自带 HA 组件。步骤把HA/custom_components/yoradio复制到.homeassistant/custom_components/在configuration.yaml里按HA/example_configuration.yaml加一个media_player实体填name和root_topic重启 Home Assistant在 Lovelace 里加一张 Media Player 卡片即可。接进来之后能玩出具体场景举几个能直接抄的每天早上 7 点自动化触发play并把音量提到 40有人回家时切换到新闻台离家时stop把它和灯联动播放开始时开小夜灯停止后延时关灯。因为 HA 组件支持远程媒体播放本地媒体、Radio Browser、TTS你甚至能语音让 YoRadio 播一段文本播报。按硬件定制外观与手感同一套固件换不同的屏、不同的输入、不同的音频模块成品气质完全不同。按预算和摆放位置来选。显示单色、彩色、大屏单色 OLEDSSD1306、SH1106、N5110 等功耗低、对比高适合信息型收音机床头、书桌都够看。彩色 TFTST7735、ILI9341、ST7789、GC9106 等支持 VU 表、位深和主题配色视觉反馈更足是多数人的默认选择。高分辨率大屏ILI9488、ST7796480×320信息密度高适合客厅、远距离观看。每种屏在yoRadio/src/displays/都有独立驱动配套默认布局放在yoRadio/src/displays/conf/下的displayXXXconf.h想改界面布局就从这里入手。不接屏也可以填DSP_DUMMY后设备照常出声靠网页或 MQTT 控制。控制按键、旋钮、摇杆、触摸、红外控制方式按使用场景选且可以混用按键3 个起步左/中/右加上下键共 5 个操作最直观旋转编码器一个旋钮就能同时管音量和选台手感最好是台机常见配置摇杆一个器件顶替 5 个按键布线更省触摸屏横向滑是音量、纵向滑是选台、点按播放/选台更像手机红外遥控在网页设置里录制按键码最多绑 3 个遥控器适合客厅沙发场景。各输入的引脚都写在myoptions.h具体每个键的行为见仓库根目录的Controls.md。音频模块I2S DAC 还是 VS1053bI2S DAC接法简单、解码交给 ESP32适合求稳的入门方案VS1053b板载解码额外支持左右平衡和图形均衡器且对 SD 卡播放更友好少数绿色板无声音时在myoptions.h里加#define VS_PATCH_ENABLE false即可。两者在固件里互斥就是前面I2S_DOUT/VS1053_CS那对宏。进阶与二次开发源码结构与插件机制想深挖时按目录找就能定位不必通读全量代码yoRadio/src/core/核心逻辑player播放、display显示调度、netserverWeb、mqtt、network、controls各管一摊yoRadio/src/audioI2S/与yoRadio/src/audioVS1053/两套音频解码含 MP3/AAC/FLAC 解码子模块yoRadio/src/displays/屏幕驱动 conf/各屏布局widgets/界面组件yoRadio/src/pluginsManager/插件基类与事件调度yoRadio/src/plugins/放你自己的插件。插件怎么写插件就是继承Plugin基类只重写你关心的事件例如on_setup、on_start_play、on_stop_play、on_track_change、on_btn_click、on_ticker每秒一次。写好后把整个文件夹复制到yoRadio/src/plugins/MyPlugin即被识别同一事件可以挂多个插件。仓库给了三个能直接照抄的样例都在examples/plugins/helloWorld把每个事件都打印一遍适合先看事件流backlightControls按播放状态开关背光deepsleep停止播放时让 ESP32 进入深度睡眠省电。插件机制的完整事件清单见yoRadio/src/pluginsManager/pluginsManager.h里的注释。此外主题配色在examples/mytheme.h界面语言在yoRadio/locale/EN / RU都是低风险的自定义点。上手清单动手前逐项核对Arduino IDE 是 1.8.19ESP32 core ≥ 2.0.0myoptions.h已放到yoRadio.ino同级I2S_DOUT与VS1053_CS只启用了一个DSP_MODEL与实接屏幕一致无屏则填DSP_DUMMY已用yoRadio/fonts/glcdfont.c覆盖 Adafruit_GFX 库的同名文件先传 Sketch DataSPIFFS再传固件通过yoRadioAP完成配网并加入至少一台电台需要远程控制时已复制并填好mqttoptions.h或装好 Home Assistant 的 yoradio 组件有 SD 卡/RTC 需求时相关引脚已在myoptions.h里配好照这份清单走完绝大多数第一次不响的问题都能在上传前被拦下。剩下的就是选一块你喜欢的屏把它挂上墙或摆上桌了。【免费下载链接】yoradioWeb-radio based on ESP32-audioI2S library项目地址: https://gitcode.com/GitHub_Trending/yo/yoradio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。