Tích hợp RFID vào phần mềm của bạn
Trang này dành cho đội đã quen xây ERP, WMS hoặc phần mềm bán hàng, và lần đầu làm việc với đầu đọc RFID. Cách tiếp cận ở đây: nối từng khái niệm RFID về một khái niệm bạn đã dùng hằng ngày, và vẽ rõ ranh giới phần nào SDK lo, phần nào phần mềm của bạn lo.
Đầu đọc là nguồn sự kiện, không phải một API
Mô hình quen thuộc nhất với dev phần mềm là request và response: gọi API, nhận kết quả, xong. Đầu đọc RFID không hoạt động như vậy. Bạn gửi một lệnh bắt đầu kiểm kê, rồi đầu đọc chủ động đẩy dữ liệu về liên tục cho tới khi bạn bảo dừng.
Nếu cần một hình dung quen thuộc:
- Máy quét mã vạch giống bàn phím: người dùng bấm, phần mềm nhận đúng một sự kiện.
- Đầu đọc RFID giống một message queue mà producer là phần cứng: message đến liên tục, cùng một mã lặp lại hàng trăm lần, và consumer là phần mềm của bạn phải tự gom chúng thành sự kiện có nghĩa.
Ai từng viết consumer cho Kafka hoặc RabbitMQ sẽ thấy mọi kỹ thuật quen thuộc đều dùng lại được ở đây: xử lý message trùng, khóa idempotent, gom theo cửa sổ thời gian.
SDK đứng ở đâu
SDK đóng vai trò giống driver database: bạn không cần biết hai bên nói chuyện với nhau bằng giao thức gì, chỉ gọi method và nhận dữ liệu đã parse sẵn.
Phân chia trách nhiệm:
| Việc | Ai lo |
|---|---|
| Mở serial port, nói chuyện với đầu đọc, parse dữ liệu thẻ | SDK |
| Cấu hình công suất, ăng-ten, vùng tần số | SDK, bạn chọn giá trị |
| Gom nhiều lần đọc thành một sự kiện (chống trùng) | Phần mềm của bạn |
| Gán ý nghĩa nghiệp vụ cho sự kiện theo điểm đọc | Phần mềm của bạn |
| Ghi vào ERP một cách idempotent | Phần mềm của bạn |
Kiến trúc thường gặp: một service nhỏ cạnh đầu đọc
Mô hình phổ biến nhất là một edge service: một chương trình nhỏ chạy trên máy tính đặt tại kho hoặc cửa hàng, nối với đầu đọc qua USB.
- Service (thường viết bằng Python với
nrn-sdk) nhận thẻ qua callback của SDK. - Chống trùng ngay tại chỗ, để không đẩy hàng trăm bản ghi lặp lên mạng.
- Đẩy sự kiện đã sạch về backend qua HTTP hoặc message queue, kèm điểm đọc và thời điểm.
- Backend ánh xạ EPC sang SKU rồi tạo chứng từ trong ERP như mọi giao dịch khác.
Với màn hình bán hàng hoặc kiosk chạy trong trình duyệt, có đường ngắn hơn: bản Web Serial (@nextwaves/nrn-sdk) cho trang web nối thẳng vào đầu đọc, không cần cài service.
Một điểm khác với service thông thường: đầu đọc nối qua serial nên chỉ một tiến trình giữ được kết nối. Đừng cho hai service cùng mở một đầu đọc; muốn nhiều nơi dùng dữ liệu thì để edge service phát lại qua queue.
Dữ liệu cần thêm vào hệ thống
Thường chỉ cần ba bảng, và cả ba đều giống thứ bạn từng làm:
| Bảng | Vai trò | Giống với |
|---|---|---|
| Ánh xạ EPC | EPC nào thuộc SKU nào, gắn cho lô nào, từ lúc nào | Bảng serial number hoặc IMEI |
| Điểm đọc | Đầu đọc và ăng-ten nào đứng ở vị trí nghiệp vụ nào | Danh mục quầy, cổng, kho |
| Sự kiện đọc | Sự kiện đã chống trùng, kèm khóa idempotent | Bảng log giao dịch |
EPC là định danh từng cá thể, nên bảng ánh xạ EPC chính là bảng serial number với quy mô lớn hơn. Quy tắc sinh EPC nằm ở mã hóa EPC.
Chống ghi trùng: đúng bài chống double-submit
Ai làm web đều từng chặn người dùng bấm nút Lưu hai lần. RFID cần đúng kỹ thuật đó, vì cùng một thẻ chắc chắn được báo về nhiều lần, và service có thể khởi động lại giữa chừng:
- Đặt khóa tự nhiên cho sự kiện:
(EPC, điểm đọc, cửa sổ nghiệp vụ). - Ghi vào ERP bằng thao tác có điều kiện trên khóa đó, kiểu
INSERT ... ON CONFLICT DO NOTHING. - Lần ghi thứ hai của cùng sự kiện trở thành no-op, không thành biến động tồn kho thứ hai.
Chi tiết ba lớp chống trùng, từ đầu đọc tới database, nằm ở đọc thẻ và chống trùng.
Lộ trình thử trong một tuần
- Ngày đầu: cắm đầu đọc để bàn vào laptop,
pip install nrn-sdk, chạy bắt đầu nhanh. Mục tiêu là thấy EPC hiện lên console. - Trong tuần: nối callback vào pipeline sự kiện có sẵn của bạn ở môi trường test, dựng bảng ánh xạ EPC, thử khóa idempotent bằng cách cho một thẻ đi qua nhiều lần.
- Trước khi ra hiện trường: khảo sát vùng đọc thật theo hướng dẫn triển khai RFID, vì hiệu năng đọc phụ thuộc môi trường vật lý chứ không phụ thuộc code.
Đọc tiếp
- Cần biết trước khi triển khai RFID nếu bạn chưa đọc: các khác biệt giữa RFID và mã vạch
- Bắt đầu nhanh cho code kết nối đầu tiên
- Đọc thẻ và chống trùng cho pipeline đọc hoàn chỉnh

