Skip to content

3.1 项目功能总览 ​

这节要搞懂:要做什么、要买什么、哪个引脚接哪。 需要基础:第二章

一、功能清单 ​

#功能用到前面哪节课
1显示时间和日期2.4 屏幕
2联网自动校时,永远准3.5
3显示室内温湿度2.3 I2C
4显示网上拉的天气3.6
5手机蓝牙设闹钟2.8 BLE
6MQTT 远程设闹钟 / 上报数据3.6
7闹钟用喇叭播放铃声2.6 / 2.7 I2S
8天黑背光自动变暗2.5 ADC + PWM
9断电后设置不丢3.4 NVS
10网页配网,换地方不用重烧固件3.8
11SD 卡存历史数据和铃声3.9
12OTA 远程升级固件3.8
13语音命令2.6 / 2.7 PDM 麦克风

这台设备没有按键

所有设置都通过手机或者电脑完成 —— 蓝牙(近距离直连)或 MQTT(远程,走网络)。

二、买什么(约 ¥150) ​

器件型号价格备注
开发板ESP32-S3-DevKitC-1¥45⭐ 认准 S3,别买成老款 ESP32
屏幕2.8寸 ST7789 240×320 SPI¥45接口选 SPI,看清驱动 IC
温湿度AHT20 或 SHT30¥8I2C 接口
光敏光敏电阻 + 10kΩ 电阻¥1接 ADC1
功放NS4168 模块¥10I2S 输入,闹铃靠它
喇叭4Ω 或 8Ω 小喇叭¥5接功放输出
麦克风LMD4030T261-OA1¥5PDM,语音命令
SD 卡microSD 32GB 以下¥15FAT32,存数据和铃声
其他面包板 + 杜邦线 + USB 线¥15

合计约 ¥150。

三、引脚分配表 ⭐ ​

这张表是整个项目的地基,代码里所有引脚宏都照它填。

屏幕(SPI,软件模拟)

功能ESP32-S3 引脚说明
屏幕 SCLGPIO12时钟
屏幕 SDA(MOSI)GPIO11数据
屏幕 CSGPIO10片选
屏幕 DCGPIO5区分命令和数据
屏幕 RSTGPIO4复位
屏幕背光 BLKGPIO17PWM 调亮度,经三极管驱动

温湿度和光敏

功能ESP32-S3 引脚说明
AHT20 SDAGPIO14I2C 数据
AHT20 SCLGPIO13I2C 时钟
光敏电阻GPIO1⭐ ADC1_CH0,联网后仍可用

音频(I2S)

功能ESP32-S3 引脚说明
功放 BCLKGPIO46I2S 位时钟
功放 LRCGPIO9I2S 声道选择
功放 SDATAGPIO8I2S 音频数据
功放 CTRLGPIO38使能,拉高才出声
麦克风 CLKGPIO3PDM 时钟
麦克风 DATAGPIO42PDM 数据

LED 和按键

功能ESP32-S3 引脚说明
LED1 / LED2 / LED3GPIO18 / 39 / 21输出 1 亮
KEY1GPIO45开内部下拉,按下读 1
KEY2 / KEY3GPIO47 / 48开内部上拉,按下读 0

这几个引脚为什么这样选

  • 光敏必须用 ADC1 的脚(GPIO1) —— ADC2(GPIO11-20)开了 WiFi 就失效(2.5 讲过)
  • 屏幕用 10/11/12 —— 这组正好是 S3 的 FSPI 引脚,以后想换成硬件 SPI 不用改板子
  • 背光经三极管驱动 —— 2.8 寸屏背光电流大,直接接 GPIO 会超过 20mA 上限
  • 避开了 GPIO 26-32(接内部 Flash,动了就起不来)、GPIO 43/44(串口日志)、GPIO 19/20(USB)
  • GPIO 3 / 45 / 46 是 strapping 脚,开机瞬间的电平会影响启动模式 —— 这里接的都是麦克风时钟、按键这类开机时不会被强行拉住的东西,所以能用(2.2 讲过)

四、先别急着写代码 ​

建议顺序:

  1. 只接屏幕 → 用 2.4 的代码点亮它 ✅
  2. 只接传感器 → 用 2.3 的代码读出温度 ✅
  3. 只接功放和喇叭 → 用 2.7 的代码放出声音 ✅
  4. 光敏接上 → 用 2.5 的代码打印读数 ✅
  5. 都验证过了,再往下走

为什么要这样

如果一上来就把所有功能堆到一起,出问题时你分不清是哪个模块的毛病。

一次只验证一件事,是嵌入式调试最重要的习惯。

本节要点 ​

  • 8 个功能,全部用到前两章的知识
  • 器材约 ¥150,开发板认准 ESP32-S3
  • 引脚分配是地基,光敏必须用 ADC1 的脚(GPIO1);功放除了 I2S 三根线,还要一根 CTRL 使能脚
  • 一次只验证一个模块,别一起接

动手试试 ​

  1. 下单买齐器材。
  2. 拿到板子后用第二章的代码逐个验证:屏能亮、传感器能读、按键有反应。