ESP32-C3 桌面天气时钟(小彭桌面天气时钟)第二版权限固件

2026-09-10 13:22   22   0  

ESP32-C3 桌面天气时钟(小彭桌面天气时钟)

ESP32-C3 | ST7789 IPS | LVGL 9 | 天启天气 | 开源
在线文档https://my.feishu.cn/docx/LUPwdEHYAo4cWLxTk6IckecjnId?from=from_copylink

一款基于 ESP32-C3 + 2.8 寸 ST7789 IPS 彩色屏幕 的自制桌面天气时钟,支持实时天气、时间日期、农历日历、节假日、室内温湿度、闹钟与重要日子、久坐/喝水提醒等功能,适合放在办公桌或床头使用。

设备整机实拍(主页)

屏保界面实拍

未来三天天气实拍

外壳多角度展示

复古小电视造型外壳,多角度实拍:

正面视角侧面视角

背面特写底部视角

一、项目简介

本开源项目提供一个功能完整、可量产的桌面天气时钟软硬件方案:绿色 PCB 采用 Type-C 供电 + 内置 USB 串口,板载 WiFi 模块、按键、蜂鸣器、温湿度传感器与状态灯,固件基于 Arduino + LVGL 9 + FreeRTOS 开发,配网后即可显示实时天气与时间。

二、板子介绍(硬件方案)

2.1 主控与屏幕

项目规格
主控芯片ESP32-C3-WROOM-02(N4 / N8 两版,单核 RISC-V 160MHz,WiFi 2.4G + BLE 5.0)
Flash4MB(N4) / 8MB(N8)
屏幕2.8 寸 ST7789 IPS,320×240 横屏,SPI 四线接口,TFT_eSPI 驱动
供电Type-C(5V),板载 3.3V 稳压,支持 USB 数据 / 烧录
驱动框架LVGL 9.x + FreeRTOS 多任务

2.2 引脚定义

功能引脚说明
TFT SCLK / MOSI / DC / CS / RSTIO2 / IO3 / IO6 / IO7 / IO8SPI 屏幕
TFT 背光IO10LEDC PWM 调光(5kHz / 8bit / 255=最亮)
按键 KEY1 / KEY2IO9 / IO0KEY2 为 strap 脚,自带 45Ω 上拉,勿加外部上拉
DHT11 温湿度IO1单总线,4.7K 上拉
蜂鸣器IO5有源蜂鸣器(音调/音量由硬件决定)
蓝色状态灯IO4联网 / 天气获取状态指示
USB D- / D+IO18 / IO19内置 USB-Serial/JTAG,Type-C 数据
串口 TX / RXIO21 / IO20调试串口 115200

2.3 软件技术栈

  • Arduino IDE + esp32 core 2.0.17-cn(勿用 3.x,会导致 TFT_eSPI 崩溃)

  • LVGL 9.5.0 UI 框架 + TFT_eSPI 2.5.43 屏幕驱动

  • ArduinoJson 7.4.3 天气 JSON 解析

  • 自定义 12px 中文字体(阿里巴巴普惠体 Regular,约 758 字通用字集,含全国城市名 + 天气词 + UI 词,4bpp 压缩仅约 354KB)

  • 自绘 9 个天气图标 + 屏保背景图

三、功能特性

页面内容
开机加载页纯色背景 + 品牌标题 + 进度条 + 百分比 + 加载状态
配网页(AP)WiFi 扫描下拉刷新、二维码(192.168.4.1)、5 步配网提示;可填城市(留空按 IP 定位)、可填天气 API 的 APPID / APPSecret
主页顶部滚动信息条(风向/风力/风速/提示/倒计时);今日天气(图标、当前温度、湿度、气压、最高/最低温);大号时间、日期星期、空气质量(AQI 分级变色)、室内温湿度、城市
未来三天免费 7 日接口,横排展示未来三天:星期、天气图标、天气、温度
日历月历 + 农历 + 节假日(如国庆、中秋、教师节),星期变色,上下翻月
闹钟与重要日子3 组闹钟 + 3 组重要日子(放假/生日/纪念日/节日),弹窗编辑,独立开关
系统信息WiFi 信息(IP/信号)、版本信息、内存/天气刷新/久坐时长、按键使用说明
系统设置WiFi 重配、屏保显示、休眠时间、久坐提醒(时长)、喝水提醒(间隔)、蜂鸣器、屏幕亮度、刷新天气、提醒生效时段、暗色模式、提醒响铃方式
屏保大时间、日期星期 + 农历、天气温度、节假日、室内温湿度、重要日子倒计时

