{"id":31588505,"url":"https://github.com/aprilnea/oxidoor","last_synced_at":"2025-10-06T02:11:20.090Z","repository":{"id":316921866,"uuid":"1064565986","full_name":"AprilNEA/OxiDoor","owner":"AprilNEA","description":"🔒 An intelligent door lock written in Rust and ESP32. Supports NFC, Bluetooth, Wi-Fi, ETH, and even PoE power supply.","archived":false,"fork":false,"pushed_at":"2025-09-27T15:46:21.000Z","size":15,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-27T16:27:41.643Z","etag":null,"topics":["esp-rs","esp32","iot","iot-application","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AprilNEA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-09-26T08:15:06.000Z","updated_at":"2025-09-27T15:46:24.000Z","dependencies_parsed_at":"2025-09-27T16:27:45.764Z","dependency_job_id":null,"html_url":"https://github.com/AprilNEA/OxiDoor","commit_stats":null,"previous_names":["aprilnea/oxidoor"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/AprilNEA/OxiDoor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AprilNEA%2FOxiDoor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AprilNEA%2FOxiDoor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AprilNEA%2FOxiDoor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AprilNEA%2FOxiDoor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AprilNEA","download_url":"https://codeload.github.com/AprilNEA/OxiDoor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AprilNEA%2FOxiDoor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278547821,"owners_count":26004775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["esp-rs","esp32","iot","iot-application","rust"],"created_at":"2025-10-06T02:10:08.867Z","updated_at":"2025-10-06T02:11:20.079Z","avatar_url":"https://github.com/AprilNEA.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch4 align=\"right\"\u003e\u003cstrong\u003eEnglish\u003c/strong\u003e | \u003ca href=\"./README_CN.md\"\u003e简体中文\u003c/a\u003e\u003c/h4\u003e\n\n\u003e[!WARNING]\n\u003e 🚧Under developmen and not ready for production.\n\n\u003e[!NOTE]\n\u003e [Unifi Protect](https://ui.com/us/en/physical-security/door-access) is too expensive, so I'm building my own.\n\n# OXIDOOR 🔒\n\nAn intelligent door lock system built with Rust and ESP32-S3, supporting multiple connectivity options and power supply methods.\n\n## Features\n\n- 🔐 **Smart Door Lock Control**: Electromagnetic lock control with GPIO-based relay switching\n- 🎮 **Multi-Input Support**: Dual button input for manual operation\n- 🔗 **Connectivity Ready**: Designed for NFC, Bluetooth, Wi-Fi, and Ethernet integration\n- 🔌 **Power Options**: Supports PoE (Power over Ethernet) power supply\n- 🦀 **Rust-Powered**: Built with Rust for safety and performance on ESP32-S3\n- ⚡️ **Async Runtime**: Embassy-based asynchronous task handling\n\n## Hardware Requirements\n\n- ESP32-S3 microcontroller\n- Electromagnetic door lock (controlled via GPIO5)\n- Two input buttons (GPIO6, GPIO7)\n- Power supply (standard or PoE)\n- PN532/PN5180 NFC reader\n- 3.3V relay\n\n## Current Implementation\n\nThe current version provides basic door lock functionality:\n\n- **Door Lock Control**: Electromagnetic lock connected to GPIO5\n- **Button Inputs**: Two buttons (GPIO6, GPIO7) with internal pull-up resistors\n- **Automatic Locking**: 3-second unlock duration when buttons are pressed\n- **Async Operation**: Non-blocking operation using Embassy executor\n\n## Building and Flashing\n\n### Prerequisites\n\n```bash\n# Install Rust ESP toolchain\ncargo install espup\nespup install\n\n# Source the environment\nsource ~/export-esp.sh\n```\n\n### Build and Flash\n\n```bash\n# Build the project\ncargo build\n\n# Flash to ESP32-S3\ncargo run\n```\n\n## Pin Configuration\n\n| Function  | GPIO Pin | Description                                          |\n| --------- | -------- | ---------------------------------------------------- |\n| Door Lock | GPIO5    | Relay control output (HIGH = locked, LOW = unlocked) |\n| Button 1  | GPIO6    | Input with pull-up (LOW when pressed)                |\n| Button 2  | GPIO7    | Input with pull-up (LOW when pressed)                |\n\n## Project Structure\n\n```\nsrc/\n├── main.rs          # Main application entry point\n├── task.rs          # Async door control task implementation\n```\n\n## Future Roadmap\n\n- 📱 NFC card authentication\n- 📡 Bluetooth Low Energy support\n- 📱 Wi-Fi connectivity and remote control\n- 🌐 Ethernet connectivity\n- 📊 Access logging and monitoring\n- 🔒 Enhanced security features\n- 📱 Mobile app integration\n\n## License\n\nLicensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for details.\n\n## Author\n\n- [AprilNEA](https://github.com/aprilnea)\n\nRepository: [https://github.com/aprilnea/oxidoor](https://github.com/aprilnea/oxidoor)\n\n---\n\n*OXIDOOR - Securing your space with Rust reliability*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faprilnea%2Foxidoor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faprilnea%2Foxidoor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faprilnea%2Foxidoor/lists"}