English | ็ฎไฝไธญๆ
Warning
๐งUnder developmen and not ready for production.
Note
Unifi Protect is too expensive, so I'm building my own.
An intelligent door lock system built with Rust and ESP32-S3, supporting multiple connectivity options and power supply methods.
- ๐ Smart Door Lock Control: Electromagnetic lock control with GPIO-based relay switching
- ๐ฎ Multi-Input Support: Dual button input for manual operation
- ๐ Connectivity Ready: Designed for NFC, Bluetooth, Wi-Fi, and Ethernet integration
- ๐ Power Options: Supports PoE (Power over Ethernet) power supply
- ๐ฆ Rust-Powered: Built with Rust for safety and performance on ESP32-S3
- โก๏ธ Async Runtime: Embassy-based asynchronous task handling
- ESP32-S3 microcontroller
- Electromagnetic door lock (controlled via GPIO5)
- Two input buttons (GPIO6, GPIO7)
- Power supply (standard or PoE)
- PN532/PN5180 NFC reader
- 3.3V relay
The current version provides basic door lock functionality:
- Door Lock Control: Electromagnetic lock connected to GPIO5
- Button Inputs: Two buttons (GPIO6, GPIO7) with internal pull-up resistors
- Automatic Locking: 3-second unlock duration when buttons are pressed
- Async Operation: Non-blocking operation using Embassy executor
# Install Rust ESP toolchain
cargo install espup
espup install
# Source the environment
source ~/export-esp.sh# Build the project
cargo build
# Flash to ESP32-S3
cargo run| Function | GPIO Pin | Description |
|---|---|---|
| Door Lock | GPIO5 | Relay control output (HIGH = locked, LOW = unlocked) |
| Button 1 | GPIO6 | Input with pull-up (LOW when pressed) |
| Button 2 | GPIO7 | Input with pull-up (LOW when pressed) |
src/
โโโ main.rs # Main application entry point
โโโ task.rs # Async door control task implementation
- ๐ฑ NFC card authentication
- ๐ก Bluetooth Low Energy support
- ๐ฑ Wi-Fi connectivity and remote control
- ๐ Ethernet connectivity
- ๐ Access logging and monitoring
- ๐ Enhanced security features
- ๐ฑ Mobile app integration
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Repository: https://github.com/aprilnea/oxidoor
OXIDOOR - Securing your space with Rust reliability