-
-
-
Tổng tiền thanh toán:
-
Tủ bán hàng có đèn báo từng vị trí
24/08/2026
Tủ bán hàng có đèn báo từng vị trí
1. Cấu trúc hệ thống
PC / điện thoại
│
▼
ESP32 TỦ 1 — WEB CHÍNH 192.168.0.50
│
├──── TỦ 1: vị trí 1–256
│
└──── ESP32 TỦ 2 192.168.0.51 vị trí 1–256
Mỗi sản phẩm sẽ có thêm thông tin Tủ, và khi bấm CHỌN / LẤY HÀNG, ESP32 Web chính sẽ gửi đúng lệnh đến ESP32 của tủ tương ứng.
Đặc biệt, ta sẽ xử lý luôn tồn kho dùng chung, tránh trường hợp hai tủ cùng sửa products.json rồi dữ liệu bị lệch.
- Đặt IP cố định cho Tủ 1 và Tủ 2.
- Tạo ESP32 Tủ 1 làm Web chính.
- Kết nối Tủ 2 với Tủ 1 qua WiFi/LAN.
- Thêm trường Tủ vào
products.json. - Sửa CHỌN → LẤY HÀNG để gửi đúng lệnh đến từng ESP32.
- Đồng bộ tồn kho.
- Cuối cùng kiểm tra trường hợp 2 sản phẩm trùng vị trí và 2 tủ cùng có sản phẩm giống nhau.
ROUTER WIFI 192.168.1.1
│
┌─────────┴─────────┐
│ │
ESP32 TỦ 1 ESP32 TỦ 2
192.168.1.50 192.168.1.51
│ │
MAX7219 MAX7219
TFT TFT
Keypad Keypad
Servo Servo
Tủ 1 = Web chính
Bạn truy cập: http://192.168.1.50
và không cần truy cập 192.168.1.51.
Tủ 2 vẫn chạy ESP32 độc lập để điều khiển phần cứng.
2. Quản lý kho
PC
│
▼
┌──────────────────┐
│ ESP32 TỦ 1 │
│ WEB MASTER │
│ 192.168.1.50 │
│ │
│ products.json │
└────────┬─────────┘
│ WiFi/LAN
│
┌────────▼─────────┐
│ ESP32 TỦ 2 │
│ SLAVE │
│ 192.168.1.51 │
│ │
│ chỉ nhận lệnh │
│ điều khiển máy │
└──────────────────┘
Tủ 1 quản lý dữ liệu sản phẩm, Tủ 2 nhận lệnh điều khiển.
Như vậy:
- Upload CSV → chỉ cần upload ở Tủ 1.
- Edit sản phẩm → Tủ 1.
- Download CSV → Tủ 1.
- Tìm kiếm → Tủ 1.
- Web → Tủ 1.
- Chọn sản phẩm thuộc Tủ 2 → Tủ 1 gửi lệnh cho Tủ 2.
- Tủ 2 bật LED/TFT/servo.
- Tồn kho → Tủ 1 trừ và lưu
products.json.
3. Tạo MASTER và SLAVE
- Tủ 1 = MASTER
- Tủ 2 = SLAVE
- Giữ nguyên toàn bộ giao diện web hiện tại.
- Hai ESP32 vẫn chạy giao diện riêng như hiện tại.
- MASTER có thể gửi lệnh cho SLAVE.
- SLAVE nhận lệnh và phản hồi.
- Kiểm tra bằng PING → PONG trước.
- Khi PING/PONG ổn định mới chuyển bước 2: thêm
cabinetvàoproducts.json.
Kiến trúc trước mắt
WiFi Router
│
┌──────────┴──────────┐
│ │
ESP32 TỦ 1 ESP32 TỦ 2
MASTER SLAVE
│ │
│────── PING ────────>│
│<──── PONG ──────────│
│ │
│──── COMMAND ───────>│
│<──── RESPONSE ──────│
4. Hoạt động tìm kiếm:
Bàn phím / Web nhập mã
│
▼
MASTER tìm products.json của Tủ 1
│
├── tìm thấy → xử lý Tủ 1
│
└── không thấy
│
▼
gửi SEARCH sang SLAVE
│
▼
SLAVE trả FOUND
│
▼
MASTER hiển thị sản phẩm
Điều kiện thuật toán
SEARCH
│
▼
┌───────────────┐
│ TỦ 1 / MASTER │
└───────┬───────┘
│
tìm thấy?
/ \
YES NO
│ │
▼ ▼
dùng Tủ 1 hỏi Tủ 2
│
FOUND?
/ \
YES NO
│ │
▼ ▼
dùng Tủ 2 Không tìm