《搭建小智AI对话盒子》系列之二:ESP32-S3+ 喇叭+麦克风,接线与3.3V引脚踩坑记录

前言

上篇我们搞定了最劝退的 ESP-IDF 环境搭建(MacOS 下子模块卡死、Python 版本打架那一套)。本篇接着往下走------把硬件真正接起来。

说实话,环境是"软"的,卡住能查日志;硬件是"硬"的,接错一根线,板子不响、mic 不识,你连报错都看不全。我这一周里,喇叭要带端子、得补杜邦线和焊锡、3.3V 引脚接反、麦克风 GPIO 对调......每个坑都实实在在踩了一遍。

本系列设计每篇聚焦一个难点,贴关键命令、与大家探讨一下原理、附实测结果,确保真实可复现验证。本文聚焦最容易被忽略但也最容易翻车的:ESP32-S3 接喇叭 + 麦克风时的供电与引脚接线。

提醒一句:如果你只是想先调通代码逻辑,完全可以用 Mac 的麦克风/喇叭模拟(后面会讲),但要做成"能给孩子讲睡前故事的实体盒子",这一步迟早要过。

一、先备齐硬件与辅料

环境好了,得先把手上的东西和"还缺的东西"理清楚。我一开始只有一块 ESP32-S3 开发板,其他都是后面补齐的。

物品 是否必备 我的说明
ESP32-S3 开发板(带 PSRAM) 必备 型号如 N16R8,PSRAM 跑唤醒词模型要用
喇叭(带端子) 必备 一定要买带端子的,不然裸线根本接不上板子
麦克风模块(I2S 数字麦) 必备 数字麦走 I2S,比模拟麦稳
杜邦线(公对公/公对母) 必备 接喇叭端子、麦克风到板子全靠它
焊锡 + 电烙铁 推荐 端子如果松,焊一下更稳,免得接触不良
USB 数据线 必备 供电 + 烧录 + 串口日志三合一

二、供电:别小看 3.3V 这档电

最开始我完全没有单独的供电方案,板上所有东西完全靠 USB 供电(插在 Mac 上烧录顺便供电)。这能跑,但要注意:

  • ESP32-S3 的 I/O 电平是 3.3V,外接麦克风、喇叭模块必须吃 3.3V,不能直接上 5V,否则可能烧模块。
  • 板子上 3.3V 引脚(标 3V3 )不止一个,挑一个稳定的接就行。

同一个功能的 3.3V 引脚板子上可能有多处,某一路如果供电能力或接触不好,换一路 3V3 就通了。如果你也遇到"线都对、就是不识设备",优先怀疑 3.3V 那根线接的是不是稳、是不是接对了引脚。

三、麦克风与喇叭的 I2S 引脚接线

这是重点。ESP32-S3 用 I2S 总线 传音频:麦克风是输入(I2S 从机发数据给芯片),喇叭是输出(芯片发数据给功放)。小智固件通过 board_config.h 里的宏定义来认这些引脚。

官方默认引脚( Simplex 单工模式)

小智常见开发板的默认配置长这样(这是大多数教程给的):

c 复制代码
#define AUDIO_I2S_METHOD_SIMPLEX

#ifdef AUDIO_I2S_METHOD_SIMPLEX
#define AUDIO_I2S_MIC_GPIO_WS   GPIO_NUM_4
#define AUDIO_I2S_MIC_GPIO_SCK  GPIO_NUM_5
#define AUDIO_I2S_MIC_GPIO_DIN  GPIO_NUM_6
#define AUDIO_I2S_SPK_GPIO_DOUT GPIO_NUM_7
#define AUDIO_I2S_SPK_GPIO_BCLK GPIO_NUM_15
#define AUDIO_I2S_SPK_GPIO_LRCK GPIO_NUM_16
#endif

含义对照:

信号 引脚 接哪儿
MIC WS(帧时钟) GPIO 4 麦克风 WS
MIC SCK(位时钟) GPIO 5 麦克风 SCK/BCLK
MIC DIN(数据入) GPIO 6 麦克风 DOUT
SPK DOUT(数据出) GPIO 7 喇叭 DIN
SPK BCLK GPIO 15 喇叭 BCLK
SPK LRCK GPIO 16 喇叭 LRCK/WS

四、最终可用的 board_config.h(实测可复现)

:

c 复制代码
#ifndef _BOARD_CONFIG_H_
#define _BOARD_CONFIG_H_

#include <driver/gpio.h>

#define AUDIO_INPUT_SAMPLE_RATE  16000
#define AUDIO_OUTPUT_SAMPLE_RATE 24000

// 如果使用 Duplex I2S 模式,请注释下面一行
#define AUDIO_I2S_METHOD_SIMPLEX

