VPS 监控的究极形态:用 ESP32 手搓一个桌面探针神器
作为一个手里捏着好几台 VPS 的折腾党,监控面板永远是一个过不去的坎。
从一开始的各种 Web 探针主题,到后来自己写 iOS 小组件,再到终端里的 TUI 界面,总觉得差点意思。要么是每次还得掏出手机、打开电脑才能看,要么就是界面太花哨,不符合极客那种“生人勿近”的高冷审美。
于是,我决定把探针做成实体硬件。
LILYGO® T-Display-S3 开发板,搭载 ESP32-S3 和 1.9 寸 LCD 屏幕
这不仅仅是一个“显示器件”,它更像是 VPS 的实体终端,拿起来就能看,无需任何加载时间,这才是探针的究极形态。
核心硬件:为什么要选 T-Display-S3?
既然是桌面摆件,体积和做工必须是第一位的。如果自己买屏幕、买核心板再自己焊接,不仅麻烦,做出来的东西大概率也是“战损版”。
基于 T-Display-S3 的 VPS 监控探针实体运行效果
所以我直接选择了现成的 LILYGO® T-Display-S3。这块板子对于监控探针这个场景来说,简直是性能过剩:
- 处理器:ESP32-S3R8,Tensilica Xtensa 双核 LX7,跑起来极其丝滑。
- 存储:8MB PSRAM + 16MB FLASH,用来跑代码、存 UI 资源绰绰有余。
- 屏幕:1.9 寸 ST7789V 驱动的 LCD,260 ppi。这显示素质比很多开发板自带的彩屏要好太多了,文字锐利,不发虚。
视觉风格:极简 TUI 的胜利
现在很多嵌入式项目都喜欢用 LVGL 做那种带圆角、带阴影、色彩斑斓的 UI。说实话,看久了真的腻,而且和“监控”这个严肃的定位不符。
我最终的选择是 Sparkline Dashboard / Sparkline TUI 风格。
这种风格主打一个“简单但不简陋”。没有花里胡哨的图标,依靠紧凑的排版、精确的数据和迷你的折线图来传递信息。这才是程序员想要的美学——极简、高效、数据驱动。
实现细节与 AI 辅助开发
这个项目最有趣的部分其实在于代码是怎么写出来的。
由于涉及到底层的驱动绘制和 JSON 数据解析,纯手写显然效率太低。整个开发流程我几乎完全由 AI 代劳,人类只负责“调教”和“审核”:
- 设计阶段:先用 Image2 这类工具,把我脑子里的模糊想法具象化,生成一张模拟实物图。有了目标图,后续的代码实现才能有的放矢。
- 方案落地:把需求和硬件参数扔给 Codex,让它生成基础的代码架构。
- 核心编码:使用 Claude Code (Opus 4.8 级别) 进行具体的代码编写。它不仅写代码,还能进行测试驱动的迭代,能自己改 Bug。
- 烧录工具:ESP-IDF 配合命令行操作,摆脱臃肿的 Arduino IDE,保持开发环境的纯粹感。
功能与交互:这就叫动态效果拉满
虽然只是个初代原型,但体验上已经能“打”了:
- 1秒刷新:数据每秒跳动一次,看着 CPU 波动和流量跑字,有一种赛博朋克的控制感。
- 双按钮切换:板子自带上下两颗物理按键,按一下就能切换监控不同的 VPS,比在下拉菜单里选要爽太多了。
- 滚动显示:屏幕空间有限,长信息(如 CPU 型号)会像跑马灯一样循环滚动,既节省空间又增加了动态感。
后续升级思路
目前的裸板其实已经很有内味儿了,但如果你想把它做成真正的“量产级”产品,还可以继续折腾:
- 3D 打印外壳:设计一个极简的黑色或白色磨砂外壳,只露出屏幕和按钮,逼格瞬间拉满。
- 屏幕升级:如果你嫌 1.9 寸小,完全可以换更大的彩屏,或者上墨水屏做个复古风格(虽然刷新率是个问题)。
总结
对于技术爱好者来说,把虚拟的互联网服务变成一个可以触摸、拿在手中的实物,这种满足感是任何网页面板都无法替代的。
如果你手头正好有闲置的 ESP32 开发板,不妨也试着给自己的 VPS 安装一个“物理心脏”。哪怕只是显示最简单的 IP 和运行时间,放在桌面上,也是一种无声的极客宣言。
(注:本项目参考了 GitHub 上 T-Display-S3 的相关驱动示例及天气站项目思路,在此基础上改写为 VPS 探针逻辑。)
评论已关闭