Access Guard
ESP32 access-control prototype with keypad, phone approval, SMS codes, and local logs
Project gallery
Overview
About the project
I built an ESP32 door-access prototype around a keypad, servo lock, LCD, SD card, RTC, GSM modem, and Bluetooth Serial. A user enters an ID and selects phone-app approval, an approver PIN, or a one-time code sent by SMS. The controller checks its local user file, records access events, and drives the lock and status indicators. The companion app can request lock status, read logs, and send approval or lock commands over Bluetooth.
The need
Door access must still check users and record events when the device has no web connection.
What I built
The ESP32 reads enabled users and approvers from an SD-card CSV file and timestamps results with an RTC. It also reads door and lock switches, supports an emergency switch, and returns explicit errors when the card or log is unavailable.
Features
Main features
Access checks
- Keypad ID entry followed by app approval, approver PIN, or SMS one-time code
- Enabled-user and approver lookup from an SD-card CSV file
- Bluetooth Serial commands for status, logs, approval, lock, and unlock
Door control
- Servo lock, emergency switch, reed door sensor, and lock-position switch
- LCD prompts with buzzer and LED feedback
- Power-source indicator reads an analog voltage input
Local audit trail
- RTC-stamped access attempts and lock actions written to the SD card
- Companion app can request the access log over Bluetooth
- Prototype firmware checks missing SD card and missing user file at startup
Implementation
Technical stack & architecture
Microcontroller
ESP32 / Arduino framework
Build
PlatformIO / C++
Communication
Bluetooth Serial; GSM SMS for codes
Storage
SD-card CSV files
Hardware
Keypad, LCD, servo, reed switch, RTC
Have a project in mind?
Tell me what you want to build, your timeline, and your main requirements.