🍓 Virtual Field-Harvester Scale
dry-run
⚙ Kết nối
Kết nối ChirpStack
✕
gateway-bridge host
port
Gateway EUI (hex8)
Dev EUI (hex8)
Join EUI (hex8)
App Key (hex16)
freq MHz
datr
Lưu config
Connect (OTAA join, Class C)
📡 Quẹt thẻ NFC
✕
Chọn đúng cột để quẹt nhanh — cửa sổ giữ mở để quẹt liên tiếp.
👷 Worker
Mã công nhân
📲 Quẹt thẻ CN
🌱 Luống
Số luống
Đầu luống
Start — đầu vào
End — đầu cuối
📲 Quẹt luống
📦 Khay
Số khay
Bì khay (g)
📲 Quẹt khay
🍓 FIELD HARVESTER
📶
dry-run
⚙
⏻
💥
👷
-
chưa quẹt
· 📍
-
🧭 Side
-
· 🌱 Luống
-
ngoài
· 📦 Khay
-
trống
0
g
/ target
0
g ·
🔊 Vol
60
· 📶
-
/
0
— NGUỒN TẮT —
📍 Vị trí GPS (giả lập — chọn farm)
📡
PN532 — A
worker / luống
📡
PN532 — B
khay / tag
⚖️ Bàn cân
— trống —
Tray id
Bì khay (g)
📡 Đưa khay — NFC nhận ✓ (định danh + trừ bì)
Đặt vật bất kỳ (g)
🧱 Đặt vật (chưa NFC)
Lấy khay khỏi cân = nhấc. Cân TỰ thu hoạch nếu đạt target.
+100g
+500g
−100g
↑ Lấy / nhấc khay
↓ đặt lại
4 nút bấm — sau khi quẹt đầu luống thì chọn bên (nhấn cả 2 nút = cả 2 bên)
◀
Trái
▶
Phải
↑
Lấy khay
⤺
Kết thúc luống
Rotary encoder (âm lượng) + push
⟲ −
60
+ ⟳
● push
🔊 Phát âm thanh: BẬT
🔒 LOGOUT
🔋 STATUS
♻ Replay (dedup)
🗣 Nói thử
Event log
Luống — vào / ra
Quẹt 1 đầu luống (Start/End) → chọn bên Trái/Phải (bấm cả 2 = cả hai). Có
300
s để chọn, sau đó
60
s đổi rồi khóa.
— chưa vào luống —
Giờ chọn bên (s)
Giờ đổi bên (s)
⏱ Áp dụng thời gian
Lưu trữ & đồng bộ (offline)
Mọi sự kiện được lưu local theo ngày (mô phỏng microSD) và gửi lại đúng thứ tự thời gian khi có sóng. Backend xác nhận từng evt_id (EVENT_OK/REJECT).
📵 Giả lập mất sóng
⏳
0
· ✅
0
· ⛔
0
⏳ Chờ gửi (pending — cũ nhất trước)
📒 Nhật ký ngày (
0
)
🗑 Xóa dữ liệu hôm nay (local)
Whitelist nội bộ (cân lưu)
Định danh đồng bộ từ backend. Click một mục để xoá.
Worker
Luống
Khay
➕
👷 Worker (
0
)
🌱 Luống (
0
)
📦 Khay (
0
) · 🔒 = đang khoá