ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

YoRadio:ESP32 网络收音机 DIY 指南,把几块模块变成全屋的收音机

YoRadio:ESP32 网络收音机 DIY 指南,把几块模块变成全屋的收音机

YoRadio:ESP32 网络收音机 DIY 指南,把几块模块变成全屋的收音机

【免费下载链接】yoradioWeb-radio based on ESP32-audioI2S library项目地址: https://gitcode.com/GitHub_Trending/yo/yoradio

做早餐时不想一直掏手机,又得听早间新闻?这正是开源项目 YoRadio 想解决的问题:一块 ESP32 开发板加一个 DAC,就能做出一台带小屏幕、有 Web 界面、还能全屋远程控制的独立网络收音机。

ESP32 网络收音机的两条音频路线:I2S DAC 还是 VS1053b

YoRadio 的音频输出只有两条路线,且只能二选一。第一条是接 I2S DAC,由 ESP32 走 I2S 总线输出,仓库自带的 audioI2S 驱动负责解码 MP3、FLAC、AAC 等格式;第二条是接 VS1053b 模块,解码交给芯片自带 DSP 完成,ESP32 只负责喂数据流,还附带硬件均衡器。两者不能同时使用,README 里专门提醒:把没用的那条路线的引脚在myoptions.h里设为 255 来禁用。

跑起来之后,这台小机器的能力超出预期:歌单最多可容纳 65535 个电台,支持直接导入 KaRadio 的WebStations.txt;插上 SD 卡可以离线播放本地文件,WEB/SD 模式切换无需重启。Wi-Fi、电台、均衡器、天气、屏幕参数全部通过内置 Web 界面配置,固件升级也可以直接在/update页面上传 bin 完成。

硬件选型与接线:从洞洞板到整机

必备件只有两样:一块 ESP32 开发板(WROOM、WROVER、S3 均可)加一个音频模块。屏幕的选择面很宽:

  • SSD1306 / SH1106:128x64 OLED(I2C)
  • ST7735:1.8 寸 160x128 TFT;ST7789:2.4 寸 320x240
  • ILI9341:3.2 寸 320x240;ST7796 / ILI9488:3.5 寸 480x320
  • 交互界面也可以整体交给 Nextion 屏完成

控制方式同样随你:三个轻触按键、旋转编码器、摇杆、红外遥控器或电容触摸屏。

搭建流程固定为四步:先用git clone https://gitcode.com/GitHub_Trending/yo/yoradio克隆仓库,在 Arduino IDE 中打开 yoRadio 文件夹;IDE 请用 1.8.19(2.x 暂不支持),ESP32 core 需要 2.0.0 及以上;开发板设置里把分区方案改为 Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) 即可。硬件差异全部写在 examples/myoptions.h 中,源文件options.h不可修改。先上传 Sketch Data(Web 页面存放在 SPIFFS 里),再烧录程序,上电后连接yoRadioAP热点(密码 12345987),打开 192.168.4.1 填入 Wi-Fi 账号密码就能开工。

接入 Home Assistant 与插件系统

如果你已经在跑 Home Assistant,YoRadio 提供现成组件:把仓库中的HA/custom_components/yoradio复制到.homeassistant/custom_components/,参照 HA/example_configuration.yaml 添加实体,重启后收音机就成了面板上的媒体播放器,可以播放、切台、调音量,还支持本地文件与 TTS 等远程媒体。底层是 MQTT 协议,不装 HA 也没关系——把examples/mqttoptions.h拷入项目目录改好 topic,就能自行下发prev、next、vol x等命令;同一套命令在 Telnet、UART 和 HTTP GET/POST 上同样可用。

代码侧则预留了插件机制:继承Plugin类并覆写对应回调,把新类放进yoRadio/src/plugins/MyPlugin目录即可被 pluginsManager 加载。examples/plugins/ 里有可直接参考的样例,比如deepsleep空闲休眠、backlightControls随播放状态调节背光。

如果你手边正好有一块 ESP32、也能拿动烙铁,不妨从确定音频路线(I2S DAC 或 VS1053b)开始,再挑一块屏幕把线接上,一天之内就能听到第一个电台。实在不想要屏幕,把DSP_MODEL设为DSP_DUMMY,它照样是一台无头网络收音机。

【免费下载链接】yoradioWeb-radio based on ESP32-audioI2S library项目地址: https://gitcode.com/GitHub_Trending/yo/yoradio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进