Back to all projects
IoTStatus: Prototype

Access Guard

ESP32 access-control prototype with keypad, phone approval, SMS codes, and local logs

Embedded Systems Developer (Freelance)
Jun 2026
Prototype

Project gallery

Companion app control screen
Companion app logs screen

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.