声明:本项目使用了大量的 LLM 辅助编码,不是严肃的极客项目,只是大学生心血来潮想做的东西,实际上手后才发现根本不会,只能全靠 Vibe Coding 了。
先看看成果吧~

构想
哪一个大学生不想有一个好看的,简约的桌上课表?我初步的想法就是做一个这样的 Dashboard。实际开始了之后,又希望能在上面加上自己的待办、日程和天气等信息。
架构

软件
数据获取
我的待办/课程 Deadline 放在 Todoist 中,但我的日程又是使用安卓手机的系统日历(为了使用 AI 自动化加日程),HyperOS 又没有一个想 Google Tasks 一样的 API 来让我直接调用,只能另辟蹊径。好在可以 Vibe Coding
我的方案是让 AI 写了一个安卓应用,每一个小时自动发送当日日程到我的服务器上。Todoist 有官方的示例代码且打包成了 Python 库可以直接调用,再也不用折腾微软的 API 了(主包之前用的 MS ToDO)。
心知天气的免费 API 已经足够我使用。
核心模块:如何优雅地把“我的课表”装进墨水屏?
和 AI 对线若干轮后,我完成了我需要的:一个支持当前周数判断的自动课表程序。课表保存在服务器的 .json 文件中。
它的功能非常直白:
- 正在上课时:它会显示当前课程、教室和时间;
- 今天的课上完后:它会自动往前看,预告
[明日课程]。
“Und verloren sei uns der Tag, wo nicht getanzt wurde.” (每一个不曾起舞的日子,都是对生命的辜负。)
如果今天没课,明天也没课,它显示这句尼采的名言。
硬件
墨水屏
购买了微雪电子的4.2寸墨水屏,配套的开发板是 ESP32,内置了 Wi-Fi 和蓝牙,非常适合这个项目。
示例代码中就有基于 Arduino 的 ESP32 驱动库,直接拿来用就行了。我的固件只有一个定时下载数据并更新屏幕显示的功能,代码量非常少。
外壳
我自己设计了一个外壳,用嘉立创的 3D 打印服务打印出来,方便放在桌面上。
结语
在开始这个项目之前,主包只有过一点点 Arduino 的经验,我把这个项目命名为 L-Monitor-Pro,因为原来我还构建了一个基于 ESP32-S3 和 MicroPython 的墨水屏课表,但是只有 1.9 寸的屏幕。
这个项目的成功完全依赖于 Vibe Coding ,尤其是在处理各种 API 和硬件交互方面。通过与 AI 的不断对话和调整,我最终实现了一个功能完善、美观实用的墨水屏 Dashboard。我自己之前完全不懂服务器和安卓开发(其实现在也不懂),python 也不怎么会,完全靠 AI 的帮助才完成了这个项目。
ToDos
- 考试(放假)倒计时
- 更多的名言
- 更丰富的天气信息