#ifdef AUDIO_I2S_METHOD_SIMPLEX

#define AUDIO_I2S_MIC_GPIO_SCK  GPIO_NUM_4
#define AUDIO_I2S_MIC_GPIO_WS   GPIO_NUM_5
#define AUDIO_I2S_MIC_GPIO_DIN  GPIO_NUM_6

#define AUDIO_I2S_SPK_GPIO_DOUT GPIO_NUM_7
#define AUDIO_I2S_SPK_GPIO_BCLK GPIO_NUM_15
#define AUDIO_I2S_SPK_GPIO_LRCK GPIO_NUM_16

#else

#define AUDIO_I2S_GPIO_WS GPIO_NUM_4
#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_5
#define AUDIO_I2S_GPIO_DIN  GPIO_NUM_6
#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_7

#endif

#define BUILTIN_LED_GPIO        GPIO_NUM_48
#define BOOT_BUTTON_GPIO        GPIO_NUM_0
#define TOUCH_BUTTON_GPIO       GPIO_NUM_47
#define VOLUME_UP_BUTTON_GPIO   GPIO_NUM_40
#define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_39

#define DISPLAY_SDA_PIN GPIO_NUM_41
#define DISPLAY_SCL_PIN GPIO_NUM_42
#define DISPLAY_WIDTH   128

#if CONFIG_OLED_SSD1306_128X32
#define DISPLAY_HEIGHT  32
#elif CONFIG_OLED_SSD1306_128X64
#define DISPLAY_HEIGHT  64
#elif CONFIG_OLED_SH1106_128X64
#define DISPLAY_HEIGHT  64
#define SH1106
#else
#define DISPLAY_HEIGHT  64
#endif

#define DISPLAY_MIRROR_X true
#define DISPLAY_MIRROR_Y true

// A MCP Test: Control a lamp
#define LAMP_GPIO GPIO_NUM_18

#endif // _BOARD_CONFIG_H_

五、硬件配置清单(实测可复现)

项目 说明
主控 ESP32-S3(带 PSRAM,如 N16R8)
供电 USB / 充电宝 / 手机充电器(5V 进,板载 LDO 转 3.3V)
麦克风 I2S 数字麦,3.3V 取电(绿色线 = 3v3-vdd)
喇叭 带端子喇叭,经杜邦线接 GPIO 7/15/16
MIC I2S WS=4, SCK=8, DIN=6
SPK I2S DOUT=7, BCLK=15, LRCK=16
辅料 杜邦线、焊锡(端子松时加固)

六、下一步与系列预告

硬件接好了,喇叭会响、麦克风会被识别,但故事还没完 ------小智固件有 OTA 自动升级机制,升级时会把你改好的 board_config.h 覆盖回官方默认!我当时就因为这个,辛辛苦苦改对的引脚一升级又白调。

我们现在得阻止它自动升级,并把我们自己改好引脚的代码烧进去。"

下一篇我就写这个最阴间的坑:怎么锁死 OTA、把自定义引脚固化进固件、以及烧录小智的完整流程。

如果你也在折腾 ESP32 音频硬件,欢迎在评论区留下你的接线图或踩坑经历。动手是最好的学习方式,我们一起填坑。

下一篇:《系列之三:烧录小智固件,并锁死 OTA 防止自定义引脚被覆盖》

相关推荐
say_fall4 天前
【Linux系统编程】Linux进程信号:从“外卖到了“到内核里的一张位图
linux·运维·服务器·车载系统·智能硬件
AiNightVision5 天前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
mk0156 天前
单片机同步降压稳压器输出最低1V,关断时损耗3uA
单片机·嵌入式硬件·硬件工程·智能硬件·pcb工艺
领麦微红外8 天前
红外测温传感器 赋能充电桩热安全与运维智能化
运维·安全·产品经理·智能硬件
聆思科技AI芯片9 天前
【AI硬件开发上手教程】怎么使用AI编程实现小聆AI语音控制舵机
人工智能·嵌入式硬件·开源·ai编程·智能硬件
AiNightVision11 天前
星光级 是什么?——星光级摄像机是什么?0.001Lux 照度门槛与选型真相
人工智能·算法·车载系统·自动驾驶·无人机·视频·智能硬件
美摄科技13 天前
智能硬件如何增加一键成片剪辑功能?
数码相机·智能手机·智能硬件
光子物联单片机13 天前
ESP32传感器模块编程实践(一)DIY智能WIFI视频控制小车
嵌入式硬件·esp32·智能硬件·硬件
蒲公英内测分发13 天前
智能家居厂商有多个产品线,包装上的 App 下载入口该共用还是分开?
android·人工智能·数码相机·机器人·智能家居·智能硬件
老孟说禅15 天前
测试中的安全规范
智能硬件