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

Công nghệ28 tháng 9, 2026·5 phút đọc

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

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-inkDanh 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ị PaperMonoMà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.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