{"id":25998710,"url":"https://github.com/meowxiaoxiang/gesture-controlled-door-lock-system","last_synced_at":"2026-04-10T22:43:12.622Z","repository":{"id":162426550,"uuid":"599419123","full_name":"MeowXiaoXiang/Gesture-Controlled-Door-Lock-System","owner":"MeowXiaoXiang","description":"UCH專題 - 手勢控制門鎖系統","archived":false,"fork":false,"pushed_at":"2024-10-11T14:01:40.000Z","size":531,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-03T23:43:23.333Z","etag":null,"topics":["mediapipe","opencv-python","python","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MeowXiaoXiang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-09T04:58:42.000Z","updated_at":"2024-10-11T14:01:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"ffd25ef8-c6e2-4a98-bded-74e629febc62","html_url":"https://github.com/MeowXiaoXiang/Gesture-Controlled-Door-Lock-System","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MeowXiaoXiang/Gesture-Controlled-Door-Lock-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeowXiaoXiang%2FGesture-Controlled-Door-Lock-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeowXiaoXiang%2FGesture-Controlled-Door-Lock-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeowXiaoXiang%2FGesture-Controlled-Door-Lock-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeowXiaoXiang%2FGesture-Controlled-Door-Lock-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MeowXiaoXiang","download_url":"https://codeload.github.com/MeowXiaoXiang/Gesture-Controlled-Door-Lock-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeowXiaoXiang%2FGesture-Controlled-Door-Lock-System/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31662169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"ssl_error","status_checked_at":"2026-04-10T17:19:13.364Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mediapipe","opencv-python","python","raspberry-pi"],"created_at":"2025-03-05T17:36:14.076Z","updated_at":"2026-04-10T22:43:12.588Z","avatar_url":"https://github.com/MeowXiaoXiang.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [專題] 手勢控制門鎖系統\n\n* 這個專題使用MediaPipe和OpenCV進行手勢辨識，並有簡易的密碼設定網頁。\n* 當有設定密碼時，會透過Webcam辨識手勢輸入密碼，預設支援0~9與比出大拇指讚的手勢。輸入正確密碼後比讚將進行開門動作。\n* 若密碼錯誤次數超過3次，則會清除密碼，需要重新設定才可使用。\n* 目前在這個項目有提供關於伺服馬達的程式，不過僅限參考，若不同的話，親手改看看吧。\n\n## Installation\n\n* 若要快速安裝可使用 [install_rpi.sh](install_rpi.sh)\n  請在此專案目錄下在 **Raspberry Pi** 的終端機輸入以下命令\n  ```bash\n  sudo chmod a+x install_rpi.sh\n  ./install_rpi.sh\n  ```\n\n1. 確認樹莓派系統架構與硬體版本\n首先，您需要確認自己的 Raspberry Pi 系統架構以及硬體版本，這將決定後續您需要安裝的 Mediapipe 版本。\n\n\u003e **提示**：如果您不確定應該選擇哪個版本，且您的 Raspberry Pi 是 3 代或 4 代，個人推薦使用 [**Raspberry Pi OS (Legacy)**](https://downloads.raspberrypi.com/raspios_oldstable_armhf/images/raspios_oldstable_armhf-2022-01-28/2022-01-28-raspios-buster-armhf.zip)。這是我個人使用過且沒有問題的版本，穩定支援 32-bit 的 Mediapipe 版本。\n\n- **檢查系統架構**：\n  在 **Raspberry Pi** 的終端機輸入以下命令：\n  ```bash\n  uname -m\n  ```\n  如果結果顯示：\n  - `armv7l`：表示您使用的是 32-bit 系統架構（Raspberry Pi OS 32-bit）。\n  - `aarch64`：表示您使用的是 64-bit 系統架構（Raspberry Pi OS 64-bit）。\n\n- **確認硬體版本**：\n  如果架構是 `armv7l`，則需要進一步判斷您使用的是 Raspberry Pi 3 還是 Raspberry Pi 4。\n  - **Raspberry Pi 3** 的特徵：有一個標準 HDMI 接口（較大）。\n  - **Raspberry Pi 4** 的特徵：有兩個小的 Mini HDMI 接口。\n\n  您也可以通過命令查詢具體硬體型號：\n  ```bash\n  cat /proc/cpuinfo | grep 'Model'\n  ```\n\n  根據以上資訊，確認您的設備並記錄下來以進行後續步驟。\n\n2. 更新所有套件\n在進行安裝前，建議更新所有系統套件以確保安裝過程順利：\n\n  ```bash\n  sudo apt update\n  sudo apt upgrade\n  ```\n\n3. 安裝 NumPy\n首先安裝或升級 NumPy，這是後續 OpenCV 和 Mediapipe 的必要依賴：\n\n  ```bash\n  pip3 install numpy\n  ```\n\n4. 安裝 OpenCV 及依賴項\n接著安裝 OpenCV 及其依賴項：\n\n- 安裝依賴項：\n  ```bash\n  sudo apt install libatlas-base-dev\n  ```\n\n- 安裝 OpenCV：\n  ```bash\n  pip3 install opencv-python\n  ```\n\n5. 安裝 Mediapipe\n根據您先前確認的系統架構與硬體版本，選擇安裝適當的 Mediapipe 版本：\n\n- **若系統架構為 `armv7l` (32-bit)**：\n  - **Raspberry Pi 3**：\n    ```bash\n    pip3 install mediapipe-rpi3\n    ```\n  - **Raspberry Pi 4**：\n    ```bash\n    pip3 install mediapipe-rpi4\n    ```\n\n- **若系統架構為 `aarch64` (64-bit)**：\n    ```bash\n    pip3 install mediapipe\n    ```\n\n\u003e **提示**：Mediapipe 是系統架構依賴的軟體包，請務必依據您的架構安裝正確版本。\n\n6. 安裝 OLED 套件\n因為有使用 OLED 顯示器，請安裝相關的套件：\n  ```bash\n  pip3 install luma.oled\n  ```\n\n7. 安裝 Loguru\n最後，安裝 Loguru，用於日誌處理：\n  ```bash\n  pip3 install loguru\n  ```\n\n8. 修改 [main.py](main.py) 的 **可調整區域** 來符合你的要求\n\n9. 修改 **Raspberry Pi** 設定，啟動I2C\n\n![I2C 設定](https://raw.githubusercontent.com/MeowXiaoXiang/Gesture-Controlled-Door-Lock-System/master/markdown_img/raspi_config.png)\n\n* 如要在 Windows 上測試，直接用以下指令安裝套件即可，並設定 [main.py](main.py) 的 **可調整區域** 來符合你的要求\n  * `pip install -r requirements_win.txt`\n\n## User Guide\n\n1. 首先進入 [http://127.0.0.1:8080/](http://127.0.0.1:8080/) (會受到你設定的Port影響)\n2. 在網頁上設定密碼和密碼時效，並點擊 **「送出設定」** 按鈕。\n3. 輸入密碼的方式是在 **WebCam** 前面用單手比出數字，**OLED** 會顯示您已輸入的密碼。\n4. 確認密碼無誤後再比出**讚**的手勢，門就會開開。若錯誤三次，則會清除密碼。\n\n## Wiring diagram\n![接線圖](https://raw.githubusercontent.com/MeowXiaoXiang/Gesture-Controlled-Door-Lock-System/master/markdown_img/wiring_diagram.jpg)\n\n---\n## 參考資料\n* [手部21个关键点检测+手势识别-[MediaPipe]](https://blog.csdn.net/weixin_45930948/article/details/115444916) by [开鑫9575](https://blog.csdn.net/weixin_45930948)\n* [finish_ben](https://github.com/benben-ub/finish_ben) by [benben-ub](https://github.com/benben-ub)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeowxiaoxiang%2Fgesture-controlled-door-lock-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeowxiaoxiang%2Fgesture-controlled-door-lock-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeowxiaoxiang%2Fgesture-controlled-door-lock-system/lists"}