# Weather_Clock **Repository Path**: IwE_wtF/weather_-clock ## Basic Information - **Project Name**: Weather_Clock - **Description**: esp32天气时钟 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: feature/st7789-gfx - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-29 - **Last Updated**: 2026-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ESP32 天气时钟 基于 ESP-IDF 的联网天气时钟项目,覆盖天气数据获取、时间显示、LVGL 图形界面、ST7789 屏幕驱动、LED 状态提示和 OTA 固件升级。 ## 功能特性 - 基于 ST7789 LCD 显示天气与时钟信息 - 使用 LVGL 构建图形界面,并与网络和 OTA 任务解耦 - 支持 Wi-Fi 联网、天气刷新和 LED 状态提示 - 支持 HTTP OTA 与串口 OTA 两种升级路径 - 使用 `factory`、`ota_0`、`ota_1` 的 OTA 分区布局 - 采用 ESP-IDF 组件化结构组织应用、服务和驱动 ## 架构概览 ```text main └── app_weather ├── ui_service │ ├── ui_task + lvgl_display │ └── lvgl_ui + clock + st7789 ├── network_service │ ├── net_task + weather │ └── button + led + lamp └── ota_service └── ota_task + ota_http + ota_serial + ota_transport ``` `main` 组件只负责启动应用,产品逻辑集中在 `components/app_weather` 中编排,可复用的驱动和服务模块拆分为独立 ESP-IDF 组件。 ## 项目结构 ```text . ├── main/ # app_main 启动入口 ├── components/ │ ├── app_weather/ # 应用编排与服务启动 │ ├── clock/ # 时间与日期逻辑 │ ├── gfx/ # 基础绘图工具和字体 │ ├── lamp/ # LED/灯光控制 │ ├── lvgl_ui/ # LVGL 界面组织 │ ├── network_service/ # Wi-Fi、天气刷新、按钮和状态灯 │ ├── ota_transport/ # OTA 传输抽象 │ ├── ota_service/ # HTTP/串口 OTA 升级流程 │ ├── st7789/ # ST7789 LCD 驱动 │ ├── ui_service/ # UI 任务和 LVGL 显示适配 │ ├── uart_echo/ # 独立 UART 示例组件 │ └── weather/ # 天气数据模型与解析 ├── docs/ # 架构、OTA 和优化文档 ├── scripts/ # 辅助脚本 ├── partitions.csv # OTA 分区表 └── sdkconfig.defaults # ESP-IDF 默认配置 ``` ## 构建方式 ```powershell idf.py set-target esp32s3 idf.py build idf.py flash monitor ``` ## 工程说明 - `docs/architecture.md` 说明模块边界、任务模型和依赖方向。 - `docs/ota.md` 说明 OTA 分区、启动流程和发布产物。 - 部分组件保留 `components/*/test_apps`,用于组件级验证。