展示 HN: PaperMono,e-ink冰箱磁铁购物清单与移动网页
M5Stack PaperMono 电子纸设备的固件。它将该设备变成一个家庭购物清单,放在冰箱上并与手机网页应用保持同步。PaperMono 是一款配备 3.97 英寸 480×800 电子纸触摸屏的 ESP32-S3。这项目是一个完整的、可工作的应用程序,代码量小,大约 2400 行 C++。你可以将其用作购物清单,或者作为你自己 PaperMono 固件的起点。PaperMono 上展示的内容通过适当的刷新处理。点击、滚动和输入都使用快速的部分更新,无需闪烁。每 10 次部分更新后强制进行一次完整刷新,以降低残影并保护面板。灰色按照 1 位点模式绘制,因此在两种刷新模式下看起来相同。可用的触摸用户界面在电子纸上。点击、滑动和侧面按钮都有效。有一个屏幕键盘,仅在输入时重绘变化的部分,并会建议你以前添加的物品。低功耗网络。Wi-Fi 仅在同步时开启:每小时一次,更快则在你点击屏幕、上次同步超过 5 分钟过时或者在编辑之后。其他一切在离线环境下工作,编辑会在闪存上排队,等待下一次同步。整洁的电源处理。电源按钮关闭,USB 电源停止时备用深度睡眠。设备在安全电池电压下自动关机。前灯默认关闭。文档化的引导。电源IC、IO 扩展器、面板和触摸控制器以已知良好的顺序引导。docs/hardware.md 提供引脚图、I²C 地址和过程中发现的特点。如何工作 该设备按过道分组显示列表,顺序为你在商店中行走的顺序。点击项目以勾选,或使用屏幕键盘添加新项目。其他人则通过他们的手机添加物品。中间的小服务器存储列表。它记住每个物品属于哪个过道,并可以选择性地将全新的物品分类到正确的过道。 flowchart LR device["PaperMono<br/>(固件/)"] -- "Wi-Fi, 每小时或在点击<br/>和每次编辑后" --> server phone["手机浏览器"] -- HTTP --> server subgraph server["服务器 (server/)"] api["FastAPI + SQLite"] web["网页 UI"] end api -. "仅新项目名称" .-> claude["Claude 代码 CLI<br/>(可选)"] 加载 按过道分组,按行走顺序排列。你在手机上设置过道顺序后,两个屏幕都将遵循。同样也能离线工作。列表、建议、勾选和添加都在没有连接的情况下工作,包括在没有信号的商店内。记住你的物品。每个你添加的名称都放入目录,以驱动设备和手机上的建议。可选的自动分类。服务器第一次见到名称时,可以将其发送给 Claude,在过道下归档。如果你手动将某个物品移到不同的过道,那个修正会保留。 仓库布局 固件/ PaperMono 的 PlatformIO 项目 (C++ / Arduino) 服务器/ FastAPI 服务器, SQLite 存储, 手机网页 UI, 测试 文档/ 硬件笔记、架构、API、构建和部署指南、设计笔记 快速开始 1. 运行服务器 cd server python3 -m venv .venv && .venv/bin/pip install -e . SHOPPING_LIST_CLASSIFIER=none .venv/bin/uvicorn shopping_list.main:app --host 0.0.0.0 --port 8000 在你的手机上打开 http://<server-ip>:8000/,点击过道,添加你的商店的过道,并按你行走的顺序放置。有关 systemd 和 Docker 部署及开启自动分类,请参见 docs/server.md。 2. 构建并闪存固件 你需要 PlatformIO 和一个通过 USB-C 连接的 PaperMono。 cd firmware cp src/secrets.example.h src/secrets.h # 设置 Wi-Fi SSID/密码和服务器 URL pio run -t upload 在第一次闪存之前备份设备的闪存。这保存了该设备的出厂校准数据。 docs/firmware.md 涵盖备份、下载模式和通过浏览器闪存。 文档 文档包含以下内容 硬件笔记 引脚图、I²C 设备、引导顺序、显示、触摸和电源细节;重用驱动程序 固件 构建、配置、闪存和恢复设备;使用方法;故障排除 架构 组件、数据模型、同步协议、离线行为、显示刷新策略 服务器 运行和部署服务器,配置,自动分类,安全性 HTTP API 每个端点、请求和响应 设计笔记 固件的来源、决策与权衡、已知的限制 状态 一个个人项目,在家中只有一台设备上运行。它能工作,但还不是一个产品。没有设备 Wi-Fi 设置(凭证已编译),服务器上没有身份验证(请保持在你的局域网或 behind an authenticating reverse proxy),并且仅测试了 PaperMono C153。查看已知限制。 作者 建造者 Seamus Cawley,白天开发 Bronto,这是一个日志记录和可观察性平台。 贡献 固件的开发板支持、电子纸和触摸驱动程序、键盘布局和小部件样式源自于 andrecolz 的 MonoMesh,这是一个独立的与 Meshtastic 兼容的固件,适用于同一硬件。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