这次要完成的目标很具体:让 ESP32-S3 通过 MAX98357A 音频功放,驱动一只 4Ω/3W 的小喇叭发出声音。最后我不但听到了三声测试音,还让它连续播放了五条从网页生成的语音。
从开始处理喇叭插头,到第一次听见三声测试音,按我的回忆不到半个小时。真正花时间的地方,不是 ESP32-S3 的五根线,而是喇叭和功放之间那个看起来很小的接口问题。
先解决喇叭插头接不进去的问题
我的喇叭原本带着一个白色双针插头,而 MAX98357A 上是绿色螺丝接线端子。白色插头不能直接塞进绿色端子里。
一开始,我还专门买了一个配套端子座,想把两边转接起来。拿到手后才发现,这个端子座根本没有合适的位置安装,也没有解决连接问题。后来我上网查了怎样把插头里的金属端子拆出来,才找到更直接的办法。

这是早期实物中的接口形态记录;图中喇叭的具体规格无法仅凭照片确认,不把它当作后续 4Ω/3W 喇叭的规格证据。
拆端子的操作并不复杂,但必须先断开 USB 和其他电源:
-
用尖头工具轻轻挑起白色塑料外壳里固定金属端子的卡扣。
-
捏住金属端子或插头附近的位置,将金属端子从外壳中抽出;不要只拉电线。
-
拧松功放绿色端子的螺丝,把两根金属端子分别插入扬声器输出的“+”和“-”端。
-
拧紧螺丝,再轻拉检查端子是否松动,并确认裸露金属没有相互接触。
我手上的这只喇叭是红线接“+”、黑线接“-”。这只是本次实物的线色对应关系,不能据此假定所有喇叭都使用同一线色。
本次使用的材料和工具
材料清单:
-
ESP32-S3 N16R8 开发板
-
MAX98357A I²S 音频放大器模块
-
3525 腔体、4Ω/3W 喇叭(型号描述来自本次使用材料,未独立测量外形尺寸)
-
面包板、杜邦线和 USB 数据线
操作工具:
-
尖头工具:用于挑起白色插头内的卡扣
-
小号螺丝刀:用于拧紧 MAX98357A 的绿色接线端子
喇叭标注的 3W 是承受功率规格,不代表当前接法一定输出 3W。MAX98357A 芯片的供电范围为 2.5V~5.5V;官方给出的最高 3.2W 指 5V 供电、4Ω 负载等特定条件。本次 VIN 接 3.3V,属于供电范围内,但不能把喇叭额定功率直接当作实际输出功率。
MAX98357A 和 ESP32-S3 的五根线
功放和喇叭接好后,再连接 MAX98357A 与 ESP32-S3。本次已经验证可用的接线如下:
| MAX98357A | ESP32-S3 N16R8 | 作用 |
|---|---|---|
| VIN | 3V3 | 模块供电 |
| GND | GND | 公共地 |
| BCLK | GPIO16 | I²S 位时钟 |
| LRC | GPIO17 | I²S 左右声道时钟,也常写作 WS |
| DIN | GPIO18 | ESP32-S3 发送给功放的音频数据 |
GAIN 和 SD 在本次装配中暂时不接。BCLK、LRC/WS 和 DIN 是 I²S 数字音频链路中的时钟与数据线;ESP32 的官方 Arduino I²S 文档也使用 BCLK、WS 和数据引脚来描述标准模式的连接。
接线时我保持 USB 断开,五根线接完后,又按照表格逐根复核了一遍。这样做的目的很简单:先把接错电源、接错 GPIO 和松动接触这些低级问题排除掉,再上电。
先短时供电,再上传三声测试音
确认五根线没有接错后,我先做了大约 5 秒的短时供电观察。当时没有发现冒烟、异味、异常噪声或开发板反复重启。这个结果只能说明这一次短时观察没有出现明显异常,不能替代长期温升和稳定性测试。
随后,我上传了低音量的 440Hz 三声测试程序。程序运行后,喇叭清楚地响了三声。第一次听到这三声时,我的感受很直接:我觉得成功了。

这张照片用于记录完成接线后的整体实物状态;具体引脚对应仍以本文接线表和实际板卡丝印为准。
从三声测试音到五条网页语音
三声测试音只验证了开发板、功放和喇叭能够工作。之后,我又让 ESP32-S3 通过 Wi-Fi 获取网页端已经生成的本地 TTS MP3,并连续播放了五条语音。服务器记录、设备串口输出和实际听到的声音能够互相对应。
听到五条网页语音从这只小喇叭里播放出来时,我感受到了一种把这个事情做出来的喜悦。前面那个不起眼的插头问题,到这里终于变成了一条真正能工作的语音输出链路。
当前验证到哪里
-
已验证:喇叭与 MAX98357A 的物理连接。
-
已验证:ESP32-S3 到 MAX98357A 的五线连接。
-
已验证:一次三声测试音播放。
-
已验证:五条网页生成语音的连续播放。
-
尚未验证:麦克风录音、语音识别、AI 对话和完整双向语音链路。
所以,这次完成的是“让它说出来”,还不是完整的语音对话。下一步,我计划接入语音输入,让它能够听见我说的话。
技术资料
-
Analog Devices:MAX98357A/MAX98357B 数据手册——用于核对供电范围、I²S 输入、4Ω 负载下的功率条件,以及 OUTP 与 OUTN 之间连接扬声器的桥接输出方式。
-
Espressif:Arduino ESP32 I²S 文档——用于核对 BCLK、WS/LRC 和数据线的基本角色。
-
Adafruit:MAX98357 I²S 功放引脚说明——作为同芯片参考模块资料,用于交叉核对扬声器桥接输出和引脚含义;它不是本次所用模块的原厂板卡说明书。