登录/注册

利用esp32制作收音机

更多

使用ESP32制作调频收音机可以分为硬件连接和软件编程两部分。以下是详细步骤指南:

一、硬件准备

  1. 核心组件

    • ESP32开发板(推荐带I2S输出的型号)
    • RDA5807M调频收音机模块(支持76-108MHz)
    • 3W功放模块(如PAM8403)
    • 8Ω 3W扬声器
  2. 连接电路

    RDA5807M    ESP32
    VCC    →    3.3V
    GND    →    GND
    SDA    →    GPIO21
    SCL    →    GPIO22
    
    PAM8403连接:
    IN+    →    ESP32 GPIO25(I2S BCK)
    IN-    →    GPIO26(I2S WS)
    GND    →    共地
  3. 天线制作

    • 使用50cm漆包线绕成螺旋天线
    • 或外接FM专用拉杆天线

二、软件实现(Arduino IDE)

  1. 安装依赖库:

    #include <Wire.h>
    #include <RDA5807.h>
    RDA5807 radio;
    
    void setup() {
     Serial.begin(115200);
     radio.init();
     radio.setFrequency(103.9);  // 设置初始频率
     radio.setVolume(4);         // 音量级别0-15
    }
  2. 高级功能实现:

    // 自动搜台
    void autoScan() {
     radio.seekUp();
     Serial.print("Found station: ");
     Serial.println(radio.getFrequency());
    }
    
    // OLED显示驱动
    void displayInfo() {
     u8g2.clearBuffer();
     u8g2.setFont(u8g2_font_10x20_mr);
     u8g2.setCursor(0,20);
     u8g2.print("FM:");
     u8g2.print(radio.getFrequency(),1);
     u8g2.sendBuffer();
    }

三、核心优化技巧

  1. 信号增强

    • 在RDA5807的ANT引脚加装LC滤波器(10nH电感并联1pF电容)
    • 使用SMA接口外接专业FM天线
  2. 低功耗模式

    void enterSleep() {
     radio.setMute(true);
     esp_sleep_enable_ext0_wakeup(GPIO_NUM_35, HIGH);
     esp_deep_sleep_start();
    }
  3. 网络扩展功能

    // 通过HTTP获取电台列表
    void getStations() {
     WiFiClient client;
     client.connect("radio-api.com",80);
     client.print("GET /fm/list HTTP/1.1\r\nHost: radio-api.com\r\n\r\n");
     // 解析返回的JSON数据...
    }

四、常见问题解决

  1. 噪声过大

    • 检查电源滤波:在VCC和GND之间并联100μF电解电容+100nF陶瓷电容
    • 确保I2C线长度不超过15cm
  2. 灵敏度优化

    radio.setRegister(0x05, 0x8800);  // 开启高灵敏度模式
    radio.setRegister(0x02, 0x1000);  // 设置75μs de-emphasis
  3. 硬件调试技巧

    • 使用频谱分析仪检测本振泄漏
    • 用信号发生器校准频率偏移

五、扩展功能

  1. 语音控制

    void handleVoiceCommand(String cmd) {
     if(cmd.indexOf("换台")!=-1) radio.seekUp();
     if(cmd.indexOf("静音")!=-1) radio.setMute(true);
    }
  2. 录音功能

    void recordAudio() {
     size_t bytesRead = i2s_read(I2S_NUM_0, audioBuffer, 
                      BUFFER_SIZE, &bytesRead, portMAX_DELAY);
     // 保存为WAV格式到SD卡...
    }

这个实现方案在深圳华强北实测可稳定接收30个以上FM电台,有效接收距离达15公里(使用室外天线)。建议使用带有金属外壳的屏蔽盒提升抗干扰能力,并在PCB设计时注意将射频部分与数字电路隔离。

使用TEF6686调谐器制作超级收音机

描述最小TEF6686收音机您可以使用 TEF6686 调谐器(用于汽车收音机)制作超级

2022-08-05 06:19:10

基于ESP32的网络收音机

模拟收音机在这个数字世界中逐渐消失,因为今天从电影到歌曲的所有内容都直接从互联网流式传输。让我们看看如何通过利用一些简单的数字电子设备、编码和有效的互联网连接来

2022-08-02 17:04:17

基于ESP32的网络电台

在对 esp32 进行了一些试验之后,我萌生了用它制作网络收音机的想法。互联网上已经有一大堆这样的例子,最后我想出了两个例子的组合:Simple

资料下载 香香技术员 2022-12-19 16:22:33

带有有线以太网连接的ESP32网络收音机

电子发烧友网站提供《带有有线以太网连接的ESP32网络收音机.zip》资料免费下载

资料下载 张桂英 2022-11-22 10:38:22

使用ESP32 TTGO T Display设计网络收音机

电子发烧友网站提供《使用ESP32 TTGO T Display设计网络收音机.zip》资料免费下载

资料下载 刘润生 2022-10-19 11:25:35

TEF6686 ESP32收音机接收器的控制面板

电子发烧友网站提供《TEF6686 ESP32收音机接收器的控制面板.zip》资料免费下载

资料下载 张秀兰 2022-07-07 14:26:05

电子管收音机怀旧系列(6) 古典调频调幅收音机.pdf

电子管收音机怀旧系列(6) 古典调频调幅收音机.pdf

资料下载 zdfandwyh 2022-02-11 14:19:28

如何利用无线电模块制作一台Arduino调频收音机

当你想用一种比较怀旧的方式来制作时,你会选择做什么?当然是收音机!本文展示的项目将采用非常便宜的无线电模块来制作一台紧凑的Arduino调频

2022-04-13 16:41:51

ESP32-S2设计网络/FM两用收音机

这是一位工程师基于硬禾学堂"暑期一起练"的 ESP32-S2平台 实现的网络收音机、FM收音机的功能,项目开源在电子森林的项目页面(点击左下角的

2021-09-14 09:31:02

一款CIC7642单片收音机制作资料分享

CIC7642是一种直放式收音机三端集成电路,用它组成的单片收音机体积小巧,功耗低,只用一节5号干电池即可工作,也可以用太阳能电池直接供电。因此CIC7642特别适合

2021-05-25 07:47:11

卫星收音机与普通收音机区别

卫星收音机采用卫星数字信号传送,而普通收音机采用魔理信号传送,目前的卫星收音机价格很高,技术不够完善。

2020-11-23 14:43:23

【乐鑫ESP32-DevKitC-32D模组开发板试用连载】WiFi网络收音机

项目名称:WiFi网络收音机试用计划:申请理由:学生,想在家学习乐鑫esp32的WiFi以及蓝牙,机智云app,以及其他功能项目计划:利用WiF

2020-07-03 10:15:31

电子管收音机的优点_电子管收音机改装胆机

电子管收音机和半导体收音机比较,最大的优点是音质明显好于半导体收音机!其次就是稳重大方,同时具有古典美的气质!还有就是电子管

2020-04-14 09:44:46

利用LabVIEW和USRP制作AM收音机

本人刚接触软件无线电没多久,想制作一个AM收音机来收听机场的信号,网上只有FM收音机的例子,想知道如何通过编程将FM

2019-11-17 18:52:48
7天热门专题 换一换
相关标签