---
# System prepended metadata

title: 開源期末 report

---

# Github
前端 link: https://lostmypillow.github.io/rarclient/
前端GitHub: https://github.com/lostmypillow/rarserver
後端 link: https://rarserver.lostmypillow.duckdns.org/api/docs
後端GitHub: https://github.com/lostmypillow/rarserver
## 發想
我們在學校不管是在先鋒大樓或圖書館，進入時都需要刷卡，以確認身分，但如果遇到訪客時往往很麻煩只能人手動開啟門，或給工程卡，會大大讓整體安全性降低，所以我們希望可以開發一個系統，可以使用網站方便的更新以及管理所有我們可以進入的ID，提升安全性，並讓整個維護性提升
## 使用情境
### 維修站管理
在維修站中，每次維修和保養後，技師需要刷RFID卡記錄維修和保養的時間。這些信息將通過系統自動登錄至雲端系統，以便於管理和追蹤。

- 技師刷卡：技師在完成維修或保養後，使用RFID卡進行刷卡操作。
- 記錄時間：系統會記錄刷卡的時間，標記技師完成工作的時間點。
- 雲端登錄：所有的記錄會自動上傳至雲端系統，方便管理者查看和統計維修保養的歷史數據。
#### 可以改善的原因
1. 提升透明度：
    - 實時監控：管理者可以實時監控技師的工作狀態，確保每個維修和保養工作都被記錄。
    - 追溯責任：記錄詳細的維修和保養時間，便於追溯責任，提升維修站的透明度和可信度。
2. 提高安全性：
    - 防止個人財產被竊取：通過記錄每次維修和保養的詳細信息，可以防止車輛或車內物品在維修期間被竊取。
    - 保護個人資訊：系統化的管理可以防止維修過程中個人資訊被不當使用或泄露，增強客戶的隱私保護。

### 出租車管理
每張RFID卡片對應至不同的出租車，並且記錄每次出車和還車的時間，以便於管理車輛的使用情況。

- 卡片對應車輛：每輛出租車配備一張RFID卡片，司機在出車和還車時需要刷卡。
- 出車還車記錄：系統會記錄每次出車和還車的時間，幫助管理車輛的使用狀況。
- 數據統計：管理者可以通過雲端系統查看各車輛的使用記錄，進行車輛調度和維護計劃。
#### 可以改善的情境
1. 勤務車：緊急服務車輛只能由授權人員啟動，防止車輛被不當使用。
2. 貨運管理：貨運司機刷卡啟動車輛，記錄每趟運輸的駕駛員、路線、時間以及負責運送的貨物序號。
## Team Cooperation
### Arduino Side 
#### 分工
楊其康
##### Task List
1. 讀卡機成功可以讀取ID，並顯示到serial monitor;  Serial.begin(9600)
2. Arudino 與 樹梅派 通訊
(1) 收到從樹莓派 知道允許的ID
(2) 傳送到樹莓派 請求的ID
- 參考文件(https://maker.pro/raspberry-pi/tutorial/how-to-connect-and-interface-raspberry-pi-with-arduino)
### Raspberry Pi 
#### 分工
林家民
1. 可以與Server 的 資料庫 請求所有可以通過的ID
2. LCD 顯示請求ID 以及狀態
3. 傳送URAT 傳送給Arudino
- 參考文件(https://maker.pro/raspberry-pi/tutorial/how-to-connect-and-interface-raspberry-pi-with-arduino)
### Server Side 
#### 分工
張高偉
劉韶軒
#### API Server(code 寫好再給我放到我的Server)
1. 拿取目前狀態
2. 讀取目前請求狀態
3. 新增通過ID
4. 刪除通過ID
#### Web Side(code 寫好再給我放到我的Server)
1. 顯示狀態網頁
2. 管理ID網頁
## 實現架構
1. RFID Card 讀取
2. RFID卡片（UID：A1 B2 C3 D4）被讀取器讀取，並將UID傳送至Arduino。 Arduino處理
3. Arduino接收到UID，並將UID傳送至Raspberry Pi（RPI）。傳送UID到伺服器
4. Raspberry Pi將接收到的UID傳送至Django伺服器進行驗證。伺服器檢查UID
5. Django伺服器檢查接收到的UID是否在允許列表中，並記錄每日和總計的嘗試次數。伺服器回應驗證結果
6. 伺服器將驗證結果（“Yes”或“No”）發送回Raspberry Pi。傳送指令到Arduino
7. Raspberry Pi根據伺服器的回應，將相應的指令（“9”或“0”）傳送給Arduino。控制LED燈 Arduino根據接收到的指令，控制LED燈的開啟或關閉。