# WaveClock-IO **Repository Path**: panzi/wave-clock-io ## Basic Information - **Project Name**: WaveClock-IO - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-02 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WaveClock-IO ## 项目概述 WaveClock-IO 是一个基于 ESP32-S3 的智能时钟项目,使用 LVGL 构建触摸屏 UI,显示时间、日期与电池状态,并提供时间/日期与亮度设置。 ## 主要功能 - 实时时钟显示(小时/分钟/秒) - 日期与星期显示 - 电池电压与电量百分比 - 亮度档位调节 - 触摸屏交互与设置菜单 ## 技术栈与硬件 - MCU: ESP32-S3 - GUI: LVGL v8.3.11 - 显示驱动: Arduino_GFX_Library (CO5300 屏) - 触摸驱动: CST92xx (I2C) - RTC: PCF85063 - UI 设计: SquareLine Studio 1.6.0 ## 目录结构 ``` WaveClock-IO/ ├── platformio.ini # PlatformIO 配置 ├── src/ │ ├── waveClock.ino # Arduino 主程序入口 │ ├── pin_config.h # 硬件引脚配置 │ ├── AGENTS.md # 项目说明/规范 │ └── src/ │ ├── drivers/ # 硬件驱动模块 │ │ ├── I2C_Driver.cpp/h │ │ ├── TCA9554PWR.cpp/h │ │ └── battery_manager.h │ └── ui/ # SquareLine 生成的 LVGL UI │ ├── ui.c/h │ ├── ui_helpers.c/h │ ├── ui_events.h │ ├── ui_* # 各界面源码 │ ├── ui_font_* # 字体资源 │ └── ui_img_* # 图片资源 └── .vscode/ # VS Code 配置 ``` ## 构建与上传 ### Arduino IDE 1. 打开 `src/waveClock.ino` 2. 选择开发板: ESP32-S3 Dev Module 3. 选择正确的串口 4. 点击上传 ### PlatformIO ```bash pio run pio run --target upload ``` ## 引脚配置 引脚定义在 `src/pin_config.h` 中: - QSPI 显示屏: `LCD_CS`, `LCD_SCLK`, `LCD_SDIO0-3`, `LCD_RESET` - 触摸屏 (I2C): `TP_INT`, `TP_RESET` - I2C 总线: `IIC_SDA`, `IIC_SCL` - 电池 ADC: `BAT_ADC_PIN` ## UI 修改流程 1. 使用 SquareLine Studio 打开工程进行界面修改 2. 导出 UI 代码到 `src/src/ui/` 3. 重新编译并上传 ## 依赖库 - `lvgl` - `Arduino_GFX_Library` - `SensorPCF85063` - `TouchDrvCSTXXX` - `HWCDC`