ESP32 八度音频频谱显示器
ESP32-8-Octave-Audio-Spectrum-Display
已发布
项目简介
用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(需与主程序放在同一目录) |
项目资源
搜索资源
物料清单 (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 和频域分析原理。
音频设备调试:辅助检查音频系统的频率响应。
创意装饰:制作动态灯光或显示效果。