ESP32S2网络收音机/FM收音机 ESP32S2_Network-Radio_FM-Radio

⭐⭐☆☆☆ (2/5) 已发布
DaMiBear 46 Stars 未知 BOM 完整度: /5 教程完整度: /5

项目简介

基于ESP32S2,用ESP-IDF、ESP-ADF、LVGL实现网络和FM收音机。


这个项目是一个基于ESP32-S2芯片的双模收音机,同时支持网络电台和传统FM电台收听。核心硬件采用ESP32-S2-MINI-1模组,搭配RDA5807M FM收音模块和0.96寸OLED显示屏,通过四个独立按键实现全部交互操作。在网络电台模式下,设备可以连接WiFi,通过HLS协议播放网络音频流;在FM模式下,则覆盖88MHz至108MHz的常规广播频段。项目技术栈相当丰富,底层基于乐鑫ESP-IDF v4.2开发环境,音频处理依赖ESP-ADF v2.3框架,显示部分使用了LVGL v8.1图形库并替换了旧版本,还集成了ESP-IOT-SOLUTION中的SSD1306驱动和按键库,以及第三方RDA5807M驱动库。开发者特别针对ESP32-S2仅有320K DRAM、无PSRAM的硬件限制做了大量内存优化,包括调整LVGL缓冲区大小、精简WiFi IRAM配置、修改分区表等,最终在资源受限的平台上实现了流畅的双模切换和中文显示。这个项目解决了在低成本、低内存的MCU上同时运行网络音频流解码、FM收音、图形界面和WiFi协议栈的难题,非常适合嵌入式爱好者学习ESP32音频开发、LVGL图形界面移植,或者DIY一个兼具网络和传统收音功能的桌面小设备。

标签

项目特点

双模式收音:支持网络电台(HLS协议)和FM调频广播(88MHz~108MHz)两种收听模式
图形用户界面:使用LVGL v8.1嵌入式GUI库,通过0.96寸OLED(SSD1306,SPI接口)显示电台信息、时间等
按键交互:四个独立按键实现模式切换、节目/频段切换、静音功能,支持单击、双击、长按识别
时间同步:通过SNTP协议自动校准时间,并在屏幕上显示当前时间
模块化设计:集成ESP-ADF音频处理框架、ESP-IOT-SOLUTION驱动库、ESP-IDF-LIB外设库等多个开源组件
内存优化:针对ESP32S2仅有320K DRAM(无PSRAM)的硬件限制,进行了大量内存优化配置

技术规格

主控芯片
DRAM
FM模块
显示屏
按键
网络协议
音频解码
音频输出
开发框架
Flash大小
CPU频率

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
ESP32-S2-MINI-1模块 (ESP32-S2-FH4) 1 320K DRAM,无PSRAM
RDA5807M FM收音模块 1 I2C接口,88~108MHz
0.96寸OLED SSD1306 1 SPI接口,128x64像素
轻触按键 4 GPIO1, GPIO2, GPIO3, GPIO6
杜邦线 (作为FM天线) 1 约10-20cm
功放芯片 (待确认型号) 1 用于音频输出
小功率扬声器 1 或耳机接口
若干 - 根据原理图
项目提供的开发板 1 硬禾活动提供的定制板

所需工具

工具用途是否必需
VS Code + ESP-IDF插件 开发环境,用于编辑、编译、下载、调试 ✅ 是
焊台/烙铁 焊接元件和排针 ✅ 是
USB数据线 连接开发板与电脑,供电和下载程序 ✅ 是
杜邦线 作为FM天线 ✅ 是
串口调试工具 查看日志输出 ▢ 推荐

能力画像

记忆与知识检索
2/5
逻辑推演
3/5
表达与交流
1/5
感知与观察
2/5
数理与计算
2/5
动手与操作
3/5
狂热与坚持
4/5
创造与创新
3/5

所需技能

🔧 **动手能力**:需要焊接排针、连接杜邦线等基本硬件操作;了解ESP32-S2开发板的引脚定义和接线 💻 **编程能力**:需要掌握C语言编程基础;熟悉ESP-IDF框架的项目结构、CMakeLists和Kconfig配置;了解FreeRTOS多任务编程概念;了解LVGL GUI库的基本使用 ⚡ **电子电路**:需要了解I2C和SPI通信协议;了解音频功放电路基本原理;了解FM收音模块RDA5807M的基本工作原理

适用场景

嵌入式学习实践:适合有一定C语言基础、希望学习ESP-IDF和ESP-ADF框架的开发者
音频处理项目:可作为网络音频流和FM收音的参考设计
智能家居/桌面设备:可作为带显示屏和音频输出的交互式设备原型
开源硬件活动:该项目源自硬禾暑期一起练活动,适合参与类似学习活动的开发者