基于 ESP32-C3 的四个嵌入式课程设计项目,全部采用 Arduino 框架开发,不使用任何第三方库,所有外设驱动均为底层手写实现。
基于 CS100 超声波模块的测距系统,带蜂鸣器分级报警和 OLED 实时显示。
- 传感器: CS100 超声波测距模块 (中断驱动)
- 显示: SSD1315 OLED (I2C, 裸驱动 + 帧缓冲)
- 报警: 无源蜂鸣器 (LEDC PWM, 三级距离报警)
- 滤波: 中值滤波 (5 点) + 指数移动平均 (EMA)
触摸键盘输入密码,支持设定/验证/错误锁定/管理员串口解锁。
- 键盘: TTP229-LSF 16 键触摸 (I2C)
- 显示: SSD1315 OLED (I2C)
- 指示: RGB 三色 LED 状态指示
- 安全: 3 次错误锁定 30 秒,串口管理员密码解锁
RTC 实时时钟 + WiFi NTP 校时 + EEPROM 闹钟存储。
- 时钟: DS1307 RTC (I2C)
- 存储: AT24C32D EEPROM (I2C, 闹钟持久化)
- 显示: SSD1315 OLED (I2C, 大字体时间显示)
- 按键: TTP229-LSF 触摸键盘 (I2C)
- 校时: WiFi NTP 网络对时
- 闹钟: 可设定/开关/持久存储
LED 点阵滚动显示站名 + 语音合成播报,非阻塞状态机驱动。
- 显示: HT16K33 双芯片 16×16 LED 点阵 (I2C)
- 字库: GT30L32S4W 字库芯片 (SPI, 中文点阵取模)
- 语音: SYN6658 语音合成 (UART, 中文 TTS)
- 按键: TTP229-LSF 触摸键盘 (I2C)
- 架构: 非阻塞报站状态机 (到站/离站自动切换)
- MCU: ESP32-C3 (RISC-V, 160MHz, WiFi/BLE)
- 开发框架: Arduino
- IDE: Arduino IDE / PlatformIO
各项目电路原理图位于 diagrams/ 目录。
├── 项目1(测距仪)/ # 超声波测距仪
├── 项目2(电子密码锁)/ # 电子密码锁
├── 项目3(电子时钟)/ # 电子时钟
├── 项目4(报站器)/ # 公交报站器
└── diagrams/ # 电路原理图