This is an old revision of the document!
Încuietoare inteligentă
Introducere
Proiectul este o încuietoare inteligentă pentru ușă. Acesta include funcționlitatea de deschidere prin intermediul unei parole setată la început de către utilizator. De asemenea, pentru ieșirea din cameră, pe aceeași ușă, include funcționalitatea de deschidere fără autentificare, prin simpla apăsare a unui buton.
Scopul proiectului este securizarea zonelor private(încăperi, clădiri, instituții) și limitarea accesului neautorizat.
Proiectul a pornit de la ideea de siguranță și eficientizare a securității. Chiar dacă în prezent există sisteme de securitate cu mult mai avansate, consider că acest proiect este util prin prețul realizării, prin potențialul de dezvoltare și prin simplitatea utilizării de către persoane fără cunoștințe din domeniul IT sau al electronicii.
Descriere generală
Schemă bloc
Descrierea componentelor
Mircrocontroller-ul Arduino Uno gestionează toate celelalte componente.
Ledul RGB semnalizează cu verde sau roșu starea deschisă/închisă a ușii.
Buzzer-ul semnalizează sonor introducerea unei parole greșite, deschiderea sau închiderea ușii.
Servo motoarele execută acțiunea de deschidere/închidere a ușii.
Senzorul Ultrasonic HC-SR04++ verifică dacă exista persoane care traverseaza usa, atunci cand este deschisa.
Tastatura matriceală 4×4 ajută la introducerea parolelor.
LCD 1602 cu Interfață ajută la setarea si vizualizarea parolelor și informațiilor legate de starea ușii.
Hardware Design
Aici puneți tot ce ține de hardware design:
listă de piese
-
diagrame de semnal
rezultatele simulării
Listă de componente
Arduino Uno R3
Breadboard 830 puncte
Fire tată-tată, tată-mamă
Rezistențe 220ohm
2 x Micro Servomotor SG90 90º
Ultrasonic HC-SR04+
Buzzer
Pushbutton
Tastatură matriceală 4×4 cu cunector pin de tip mamă
LCD 1602 cu Interfață
Schema electrică
Poze proiect hardware
Software Design
Detali tehnice:
Mediu de dezvoltare VSCode + PlatformIO
Cod scris in C++
Librariile utilizate: keypad, liquidcrystal_i2c, servo, newPing
Structura codului:
Codul este struturat in 3 etape:
definirea variabilelor, perifericelor si functiilor secundare
setarea variabilelor globale si a perifericelor
executia propriu zisa a codului
Etapa 1:
Sunt definite variabilele globale(ex: password) care ajuta la gestionarea logicii de securitate a usii, dar si functii ajutatoare playTone(pentru folosirea buzzer-ului), * delayMicroseconds_custom (pentru a se evita functile de delay clasice, functia custom citeste un timer).
Sunt implementate si functiile:
getDistance() - masoara distanta dintre usa si cel mai apropiat obiect. Prin acest proces, aflam daca prin usa trece o persoana in momentul respectiv sau nu, de unde rezulta ca stim daca putem inchide usa in acel moment.
openDoor() - logica de deschidere a usii. Se actioneaza servomotoarele si buzzer-ul simultan si se verifica permanent distanta folosind getDistance(). Daca nu se afla nimeni in cadrul usii, se actioneaza servomotarele si se inchide usa. In paralel cu acest proces, ledul RGB semnalizeaza cu verde si rosu starile deschisa si inchisa a usii.
accessDenied() - refuzarea accesului, se afiseaza detallile.
Sunt definite perifericele utilizate: buzzer-ul, butonul, tastatura matriceala 4×4, LCD-I2C, servomotoarele, senzorul HC-SR04.
Din cauza faptului ca senzorul HC-SR04 si buzzer-ul folosesc generic acelas timer, a fost nevoie de setarea a 2 timere diferite, cate unul pentru fiecare dispozitiv.
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF