惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
博客园 - 司徒正美
美团技术团队
Last Week in AI
Last Week in AI
月光博客
月光博客
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
U
Unit 42
T
Tailwind CSS Blog
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
Google DeepMind News
Google DeepMind News
H
Help Net Security
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
Netflix TechBlog - Medium
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
Y
Y Combinator Blog
罗磊的独立博客
D
DataBreaches.Net
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
博客园_首页
博客园 - 三生石上(FineUI控件)
G
Google Developers Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
博客园 - 【当耐特】
Engineering at Meta
Engineering at Meta
博客园 - Franky
M
MIT News - Artificial intelligence
B
Blog
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
S
SegmentFault 最新的问题
F
Fortinet All Blogs
阮一峰的网络日志
阮一峰的网络日志
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
基于自制电子墨水屏的万年历 - 少数派
2026-02-03 · via 少数派

Matrix 首页推荐

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 
文章代表作者个人观点,少数派仅对标题和排版略作修改。


在之前的文章中,我介绍了自己花费近两年时间制作了一个电子墨水屏的经历。

系统架构介绍

针对没有阅读过上一篇文章的读者,我再来介绍一下整个项目的软硬件构成,并且公开本项目的开源地址(GitHubGitee)。

硬件结构

整个方案的硬件部分由四部分构成,分别是:

  • esp32 主控:整个系统的大脑,接收数据、处理数据、发送显示数据。这里我使用的是 esp32s3,内存大一些才能创建 400x300 的缓存区。
  • 电子墨水屏驱动板:连接开发板和墨水屏之间的桥梁,在淘宝上购买的,搜索「兼容微雪电子墨水屏驱动」。
  • 400X300 电子墨水屏:用于最终内容呈现的屏幕,在淘宝上购买的超市退役的杂牌墨水屏,只要兼容微雪电子墨水屏驱动就可以,咸鱼上还可以买到类似的屏幕。
  • 3D 打印外壳:把乱糟糟的走线,放在一个 3D 打印外壳里,更像一个标准化的产品。
  • 若干杜邦线:用来连接以上的硬件模块。

软件系统

  • 软件系统,依然采用的是我熟悉的 MicroPython 来开发,构成也比较简单:
  • main.py 文件:项目主入口,可以在这里修改墨水屏的运行模式
  • wifi.py 文件:Wi-Fi 联网和时间同步模块,用户根据配置的网络信息连接互联网,并且同步系统时间。
  • wificonfig.json 文件:用来存放 Wi-Fi 名称和密码,手动更新模式下,还可以通过同一个网页来更新 wifi 名称和密码。
  • ink_calendar.py 文件:全自动更新模式的万年历程序。
  • ink_websocket.py 文件:被动更新模式和手动更新模式,需要的 esp32 创建服务器的程序。
  • ink_display.py 文件:一个通用的将信息显示在墨水屏上的程序。
  • epaper4in2.py 文件:墨水屏的驱动程序。
  • ink_index.html 文件:手动更新时,需要使用到的本地 HTML 文件。

第一篇文章发出后,很多读者反馈是否可以开源,后续我也发现这个项目有很多可以改进的地方,所以近期又花时间做了一轮升级迭代。

升级之后,这个墨水屏可以使用多种方式来进行更新,比如:

1、自动更新模式:每天早上 8 点,自动更新今天的万年历信息;

2、被动更新模式:收到短信后,通过 iPhone 快捷指令自动同步信息到墨水屏;

3、手动更新模式:在一个网页上,输入文字或上传图片进行更新。

接下来,我就依次介绍这三种模式:

自动更新模式:万年历

效果展示

image.png

原理

前一天,服务端(现在其实就是在我的电脑上)会自动根据当前日期请求相关接口,获取次日的万年历信息,并进一步绘制在一个图片上。如下图:

生成次日的万年历图片.png

服务端会继续处理这张图片为墨水屏可读取的数据,并上传到一个公开的 OSS 地址上,每个客户端(也就是墨水屏设备)会在每天早上八点,根据当前日期请求对应的 OSS 地址,获取图片数据后,渲染显示在墨水屏上。

