
duRadio双模收音机
简介
基于ESP32的网络、FM 双模式收音机。
简介: 基于ESP32的网络、FM 双模式收音机。开源协议
:GPL 3.0
描述
前言
最近一年复刻了不少开源的收音机4735、4732、56686、7751、wolf各有特色,但是感觉普遍操作有点复杂,特别是对年长者不太友好。另外有的方案虽然可以刷网络收音机,但网络收音机和本地收音机使用时需要刷不同的固件,这都非常不方便。所以有了设计一款用5向按键+编码器操作;网络和本地收音机模式可以无缝切换的收音机想法。硬件设计都是参考了一些开源方案、设计的软件是嘉立创EDA、代码用Arduino IDE, 代码我也不会,主要是AI帮我写的,这些都是免费开源的。所以,硬件和代码你可以随意修改使用,只要不说你是原创就行。目前发现问题:电池ADC读数为0,查了下可能是ESP32 WiFi跟ADC2冲突,需要更换电池检查电压引脚。FM音量为0时,声音没有静音。以上分享,欢迎交流。
硬件ESP32-WROVER,RDA5807FP,1.9寸TFT彩屏
主要特点
双模式操作:FM 收音机 + 互联网收音机
智能音频切换:通过 74HC4053D 自动选择音频源I2S
网页界面:WiFi 配置和电台管理
丰富的显示功能:170x320 彩色显示屏,可显示时间、状态和 RDS 信息
直观的控制功能:5 个按钮 + 旋转编码器
电池供电:3.7V 锂离子电池,带充电电路
高品质音频:I2S DAC 和 MAX98357A 放大器
使用说明
基本操作
开/关机:使用主电源开关
模式选择:长按播放按钮切换模式
音量控制:使用音量+/音量-按钮
电台选择:
FM:使用旋转编码器进行频率微调,使用上一个/下一个按钮进行收藏电台的切换
互联网:使用上一个/下一个按钮切换电台播放列表
播放/暂停:按播放按钮(仅限互联网模式),FM模式播放静音切换
显示信息
顶部:当前时间(通过互联网同步)
模式指示灯:显示FM收音机或互联网收音机
状态:播放/停止,音量
FM模式:频率,信号强度,RDS信息
互联网模式:电台名称,电台编号
底部:控制指令,WiFi状态
网页界面功能
WiFi管理:更改网络设置
电台管理:添加/删除互联网电台
设备控制:通过网页浏览器进行远程控制
状态监控:实时设备状态
固件更新:无线更新(如已启用)


Dual Radio Receiver - Setup Guide
Arduino IDE Setup
1. ESP32 Board Installation
- Open Arduino IDE
- Go to File → Preferences
- Add ESP32 board URL to Additional Board Manager URLs:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - Go to Tools → Board → Boards Manager
- Search for "ESP32" and install ESP32 by Espressif Systems
- Select board: Tools → Board → ESP32 Arduino → ESP32 Wrover Module
2. Required Library Installation
Install via Library Manager (Sketch → Include Library → Manage Libraries)
| Library Name | Author | Version | Purpose |
|---|---|---|---|
| ESP32-audioI2S | schreibfaul1 | Latest | Internet radio streaming |
| PU2CLR RDA5807 | pu2clr | Latest | FM radio control |
| OneButton | Matthias Hertel | Latest | Button debouncing |
| RotaryEncoder | Matthias Hertel | Latest | Rotary encoder handling |
| TFT_eSPI | Bodmer | Latest | Display driver |
| ArduinoJson | Benoit Blanchon | 6.x | JSON parsing |
| NTPClient | Fabrice Weinberg | 3.2.1 | Get time from NTP server |
Manual Installation Required
PU2CLR RDA5807 Library:
# Download from GitHub
git clone https://github.com/pu2clr/RDA5807.git
# Copy to Arduino/libraries/ folder
3. TFT_eSPI Configuration
IMPORTANT: The TFT_eSPI library requires manual configuration.
- Locate the TFT_eSPI library folder:
- Windows:
Documents/Arduino/libraries/TFT_eSPI/ - macOS:
~/Documents/Arduino/libraries/TFT_eSPI/ - Linux:
~/Arduino/libraries/TFT_eSPI/
- Windows:
- Open
User_Setup.hfile in the library folder - Replace the entire content with the configuration provided in the TFT Config artifact
- Save the file
4. ESP32 Board Configuration
In Arduino IDE, set these options:
Board: "ESP32 Wrover Module" Upload Speed: "921600" CPU Frequency: "240MHz (WiFi/BT)" Flash Frequency: "80MHz" Flash Mode: "QIO" Flash Size: "16MB (128Mb)" Partition Scheme: "Huge APP (3MB No OTA/1MB SPIFFS)"
Core Debug Level: "None" PSRAM: "Enabled"
Pin Connection Summary
ESP32-WROVER Pin Assignments
I2S Audio (Internet Radio)
#define I2S_DOUT 25 // Data out
#define I2S_BCLK 26 // Bit clock
#define I2S_LRC 27 // Left/Right clock
I2C Bus (FM Radio)
#define I2C_SDA 21 // Data line
#define I2C_SCL 22 // Clock line
SPI Display (ST7789)
#define TFT_MOSI 23 // Master Out Slave In
#define TFT_SCLK 18 // Serial Clock
#define TFT_CS 5 // Chip Select
#define TFT_DC 2 // Data/Command
#define TFT_BL 4 // Reset
Control Inputs
#define BTN_PLAY_PAUSE 14 // Play/Pause button
#define BTN_PREV 12 // Previous station
#define BTN_NEXT 34 // Next station
#define BTN_VOL_UP 35 // Volume up
#define BTN_VOL_DOWN 36 // Volume down
#define ROT_PIN1 33 // Rotary encoder A
#define ROT_PIN2 32 // Rotary encoder B
System Control
#define AUDIO_SEL 13 // Audio source selector
#define BATTERY_PIN 39 // Battery voltage monitor
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论