尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗An IoT-powered smart locker parcel delivery and pickup platform designed for university campuses and colleges. Built to streamline parcel logistics:
#/deliver): QR scan of the box, numeric Order ID input, automatic pickup PIN generation, student lookup, parcel size selection, and a guided 4-step drop flow that unlocks and locks the real box.#/collect): Pending parcels, at-box QR check, then the PIN is typed on the box's physical keypad and mirrored live on the page. The servo unlocks automatically when the PIN is right.#/dashboard): Interactive Three.js 3D locker wall, live device event log, remote unlock, weekly volume chart, and searchable order records.123456789012 → PIN 9012).firebase-config.js is filled in, orders, box state and device events sync live through Firebase Realtime Database across all devices and the real box.localStorage) and all six boxes are simulated.campus drop/ ├── index.html # Web app (all portals & 3D visualizer) ├── firebase-config.js # Your Firebase web config (fill this in) ├── database.rules.json # Realtime Database rules ├── firebase.json # Firebase Hosting + database config ├── server.js # Small local web server (npm start) ├── image.png # System flowchart └── firmware/ ├── esp8266_campusdrop/ # ESP8266: WiFi, Firebase, keypad ├── uno_campusdrop/ # Arduino UNO: servo, HC-SR04, 16x2 I2C LCD └── HARDWARE_GUIDE.md # Wiring, flashing, calibration, troubleshooting
---
## 🔥 Firebase Setup (one time)
1. Go to [console.firebase.google.com](https://console.firebase.google.com) and create a project.
2. **Build → Realtime Database → Create database** (pick the location closest to you, e.g. Singapore, start in *test mode*).
3. In the database's **Rules** tab, paste the contents of `database.rules.json` and publish.
4. **Project settings → General → Your apps → Add app → Web**. Copy the `firebaseConfig` values into `firebase-config.js`.
5. Put the same database host (without `https://`) into `FIREBASE_HOST` in `firmware/esp8266_campusdrop/esp8266_campusdrop.ino`.
> ⚠️ The included rules allow anyone with the database URL to read and write. That's fine for a prototype demo, but lock them down before real use.
---
## 🏃 Quick Start
```bash
npm install
npm start
Open 👉 http://localhost:3000. The top of the page shows Live sync via Firebase when Firebase is connected, or This device only when it isn't.
To put it online, install the Firebase CLI and deploy with Hosting:
npx firebase-tools login
npx firebase-tools deploy --only hosting,database
See firmware/HARDWARE_GUIDE.md for full wiring, flashing, and calibration.
| Part | Board | Pins |
|---|---|---|
| 4×4 keypad | ESP8266 | Rows D1, D3, D4, D5 · Cols D6, D7, D8, D0 |
| SG90 servo | UNO | D9 (0° locked, 90° unlocked) |
| HC-SR04 ultrasonic | UNO | TRIG D7, ECHO D6 |
| 16×2 I2C LCD | UNO | SDA A4, SCL A5 |
| UNO ↔ ESP8266 serial | both | UNO TX → 1k/2k divider → ESP RX, ESP TX → UNO RX, common GND |
| Path | Written by | Contents |
|---|---|---|
orders/{orderId} | website, ESP8266 | student, box, courier, size, pin, status (awaiting / collected), attempts, timestamps |
boxes/B01 | ESP8266, website | lastSeen heartbeat, locked, servoAngle, parcelPresent, distanceCm, keypad (digits typed so far), currentOrder |
boxes/B01/command | website | { action: "unlock" | "lock", id }. The ESP8266 runs it and writes commandAck = id |
events/{id} | website, ESP8266 | device log shown on the dashboard |
| Live Webapp:- https://campus-drop-zeta.vercel.app/ | ||
| (The website is subject to be changed as per the time changes) |