Sản phẩm
PaperMono: Biến màn hình E-ink thành danh sách mua sắm thông minh cho tủ lạnh
(giờ Việt Nam)
Tóm tắt AI
Dự án mã nguồn mở PaperMono sử dụng thiết bị M5Stack PaperMono để tạo danh sách mua sắm đồng bộ với điện thoại, tích hợp Claude để tự động phân loại hàng hóa theo kệ.
Chính văn · Bản dịch AI
Firmware cho thiết bị e-paper M5Stack PaperMono. Nó biến thiết bị thành một danh sách mua sắm gia đình gắn trên tủ lạnh và luôn đồng bộ với ứng dụng web trên điện thoại.


PaperMono là một thiết bị ESP32-S3 với màn hình cảm ứng e-paper 3.97" 480×800. Dự án này là một ứng dụng hoàn chỉnh, hoạt động tốt và đủ nhỏ gọn để bạn có thể đọc hiểu: khoảng 2.400 dòng mã C++. Bạn có thể sử dụng nó như một danh sách mua sắm hoặc làm điểm khởi đầu cho firmware PaperMono của riêng mình.
Những gì hiển thị trên PaperMono
- Các thao tác làm mới e-paper được xử lý tối ưu. Thao tác chạm, cuộn và nhập liệu sử dụng cập nhật từng phần (partial update) nhanh chóng mà không bị chớp màn hình. Một lần làm mới toàn bộ (full refresh) sẽ được thực hiện sau mỗi 10 lần cập nhật từng phần để giảm hiện tượng lưu ảnh (ghosting) và bảo vệ tấm nền. Các sắc xám được vẽ dưới dạng các điểm ảnh 1-bit, vì vậy chúng trông giống nhau ở cả hai chế độ làm mới.
- Giao diện cảm ứng hữu dụng trên e-paper. Thao tác chạm, vuốt và các nút bên cạnh đều hoạt động. Có một bàn phím trên màn hình chỉ vẽ lại những phần thay đổi khi bạn nhập liệu và nó gợi ý các mục bạn đã thêm trước đó.
- Kết nối tiết kiệm năng lượng. Wi-Fi chỉ bật trong khi đồng bộ hóa: mỗi giờ một lần, hoặc sớm hơn nếu bạn chạm vào màn hình và lần đồng bộ cuối cùng đã cũ hơn 5 phút, và ngay sau khi chỉnh sửa. Mọi thứ khác đều hoạt động ngoại tuyến và các chỉnh sửa được xếp hàng trong bộ nhớ flash cho đến lần đồng bộ tiếp theo.
- Quản lý năng lượng gọn gàng. Tắt máy bằng nút nguồn, với chế độ ngủ sâu (deep-sleep) dự phòng khi nguồn USB ngăn IC nguồn tắt. Thiết bị tự tắt ở mức điện áp pin an toàn. Đèn nền mặc định ở trạng thái tắt.
- Quy trình khởi động được ghi chép đầy đủ. IC nguồn, bộ mở rộng IO, tấm nền và bộ điều khiển cảm ứng được khởi động theo thứ tự đã xác định. docs/hardware.md chứa sơ đồ chân, địa chỉ I²C và các đặc điểm kỹ thuật được tìm thấy trong quá trình thực hiện.
Cách thức hoạt động
Thiết bị hiển thị danh sách được nhóm theo lối đi, theo thứ tự bạn đi trong cửa hàng. Chạm vào một mục để đánh dấu đã mua, hoặc thêm mục mới bằng bàn phím trên màn hình. Những người khác thêm mục từ điện thoại của họ.


