Name: Dascalu Stefan-Nicolae
Group: 331CA
eSafe is a digital lockbox implemented on an Arduino Uno. It uses a 4×4 matrix keypad for PIN entry, an SG90 servo for a mechanical latch, a DS1307 real-time clock (I²C) to enforce access windows, and a 16×2 I²C LCD to display status and time. Three wrong PIN attempts trigger an alarm tone and flashing red LED; valid entries drive the servo to unlock, light a green LED, and display “UNLOCKED.”
In Tinkercad I used a generic 7-segment I²C display; the real build uses the DS1307 module on the same SDA/SCL, so no rewiring or code changes are needed.
Component | Interface | Arduino pin | Direction | Rationale |
---|---|---|---|---|
Keypad row/col | GPIO | D2–D9 | input | Scanned periodically by Keypad library (no interrupts) |
Passive buzzer | GPIO | D11 | output | direct drive with tone()/noTone() |
Red LED | GPIO | D13 | output | Built-in LED pin |
Green LED | GPIO | D12 | output | Digital status LED (no PWM on D12) |
Servo SG90 | PWM | D10 | output | attach() supports D10 |
LCD I²C | I²C (TWI) | A4/A5 | bidir | Hardware Wire bus |
RTC DS1307 | I²C (TWI) | A4/A5 | bidir | Shares same TWI bus |
ADC (VCC monitor) | internal ch 14 | — | input | 1.1 V band-gap reference |
Component | Purchase link |
---|---|
Arduino Uno R3 (ATmega328P) | https://www.optimusdigital.ro/ro/placi-avr/4561-placa-de-dezvoltare-compatibila-cu-arduino-uno-r3-atmega328p-atmega16u2-cablu-50-cm.html |
4×4 Matrix Keypad | https://www.optimusdigital.ro/ro/senzori-senzori-de-atingere/470-tastatura-matriceala-4x4-cu-conector-pin-de-tip-mama.html |
DS1307 RTC Module (I²C) | https://www.optimusdigital.ro/ro/altele/4746-modul-ceas-in-timp-real-ds1307.html?search_query=Modul+Ceas+in+timp+real+DS1307&results=3 |
LCD 1602 I²C Blue Backlight | https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/2894-lcd-cu-interfata-i2c-si-backlight-albastru.html |
SG90 Micro-Servo | https://www.optimusdigital.ro/ro/motoare-servomotoare/26-micro-servomotor-sg90.html?search_query=Micro+Servomotor+SG90+90° |
Breadboard + jumper wires + LEDs + resistors | https://www.optimusdigital.ro/ro/kituri/12026-kit-plusivo-pentru-introducere-in-electronica-0721248990075.html |
Library | Purpose | Justification |
Wire / RTClib | I²C bus & DS1307 driver | proven reliability, minimal API for RTC access |
LiquidCrystal_I2C | HD44780 LCD over I²C | reduces wiring and boilerplate, easy print() API |
Keypad | matrix scan & debounce | built-in interrupt support and debounce logic |
Servo | SG90 control | official Arduino, handles PWM timing internally |
1. updateDisplay()
2. handleKey()
3. unlockDoor()
4. loop()
eSafe showcases the seamless integration of three core microcontroller features: PWM (servo latch), ADC (live VCC monitoring), and I²C (RTC + LCD). All time-sensitive tasks are handled with non-blocking `millis()` logic, so the user interface stays responsive while the clock remains accurate.