Table of Contents

Smart Lock

Introducere

Acest proiect implementează o încuietoare inteligentă bazată pe un microcontroller ATmega328P, care permite accesul printr-un cod PIN de 4 cifre definit de utilizator.

Ce face proiectul:

Scop: Crearea unui sistem electronic funcțional care combină input digital, afișare, control al unui actuator mecanic și stocare persistentă, simulând logica unei încuietori electronice reale.

Ideea de pornire: Am pornit de la dorința de a realiza un sistem de securitate accesibil pentru spații private, care să poată fi utilizat fără chei fizice și care să ofere posibilitatea de schimbare facilă a codului de acces.

Utilitate:

Descriere generală

Sistemul este organizat în jurul microcontrollerului ATmega328P (placă XMINI), care coordonează toate modulele hardware și implementează logica aplicației printr-o mașină de stări.

Module hardware:

Module software:

Interacțiune între module: Butoanele generează evenimente care sunt procesate de mașina de stări, care la rândul ei actualizează LCD-ul, controlează servo-ul prin PWM, schimbă culoarea LED-ului RGB și citește/scrie din EEPROM.

Hardware Design

Listă de componente

Componentă Cantitate Rol în proiect
Placa ATmega328P-XMINI 1 Microcontroller principal
Display LCD 1602 cu modul I2C 1 Afișare interfață utilizator
Servo motor SG90 1 Actuator mecanism blocare
Modul de alimentare MB102 1 Regulator 5V pentru servo
Baterie 9V 1 Sursa primară de energie
Conector baterie 9V cu mufă DC 1 Conectare baterie la MB102
Breadboard 400 puncte 1 Prototipare conexiuni
Buton tactil 6x6mm 4 Input utilizator
LED RGB cu catod comun 1 Indicator status
Rezistor 220Ω 3 Limitare curent canale R/G/B LED
Condensator electrolitic 470µF / 35V 1 Filtrare alimentare servo

Schema electrică

TO DO: Schema electrică va fi realizată în Fusion 360 Electronics și adăugată aici la etapa 2.

Diagrame de semnal

TO DO: Diagramele PWM (servo) și I2C (LCD) vor fi adăugate la etapa 2.

Software Design

Mediu de dezvoltare

Biblioteci 3rd-party folosite

Algoritmi și structuri de date

1. Mașină de stări finite:

typedef enum {
    STATE_LOCKED,           // Sistemul afișează "Introduceti PIN"
    STATE_ENTERING_PIN,     // Utilizatorul introduce cifră cu cifră
    STATE_VERIFYING,        // Compară PIN-ul introdus cu cel salvat
    STATE_UNLOCKED,         // Servo deschis, LED verde, auto-lock dupa N sec
    STATE_SET_OLD_PIN,      // Verifica PIN-ul vechi inainte de schimbare
    STATE_SET_NEW_PIN,      // Introducere PIN nou + salvare in EEPROM
    STATE_LOCKOUT           // 3 incercari gresite blocare 30s
} system_state_t;

2. Debouncing software pentru butoane:

3. Generare PWM pentru servo:

4. Anti-brute-force:

Rezultate Obținute

TO DO: Vor fi documentate rezultatele după asamblarea hardware-ului și implementarea software-ului (etapa 3).

Concluzii

TO DO: Concluziile vor fi adăugate la finalul proiectului.

Download

Repository GitHub

TO DO: Link-ul către repository-ul public GitHub va fi adăugat aici.

Demo video

TO DO: Link YouTube cu demo-ul proiectului va fi adăugat la finalizare.

Jurnal

Bibliografie / Resurse

Resurse Hardware

Resurse Software