这是一个基于 ESP32-2432S028R
(俗称"廉价黄屏") 开发板的多功能智能显示器。它不仅能够实时显示 GitHub 仓库信息,还集成了天气预报、智能日历、数据可视化图表等丰富功能,为用户提供一站式的信息展示解决方案。
项目采用现代化的 LVGL 图形库构建触摸界面,支持手势操作和多屏幕切换,所有配置均可通过触摸屏完成,无需修改代码。
- 🚀 零代码配置: 所有设置通过触摸界面完成,支持实时配置修改
- 📊 数据可视化: 内置图表系统,支持历史数据趋势分析
- 🌤️ 实时天气: 集成天气API,显示当地天气信息
- 📅 智能日历: 动态日历显示,支持跨月视图和当日高亮
- 🎨 现代化UI: 基于LVGL的流畅动画和渐变效果
- 💾 数据持久化: 自动保存历史数据,支持长期趋势分析
- 实时数据获取: 通过 GitHub API 获取仓库的星标、分支、关注者数据
- 数字滚动动画: 平滑的数字变化动画效果
- 增长趋势分析: 自动计算并显示相比昨日的数据变化
- 历史数据记录: 自动保存每次获取的数据,支持长期趋势分析
- 多模式图表: 支持实时数据、每日数据、增长数据三种显示模式
- 动画图表: 流畅的数据加载和切换动画
- 智能缩放: 自动调整Y轴范围以最佳显示数据
- 交互操作: 长按星标卡片进入图表界面,支持模式切换
- 实时天气: 显示当前温度、湿度、风力等信息
- 位置管理: 支持自定义城市位置设置
- 天气图标: 直观的天气状态显示
- 自动刷新: 定时更新天气数据
- 完整月视图: 显示6周完整日历,包含上月和下月日期
- 智能配色: 本月日期白色显示,跨月日期灰色区分
- 当日高亮: 当前日期黄色高亮显示
- 时区支持: 支持全球时区配置和NTP时间同步
- 手势操作: 支持左右滑动切换界面
- 触摸反馈: 按钮点击、长按等多种交互方式
- 动画切换: 流畅的页面切换动画效果
- 状态指示: 实时显示WiFi连接、数据获取状态
- WiFi 管理: 内置网络扫描、连接和状态监控
- 配置持久化: 使用 ESP32 NVS 存储,断电保持设置
- 串口调试: 丰富的调试命令和状态输出
- 安全配置: 敏感信息独立存储,保护用户隐私
组件 | 规格 | 说明 |
---|---|---|
主控板 | ESP32-2432S028R | 俗称"廉价黄屏",集成WiFi和蓝牙 |
显示屏 | 2.8寸 TFT LCD (320x240) | ILI9341驱动芯片 |
触摸屏 | 电阻式触摸 | XPT2046驱动芯片 |
存储 | 4MB Flash + PSRAM | 支持大容量数据存储 |
接口 | USB-C | 供电和程序下载 |
本项目基于 Arduino IDE 进行开发。在编译上传前,请确保你已完成以下所有环境配置:
打开 Arduino IDE,在“工具”菜单中,确保你的开发板配置与以下设置完全一致,这对于 ESP32-2432S028R
的正常工作至关重要:
设置项 | 值 |
---|---|
Board | "ESP32 Dev Module" |
Upload Speed | "921600" |
CPU Frequency | "240MHz (WiFi/BT)" |
Flash Frequency | "80MHz" |
Flash Mode | "QIO" |
Flash Size | "4MB (32Mb)" |
Partition Scheme | "Huge APP (3MB No OTA/1MB SPIFFS)" |
PSRAM | "Enabled" |
-
打开 Arduino IDE,进入“文件” > “首选项”。
-
在“附加开发板管理器网址”中,填入以下 URL:
[https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json](https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json)
-
打开“工具” > “开发板” > “开发板管理器”。
-
搜索
esp32
并安装由 Espressif Systems 提供的库。
请通过 Arduino IDE 的 “库管理器” 搜索并安装以下所有库的最新版本:
库名称 | 作者 |
---|---|
LovyanGFX |
lovyan03 |
LVGL |
lvgl |
XPT2046_Touchscreen |
Paul Stoffregen |
ArduinoJson |
Benoit Blanchon |
为了保护你的个人信息,本项目使用一个独立的 secrets.h
文件来存放你的 WiFi 密码和 GitHub Token。此文件不会被上传到 GitHub。
-
在你的项目文件夹 (与
GitHub_Display.ino
同级) 下,手动创建一个名为secrets.h
的文件。 -
将以下模板内容复制到你刚创建的
secrets.h
文件中:// secrets.h // 这个文件专门用于存放你的个人敏感信息。 // 重要:此文件不应该被上传到GitHub。 #ifndef SECRETS_H #define SECRETS_H // 在这里填入你的WiFi名称 const char* SECRET_SSID = "你的WiFi名"; // 在这里填入你的WiFi密码 const char* SECRET_PASSWORD = "你的WiFi密码"; // 在这里填入你的GitHub个人访问令牌 (PAT) // 你可以在 [https://github.com/settings/tokens](https://github.com/settings/tokens) 生成它 const char* SECRET_GITHUB_TOKEN = "ghp_xxxxxxxxxxxxxxxxxxxx"; #endif // SECRETS_H
-
将文件中的
"你的WiFi名"
,"你的WiFi密码"
等占位符替换为你自己的真实信息。
完成以上步骤后,请确保你的项目文件夹中至少包含以下文件:
GitHub_Display/
├── GitHub_Display.ino (主代码文件 - 5000+ 行完整实现)
├── secrets.h (你的私密配置文件)
├── lv_conf.h (LVGL图形库配置文件)
├── font_awesome_16.cpp (FontAwesome图标字体)
├── city_data.h (全球城市数据库)
├── README.md (项目说明文档)
└── LICENSE (MIT开源协议)
- 用 Arduino IDE 打开
GitHub_Display.ino
文件 - 连接 ESP32 开发板,确认工具菜单配置正确
- 点击"上传"按钮,等待编译完成
- WiFi连接: 设备启动后会自动使用
secrets.h
中的WiFi信息连接网络 - GitHub设置: 自动使用配置的GitHub Token和仓库信息
- 时区配置: 根据需要修改代码中的时区设置(默认为UTC+8)
- 数据显示: 实时显示GitHub仓库的星标、分支、关注者数量
- 增长指示: 显示相比昨日的数据变化(绿色
↗️ 增长,红色↘️ 下降) - 状态指示: 顶部显示WiFi连接状态和最后更新时间
- 设置按钮: 右上角齿轮图标进入设置菜单
- 刷新按钮: 右上角刷新图标手动更新数据
- 左滑: 从主界面切换到日历界面
- 右滑: 从天气/日历界面返回主界面
- 长按星标卡片: 进入数据图表界面
- WiFi设置: 扫描并连接新的WiFi网络
- GitHub配置: 修改仓库用户名、仓库名和访问令牌
- 天气设置: 配置显示城市位置
- 系统信息: 查看设备状态和版本信息
连接串口监视器(115200波特率)可使用以下命令:
show_time
: 显示当前详细时间信息set_timezone <offset>
: 动态设置时区偏移量test_anim
: 测试数字滚动动画效果
项目包含以下主要界面:
-
主界面 - GitHub数据展示
- 实时星标、分支、关注者数量
- 数字滚动动画效果
- 增长趋势指示器
-
图表界面 - 数据可视化
- 三种显示模式:实时数据/每日数据/增长数据
- 动画图表加载效果
- 智能Y轴缩放
-
天气界面 - 天气信息
- 当前温度、湿度、风力
- 天气状态图标
- 位置信息显示
-
日历界面 - 智能日历
- 完整6周月视图
- 跨月日期显示
- 当日高亮标识
-
设置界面 - 系统配置
- WiFi网络管理
- GitHub仓库配置
- 天气城市设置
- 历史数据: 自动保存每次获取的GitHub数据
- 每日统计: 每天23:59自动保存当日数据
- 增长记录: 检测到数据变化时自动记录
- 配置保存: 所有用户设置持久化存储
- NTP同步: 自动从网络时间服务器同步时间
- 时区支持: 支持全球时区配置
- 失败重试: NTP同步失败时自动重试机制
- WiFi扫描: 自动扫描可用网络
- 连接监控: 实时监控网络连接状态
- 自动重连: 网络断开时自动尝试重连
- 现代化配色: 深色主题配合渐变背景
- 流畅动画: 页面切换和数据更新动画
- 响应式布局: 适配2.8寸屏幕的最佳显示效果
- 图标字体: 集成FontAwesome图标库
- 状态反馈: 丰富的视觉状态指示
编译错误
- 确保已安装所有必需的库
- 检查开发板配置是否正确
- 验证
secrets.h
文件格式
WiFi连接问题
- 检查WiFi密码是否正确
- 确认网络支持2.4GHz频段
- 查看串口输出的连接状态
触摸不响应
- 确认触摸校准是否正确
- 检查硬件连接
- 重启设备重新校准
数据获取失败
- 验证GitHub Token是否有效
- 检查仓库名称是否正确
- 确认网络连接正常
- 使用串口监视器查看详细日志
- 检查NVS存储的配置信息
- 使用串口命令测试各项功能
- 支持更多GitHub数据指标
- 添加多仓库监控功能
- 集成更多天气信息源
- 支持自定义主题配色
- 添加数据导出功能
- 支持OTA无线更新
欢迎提交Issue和Pull Request来改进项目!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启 Pull Request
- witnessmenow/ESP32-Cheap-Yellow-Display - 硬件驱动参考
- LVGL - 优秀的嵌入式图形库
- LovyanGFX - 高性能显示驱动
- ArduinoJson - JSON数据处理
本项目采用 MIT License 开源协议。
⭐ 如果这个项目对你有帮助,请给个Star支持一下!