周末小制作:用 ESP32 做一块桌面信息屏
图:乐鑫官方 ESP32-DevKitM 产品图(外链)
桌上一直缺一块能瞄一眼就知道时间、天气和今天日程的小屏。手机当然能干这事,但一块常亮的专用小屏有种老式仪表的踏实感。于是花了一个周末,用手边一块吃灰的 ESP32 开发板加一块 2.8 寸 SPI 屏攒了一个。
硬件与接线
主控是 ESP32-DevKitM,自带 Wi-Fi 和蓝牙,对这种联网小终端来说几乎是为它量身定做的。屏幕走 SPI 接口,七根线接完,先用杜邦线在面包板上点亮确认驱动没问题,再焊到洞洞板上。整个 BOM 不到一杯咖啡的钱,贵的是时间。
软件:刷新策略比功能重要
功能本身很简单:NTP 对时、天气 API 每半小时拉一次、日历每天同步。但真正花时间的是刷新策略——全屏刷新会闪,局部刷新又容易残影。最后用了双缓冲 + 脏区重绘,只重画变化的区域,观感立刻顺滑了。夜间十一点后自动把背光降到 5%,不然它会在黑暗里发光发得理直气壮。
功耗与稳定性
常亮屏 + Wi-Fi 常开,整机功耗大约 0.8W,一年电费可以忽略。稳定性方面加了看门狗和断线重连,跑了三周没有死机过。唯一翻车的是第一次把天气 API 的 key 硬编码进了固件,后来改成配网页面写入 NVS——这种小东西也是东西,习惯要从小处养成。
成品谈不上精致,但每天早上坐下来瞄到它显示“今天有雨”,顺手拿伞的那一下,还是觉得这个周末花得值。