This is an old revision of the document!
Proiectul constă în realizarea unui sistem de închidere/deschidere pe baza unui cod de acces. Funcționalitatea implementată de încuietoare este una simplă: încuietoarea este atașată unei cutii (sau oricărui compartiment/spațiu de depozitare), iar în momentul în care aceasta este blocată, un servo motor va fi acționat și astfel acesta va bloca ușa cutiei.
Modul implicit al încuietorii este unlocked. Încuietoarea va ramâne în acest mod până când butonul Lock este apăsat. Pentru a debloca încuietoarea este necesară introducerea unei parole de 6 cifre. Introducerea parolei corecte acționează din nou servo motorul care va debloca usa cutiei și astfel încuietoarea revine la starea unlocked.
Ideea de la care am pornit atunci când am ales proiectul a fost realizarea unui dispozitiv pe care l-am văzut implementat sub diferite metode în viața reală. Sistemul de smart lock este acum folosit in spațiile de depozitare a bagajelor din aproape fiecare magazin, iar asta m-a făcut să vreau să îmi construiesc propriul sistem de închidere.
LiquidCrystal.h
Programul inițializează încuietoarea ca fiind închisă. Primele 4 butoane (cele mai depărtate de LCD) reprezintă cifrele 1, 2, 3 și 4. Pentru a debloca încuietoarea este necesară introducerea unui cod de 4 cifre format cu cifrele 1-4. Celelalte 2 butoane reprezintă butonul de Enter (pentru a putea valida codul) și butonul de Lock. Parola este setată în cod, în cazul de față parola fiind 1234. Poate fi schimbată la începutul programului, fiind stocată ca variabilă în program.
Implementarea codului a constat în verificarea existenței semnalului pe fiecare din cele 4 butoane de input, iar dacă secvența de semnale era cea corectă, se verifică și dacă butonul Enter a fost apăsat. În acest caz, programul va afișa pe ecranul LCD mesajul “Access granted” și un semnal va fi trimis la servo-motor. Acesta rotește elicea la 90º și astfel încuietoarea este deschisă. Dacă secvența nu este cea corectă, se va afișa pe ecran mesajul “Access denied” și se va aștepta introducerea unei secvențe noi.
În cazul în care încuietoarea este deschisă și se apasă butonul de Lock, servo-motorul va primi un semnal și se va roti din nou cu 90º, iar pe ecran va apărea mesajul “Password:” pentru introducerea codului de acces.
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.
Resurse Software
https://docs.arduino.cc/learn/electronics/lcd-displays
https://www.hobbytronics.co.uk/arduino-tutorial2-servos
https://123d.circuits.io/circuits/2341563-arduino-safe
Resurse Hardware
https://docs.arduino.cc/learn/electronics/servo-motors
https://www.instructables.com/Push-Button-Combination-Lock-Arduino/