ESP32 八度音频频谱显示器 ESP32-8-Octave-Audio-Spectrum-Display

已发布
G6EJD 133 Stars NOASSERTION BOM 完整度: 3/5 教程完整度: 3/5

项目简介

用ESP32和OLED配合FFT显示8个八度音频频域。


这是一个基于ESP32微控制器和OLED显示屏构建的八度音频频谱显示开源项目。其核心功能是通过快速傅里叶变换(FFT)算法,将实时输入的音频信号从时域转换为频域,并以八个标准频段(125Hz、250Hz、500Hz、1KHz、2KHz、4KHz、8KHz、16KHz)的柱状图形式直观呈现。相比早期版本,该项目专门针对ESP32进行了深度优化:利用ESP32更高速的ADC(模数转换器),将频域分辨率提升了4倍,同时显著改善了动态范围。代码层面也经过重构,不仅缩短了程序体积,还提高了处理速度,确保在资源有限的微控制器上实现流畅的实时显示。

标签

项目特点

基于 ESP32 的快速 ADC,实现高分辨率 FFT 频谱分析。
显示 8 个标准八度音频频段(125Hz 至 16KHz)。
优化的代码,处理速度快,代码体积小。
包含自定义字体文件,用于清晰显示频段标签。
支持直接音频信号输入(约 50-100mV pk-pk,无直流偏置)。

技术规格

主控芯片 ESP32
显示屏 OLED
显示内容 8 个八度音频频段(125Hz, 250Hz, 500Hz, 1KHz, 2KHz, 4KHz, 8KHz, 16KHz)
算法 FFT(快速傅里叶变换)
输入信号 音频信号,约 50-100mV pk-pk,无直流偏置
输入方式 直接接入 ADC 端口
字体文件 font.h(需与主程序放在同一目录)

项目资源

资源名称 说明 链接
GitHub 仓库: G6EJD/ESP32-8-Octave-Audio-Spectrum-Display 打开
GitHub 仓库: tobozo/ESP32-Audio-Spectrum-Waveform-Display 打开

物料清单 (BOM)

物料名称 数量 参考价格 备注
ESP32 开发板 1 推荐使用 ESP32 系列
OLED 显示屏 1 通常为 128x64 或 128x32
杜邦线/排针 若干 用于连接 ESP32 与 OLED
音频信号源 1 如手机、电脑音频输出
电阻/电容(可选) 若干 用于信号调理(如需)

所需工具

工具用途是否必需
电脑 编译和烧录固件 ✅ 是
USB数据线 连接开发板到电脑 ✅ 是
焊台 焊接排针或修改引脚(如使用Wemos D1 ESP32) ▢ 推荐
万用表 检查连接和电压 ▢ 推荐

能力画像

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

所需技能

🔧 **动手能力**:需要基本的电子连接能力,如使用杜邦线连接 ESP32 和 OLED 显示屏。 💻 **编程能力**:需要熟悉 Arduino IDE 或 PlatformIO,能够编译和上传代码到 ESP32。了解 FFT 基本原理有帮助。 ⚡ **电子电路**:需要了解如何将音频信号(约 50-100mV pk-pk,无直流偏置)接入 ESP32 的 ADC 端口。可能需要简单的信号调理知识。

适用场景

音频可视化:实时显示音乐或语音的频谱分布。
教学演示:用于讲解 FFT 和频域分析原理。
音频设备调试:辅助检查音频系统的频率响应。
创意装饰:制作动态灯光或显示效果。