在 X 上看到有推友用 esp32 做了一个 Claude 助手,感觉很好玩。 激情下单后和 Claude 奋战一晚做出来了这个简单的页面,可以追踪 GitHub 的动态,显示效果非常不错。

悲剧的是屏幕有坏点,退回换货了。。。
第二块到手,决定从头撸
换货的板子到了,第一块的 Arduino demo 拼接感太重,索性推倒重来——既然 Claude 这么好用,那就上 Rust + ESP-IDF,把这块 Waveshare ESP32-S3-RLCD-4.2(N16R8,4.2 寸反射式 LCD)当个长期项目折腾。
板子规格:
- ESP32-S3-WROOM-1,双核 LX7 @ 240MHz,16MB Flash + 8MB Octal PSRAM
- 4.2 寸 ST7305 反射式 LCD(300×400,无背光、类电子墨水屏观感、刷新比墨水屏快)
- ES7210 ADC + 双 MIC 阵列、SHTC3 温湿度、PCF85063 RTC、18650 电池座、SD 卡槽
一周撸出一个仪表盘
到今天 9 天,commit 40 多个,固件已经从”读个温湿度”长成了一个塞了一堆杂事的桌面摆件:
graph LR
A[ESP32-S3] --> B[ST7305 反射屏]
A --> C[SHTC3 温湿度]
A --> D[ES7210 双麦 + esp-sr AFE]
A --> E[PCF85063 RTC]
A --> F[SD 卡 / SPIFFS]
A --> G[WiFi STA / SoftAP]
G --> H[HTTP server]
H --> I[屏幕镜像 PNG]
H --> J["/system.html"]
H --> K["/recordings"]
H --> L["/settings"]
H --> M["/logs 实时流"]
D --> F
A --> N[GitHub GraphQL]
主页是信息密集仪表盘——大时钟 + 温度湿度 + sparkline 历史曲线 + 内存/Flash/PSRAM 进度条 + 电池 + WiFi + IP,一屏看全:

切到第二页是 GitHub 页——从 GraphQL contributionsCalendar 拉真热力图,对齐真实 weekday,再叠 28 天 commit / active days / streak / PR / 未读 notifications,最后一行是最新事件 + 相对时间(5m ago / 2h ago):

板子自己还起了个 HTTP server。在浏览器打开 IP,能直接看屏幕实时镜像(fb 推 PNG)、改运行时配置、看实时日志、播放录音文件、看完整硬件状态:

想到的能写、能继续做的事
写这篇当总览,技术细节按主题拆了几篇:
- Windows 上撸 ESP32-S3 + Rust 的踩坑实录 —— 路径长度、espup、IDF 镜像那些破事
- 反射屏 + 板上 web server —— 300×400 单色屏怎么塞信息、HTTP 镜屏怎么实现
- ES7210 双麦 + esp-sr:从手搓 VAD 到神经网络 —— 录音 pipeline 三代演进
下一步想搞的:
- ES8311 + 喇叭打通,搞个能播报的语音助手(绕回最初的 Claude 助手设想)
- 接 ASR / TTS / Claude API,做个真”小智”
- 桌面摆件向继续加:日历提醒、邮件未读、IoT 控制面板
固件代码全开源在 GitHub(如果有同款板子的朋友想参考),Windows + Rust + ESP-IDF 的环境坑都记在 README 里,少走我走过的弯路。