Một máy chủ nhỏ ở giữa lưu trữ danh sách. Nó ghi nhớ mỗi mục thuộc lối đi nào và có thể tùy chọn sắp xếp các mục hoàn toàn mới vào đúng lối đi với Claude.
flowchart LR
device["PaperMono<br/>(firmware/)"] -- "Wi-Fi, hourly or on tap<br/>and after each edit" --> server
phone["Phone browser"] -- HTTP --> server
subgraph server["Server (server/)"]
api["FastAPI + SQLite"]
web["Web UI"]
end
api -. "new item names only" .-> claude["Claude Code CLI<br/>(optional)"]Đang tải
- Nhóm theo lối đi, theo thứ tự đi bộ. Bạn thiết lập thứ tự lối đi một lần từ điện thoại và cả hai màn hình sẽ tuân theo đó.
- Hoạt động ngoại tuyến. Danh sách, gợi ý, đánh dấu và thêm mục đều hoạt động mà không cần kết nối, kể cả trong cửa hàng không có sóng.
- Ghi nhớ các mục của bạn. Mỗi tên bạn đã thêm đều đi vào một danh mục giúp thúc đẩy các gợi ý trên cả thiết bị và điện thoại.
- Tự động sắp xếp tùy chọn. Lần đầu tiên máy chủ thấy một tên mới, nó có thể gửi tên đó đến Claude để phân loại vào một lối đi. Nếu bạn tự tay di chuyển một mục sang lối đi khác, sự thay đổi đó sẽ được lưu lại.
Cấu trúc kho lưu trữ
firmware/ PlatformIO project for the PaperMono (C++ / Arduino)
server/ FastAPI server, SQLite store, phone web UI, tests
docs/ Hardware notes, architecture, API, build and deploy guides, design notesBắt đầu nhanh
1. Chạy máy chủ
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 8000Mở http://<server-ip>:8000/ trên điện thoại của bạn, chạm vào Aisles (Lối đi) và thêm các lối đi trong cửa hàng của bạn theo thứ tự bạn đi. Xem docs/server.md để biết cách triển khai systemd, Docker và cách bật tính năng tự động sắp xếp.
2. Build và flash firmware
Bạn cần PlatformIO và một thiết bị PaperMono kết nối qua USB-C.
cd firmware
cp src/secrets.example.h src/secrets.h # set Wi-Fi SSID/password and the server URL
pio run -t uploadHãy sao lưu bộ nhớ flash của thiết bị trước khi flash lần đầu. Nó chứa dữ liệu hiệu chuẩn gốc của thiết bị đó. docs/firmware.md bao gồm hướng dẫn sao lưu, chế độ tải xuống và flash từ trình duyệt.
Tài liệu
| Tài liệu | Nội dung bên trong |
|---|---|
| Ghi chú phần cứng | Sơ đồ chân, thiết bị I²C, trình tự khởi động, hiển thị, chi tiết cảm ứng và nguồn; tái sử dụng các trình điều khiển |
| Firmware | Build, cấu hình, flash và khôi phục thiết bị; cách sử dụng; khắc phục sự cố |
| Kiến trúc | Các thành phần, mô hình dữ liệu, giao thức đồng bộ, hành vi ngoại tuyến, chính sách làm mới màn hình |
| Máy chủ | Chạy và triển khai máy chủ, cấu hình, tự động sắp xếp, bảo mật |
| HTTP API | Mọi endpoint, yêu cầu và phản hồi |
| Ghi chú thiết kế | Nguồn gốc firmware, các quyết định và đánh đổi, các hạn chế đã biết |
Trạng thái
Một dự án cá nhân, đang chạy trên một thiết bị tại nhà. Nó hoạt động tốt nhưng không phải là một sản phẩm thương mại. Không có thiết lập Wi-Fi trên thiết bị (thông tin đăng nhập được biên dịch sẵn), không có xác thực trên máy chủ (hãy giữ nó trong mạng LAN hoặc sau một reverse proxy có xác thực) và chỉ mới thử nghiệm trên PaperMono C153. Xem known limitations.
Tác giả
Được xây dựng bởi Seamus Cawley, người làm việc tại Bronto, nền tảng ghi nhật ký và quan sát, vào ban ngày.
Ghi nhận
Hỗ trợ bo mạch của firmware, trình điều khiển e-paper và cảm ứng, bố cục bàn phím và kiểu widget được điều chỉnh từ MonoMesh của andrecolz, một firmware độc lập tương thích với Meshtastic cho cùng phần cứng. docs/design-notes.md liệt kê chính xác những gì đã được tái sử dụng.
Giấy phép
GNU General Public License v3.0, cùng giấy phép với MonoMesh, phần mềm mà một số thành phần của firmware này được kế thừa.
Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.