PaperMono: Danh sách đi chợ trên màn hình e-ink gắn tủ lạnh, đồng bộ với điện thoại
Một lập trình viên đã biến thiết bị M5Stack PaperMono (ESP32-S3, màn hình e-ink cảm ứng) thành danh sách đi chợ gắn trên tủ lạnh, đồng bộ với web app trên điện thoại qua Wi-Fi. Toàn bộ firmware khoảng 2.400 dòng C++ được viết hoàn toàn bằng Claude Code, hoạt động offline và đang được gia đình sử dụng hàng ngày.

PaperMono: Danh sách đi chợ trên màn hình e-ink gắn tủ lạnh, đồng bộ với điện thoại
Một dự án cá nhân mới xuất hiện trên Hacker News đang thu hút sự chú ý của cộng đồng yêu thích phần cứng nhúng: biến chiếc M5Stack PaperMono thành danh sách đi chợ gắn trên tủ lạnh, đồng bộ với điện thoại qua Wi-Fi. Điều đáng nói là toàn bộ firmware được viết hoàn toàn bằng Claude Code — không có dòng nào do con người gõ tay. Dự án hiện đã được gia đình tác giả dùng hàng ngày, một điều hiếm thấy với các dự án phần cứng tự làm tại nhà.
Danh sách thiết bị hiển thị trên màn hình e-ink
PaperMono là thiết bị gì?
PaperMono là một thiết bị do M5Stack sản xuất, trang bị vi xử lý ESP32-S3 cùng màn hình e-ink 3,97 inch, độ phân giải 480×800, có cảm ứng. Đây là phần cứng khá lý tưởng cho các dự án IoT hiển thị thông tin tĩnh, nhờ màn hình e-ink tiết kiệm điện và dễ đọc dưới ánh sáng mạnh.
Điểm đáng chú ý là bo mạch này tích hợp sẵn BLE, Wi-Fi và LoRa, khiến nó linh hoạt hơn nhiều so với một chiếc danh sách đi chợ đơn thuần. Tuy nhiên, firmware hiện tại chỉ sử dụng Wi-Fi.
Cách hoạt động
Hệ thống gồm ba thành phần chính:
- Thiết bị PaperMono chạy firmware C++/Arduino, hiển thị danh sách được nhóm theo khu vực trong siêu thị (theo đúng thứ tự bạn đi trong cửa hàng).
- Server trung gian viết bằng FastAPI kết hợp SQLite, lưu trữ danh sách và ghi nhớ mỗi mặt hàng thuộc khu vực nào.
- Web app trên điện thoại để các thành viên khác trong gia đình thêm mặt hàng từ xa.
Người dùng có thể chạm vào một mặt hàng trên màn hình e-ink để đánh dấu đã mua, hoặc thêm mặt hàng mới bằng bàn phím ảo hiện ngay trên thiết bị.
Màn hình cài đặt trên thiết bị PaperMono
Điểm thú vị nhất là khả năng hoạt động hoàn toàn offline. Danh sách, gợi ý, đánh dấu và thêm mặt hàng đều hoạt động ngay cả khi không có kết nối — kể cả khi bạn đang ở trong siêu thị không có sóng.
Những điểm kỹ thuật đáng chú ý
Xử lý màn hình e-ink đúng cách
Màn hình e-ink vốn nổi tiếng là khó lập trình do hiện tượng "ghosting" (bóng mờ). Dự án này xử lý vấn đề đó khá tinh tế:
- Các thao tác chạm, cuộn và gõ phím đều dùng cập nhật cục bộ (partial update) nhanh, không gây nháy màn hình.
- Sau mỗi 10 lần cập nhật cục bộ, hệ thống buộc làm mới toàn phần (full refresh) để giảm bóng mờ và bảo vệ tấm nền.
- Các tông màu xám được vẽ dưới dạng mẫu điểm 1-bit, nên trông giống nhau ở cả hai chế độ làm mới.
Giao tiếp mạng tiết kiệm điện
Wi-Fi chỉ bật khi cần đồng bộ:
- Định kỳ mỗi giờ một lần.
- Sớm hơn nếu người dùng chạm màn hình và lần đồng bộ gần nhất đã quá 5 phút.
- Ngay sau khi có chỉnh sửa.
Mọi thứ khác hoạt động offline, và các chỉnh sửa được xếp hàng đợi trên bộ nhớ flash cho đến lần đồng bộ kế tiếp.
Tự động phân loại bằng AI
Server có thể tùy chọn gửi tên mặt hàng mới đến Claude Code CLI để tự động phân loại vào đúng khu vực trong siêu thị. Nếu người dùng tự tay di chuyển một mặt hàng sang khu vực khác, sự điều chỉnh đó sẽ được ghi nhớ và giữ nguyên.
Một dự án "vibe-coded" hoàn toàn
Tác giả Seamus Cawley — người xây dựng nền tảng logging và observability tên Bronto — chia sẻ rằng anh không viết tay dòng code nào. Toàn bộ firmware do Claude Code tạo ra, với mục đích kiểm tra xem AI có thể xử lý một thiết bị phần cứng mới đến mức nào.
Kết quả khá ấn tượng: khoảng 2.400 dòng C++ tạo thành một ứng dụng hoàn chỉnh, đủ ngắn để đọc hiểu và có thể dùng làm điểm khởi đầu cho các dự án PaperMono khác.
Trạng thái và giới hạn
Đây là dự án cá nhân, chạy trên một thiết bị duy nhất tại nhà, không phải sản phẩm thương mại. Một số hạn chế đáng lưu ý:
- Không có thiết lập Wi-Fi ngay trên thiết bị — thông tin đăng nhập được biên dịch sẵn trong firmware.
- Server không có xác thực — chỉ nên chạy trong mạng LAN hoặc sau reverse proxy có xác thực.
- Chỉ mới được kiểm thử trên phiên bản PaperMono C153.
Mã nguồn được phát hành theo giấy phép GNU General Public License v3.0, cùng giấy phép với MonoMesh — dự án firmware tương thích Meshtastic mà một số phần của firmware này kế thừa.
Ý nghĩa với người dùng Việt Nam
Với cộng đồng yêu thích IoT và phần cứng nhúng tại Việt Nam, dự án này là một ví dụ thú vị về cách AI hỗ trợ lập trình nhúng có thể rút ngắn đáng kể thời gian phát triển. Các linh kiện như ESP32-S3 hiện khá phổ biến và dễ mua tại các cửa hàng điện tử trong nước, nên việc thử nghiệm một dự án tương tự là hoàn toàn khả thi.
Đáng chú ý hơn, cách tiếp cận "vibe coding" — để AI viết phần lớn code dựa trên mô tả bằng ngôn ngữ tự nhiên — đang dần trở thành một hướng đi thực tế cho các dự án phần cứng quy mô nhỏ, nơi lập trình viên tập trung vào thiết kế và trải nghiệm thay vì vật lộn với từng dòng code.
Bài viết liên quan

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Nvidia ra mắt nền tảng an toàn AI, có thể vô hiệu hóa các tác nhân AI nổi loạn trong vài mili-giây
28 tháng 9, 2026