在此模式下,生成图片的过程是在服务端进行(不论有多少客户端服务端只生成一次),客户端只需要联网后,定时请求对应地址即可实现墨水屏的更新。

动更新模式:收到短信自动同步到墨水屏

效果展示

image.png
image.png

原理

电子墨水屏的 esp32 主控启动服务器模式,准备接收和处理 HTTP 或 Websocket 请求。然后在 iPhone 上创建一个快捷指令,用于将传入快捷指令的信息发送到 esp32 主控服务器上。

用于将数据发给墨水屏的快捷指令.png

然后我们在 iPhone 上继续创建一个快捷指令的自动化:收到短信之后,自动通过上一步的快捷指令发送到 esp32 主控服务器上。

由于 esp32 的性能很差并不具备图片处理能力,所以 esp32 会将收到的数据发给一个云端的「函数计算」服务,该服务会将收到的数据处理为图片数据返回给 esp32,最终显示在墨水屏上。

此模式还有更广的使用场景,比如把 iPhone 上的待办自动同步到墨水屏、把收到的邮件信息同步等,凡是快捷指令可以获取到的信息,都可以进行同步。

但此模式也有不足之处:由于在手机端发送的不是图片数据,esp32 主控也没有图片处理能力,所以需要一个实时在线的服务端来做这个事情,虽然这个服务端的函数计算成本还算低廉,但是毕竟还是多了额外的成本。

手动更新模式:输入文字或上传图片进行更新

效果展示

image.png
image.png

原理

在思考如何更好解决「服务端生成图片数据」问题时,有一天灵光闪现:其实现在手机的性能都很强了,为什么不在手机端生成图片数据后再发送呢?

同样的,在电子墨水屏的 esp32 主控上启动服务器模式,准备接收和处理 HTTP 或 Websocket 请求。客户端这边打开一个网页(也可以叫单页应用),在这个网页上可以通过局域网连接墨水屏系统,输入文字生成图片并投屏,或者上传图片进行合适截取后并投屏。

image.png

在这个投屏的过程中,前端网页已经使用 JS 的能力对文字和图片做了处理,将图片数据通过 Websocket 的方式传递给 esp32 主控。esp32 主控在收到图片数据之后,会将其保存为本地目录的一个文件,然后系统重新加载本地目录里的图片数据进行显示。

此模式不需要额外的云端服务,但也有不足之处:因为我没有解决 HTTPS 环境下,请求 HTTP 本地资源的问题,所以没有办法将这个单页应用发布为一个在线服务。使用者需要下载一个 HTML 文件打开使用,安卓设备在文件系统里直接打开,iPhone 用户还需要另外安装一个软件(如:HTML Viewer),才能打开本地 HTML 文件。

结语

这个墨水屏项目前前后后延续了很长时间,每当把这个项目放下,在其他方面学习到一些新东西之后,又会回来反哺这个项目并继续迭代改进。在这个过程中,我也体验到了非常强的成就感。

目前整个项目还有很多可以优化的点,但是由于我并不会把他做成一个真正的「产品」,所以可能会以目前的进度结束这个项目了。

当下可以优化的点包括:

  • 解决 HTTPS 环境下请求 HTTP 资源后,就可以上线一个通用的单页应用。客户端不需要下载 HTML 文件,只需要打开在线网页,输入 IP 就可以进行更新。
  • esp32s3 主控的成本还是有点高,如果不用建立缓存区的方式来更新墨水屏,可能可以用更便宜的 esp32c3。
  • 目前 3D 打印的外壳只有遮丑的作用,占用的空间也较大,可以优化走线布局缩小体积。
  • 目前供电方式为 USB 供电,如果只用万年历模式的话,其实只要每天早上八点需要消耗执行动作,其他时间都可以进入深度睡眠,这样的话就可以只用电池供电。

感兴趣的朋友欢迎在此基础上继续探索。

> 关注 少数派小红书,感受精彩数字生活 🍃

> 实用、好用的 正版软件,少数派为你呈现 🚀