其他特性

  • 未配网直接进入配网页;已配网才显示加载进度条并启动全部提醒功能。

  • 未配网 / 未联网 / 时间未校准时,久坐、喝水、闹钟、日子提醒均不启动。

  • 提醒弹窗 30 秒自动关闭,任意键退出;久坐 / 喝水提醒仅在设置的生效时段内触发(支持跨天)。

  • 暗色模式(护眼模式):可设 关 / 自动(20:00–07:00)/ 手动开,到点自动切换配色。

  • 背光 PWM 亮度可调;蓝色状态灯指示联网 / 天气获取状态(获取天气成功时长鸣一声并常亮)。

  • 所有设置保存到 NVS,断电不丢。

界面实拍

ui_about.jpg

ui_calendar.jpg

ui_home.jpg

ui_screensaver.jpg

ui_setting.jpg

四、版本更新说明(V1.1.2 相对第一版)

更新项第一版V1.1.2 本次更新
闹钟 / 重要日子设置页内置少量固定配置重构为独立页面:3 组闹钟 + 3 组重要日子,独立开关、弹窗编辑(时/分/月/日/名称),支持节假日名称
倒计时新增:主页滚动信息、屏保显示距离最近启用日子的倒计时(如「距放假还有 3 天」)
暗色模式新增:关 / 自动(20:00–07:00)/ 手动开,到点自动切换护眼配色
室内温湿度读取不稳定修复 DHT11 读取逻辑,主页与屏保均显示室内温度 / 湿度
未来三天天气新增:免费 7 日接口,横排展示未来三天天气
提醒响铃仅固定短鸣系统设置可选择短鸣两声短鸣 30 秒(久坐/喝水/闹钟/日子通用)
4N 老用户Flash 容量不足难升级重新编译 4MB 固件(huge_app 分区),4N 老用户可无缝升级
配网页固定城市、无密钥配置支持 WiFi 扫描下拉刷新、城市可留空按 IP 定位、可填客户自己的 APPID / APPSecret

五、烧录与使用

本项目提供 4N / 8N 两个整片固件包(已含 bootloader + 分区表 + App,从 0x0 一次性写入即可),并配套烧录工具包与图文教程。烧录方式:

  • 方式一(推荐新手):乐鑫 Flash Download Tools,芯片选 ESP32-C3,按板子选 4MB / 8MB,固件地址填 0x0,点 START。

  • 方式二(命令行)esptool.py -p COM3 -b 460800 write_flash 0x0 WeatherClock_4MB_factory.bin

  • 方式三(开发者):Arduino IDE 源码编译(esp32 core 2.0.17-cn,8N 用 Default 8MB,4N 用 Huge APP)。

⚠️ 升级固件会清空已保存设置,升级后需重新配网;旧闹钟/日子设置会迁移为默认值,请重新设置。

六、天气 API

使用 **天启天气(易客云)**免费接口(实况 + 7 日预报),支持按 IP 自动定位城市。固件内置演示密钥,开箱即用;产品对外出售时,请在配网页填写客户自己的 APPID / APPSecret,避免共用演示密钥耗尽请求次数。

申请方式:注册 tianqiapi.com → 用户中心获取 APPID / APPSecret → 配网页填写保存。

七、联系我们

作者:彭浩 | 微信:xhgzs97 | 邮箱:2443257717@qq.com

本项目在立创开源硬件平台开源,欢迎点赞收藏、评论区交流。

注意:本开源产品禁止商业使用,上一个版本天气API失效了新的固件已上传,请使用新固件!!!!!