Table of Contents

Keypad Door Lock

Autor: Olteanu Eduard-Florin 336CA

Introducere

Deschiderea usii prin introducerea unui pin cu ajutorul unei tastaturi 4×4. Atunci cand se vrea sa se deschida incuietoarea se tasteaza parola, daca este corecta se afiseaza “acces permis”, altfel se afiseaza “acces respins”.

Ideea a venit din faptul ca am ramas blocat in afara apartamentului de cateva ori.

Descriere generala

Schema Bloc

Hardware design

Piese necesare:

Schema Electrica

Software design

Partea software am dezvoltat-o in Arduino IDE, folosindu-ma si de librariile Keypad.h de la Mark Stanley si Alexander Brevig, LiquidCrystal_I2C.h de la Frank de Brabander si libraria oficiala EEPROM.h - link-urile sunt incluse in bibliografie.

Pentru a salva o parola m-am folosit de memoria EEPROM. Prima data am initializat o parola demo si apoi am comentat liniile de initializare pentru ca alta data cand incarc programul sa nu se mai reinitializeze parola ci sa ramana salvata ultima parola salvata. In functia initialPassword se citeste ultima parola salvata in memorie - functie apelata in setup() pentru a avea tot parola atunci cand pornim proiectul.

In functia change() am implementat o logica pentru modificarea parolei. Aceasta functie este apelata daca este apasat butonul '#' fara a fi introdus alt caracter. In change se verifica mai intai daca se cunoaste parola curenta, iar daca aceasta este introdusa corect poate fi introdusa si parola noua care apoi suprascrie in memorie parola veche.

In functia setup() este initializat pin-ul care controleaza releul, este pornit display-ul si este citita parola din memorie.

In functia loop() sunt asteptate 4 caractere. Atunci cand au fost introduse cele 4 caractere se verifica daca parola introdusa corespunde cu parola salvata. Daca da este trimis semnalul low pe pin-ul care controleaza releul si astfel se comuta intrerupatorul si se deschide incuietoarea. Daca parola este gresita se trimite in continuarea HIGH pe acel pin pentru a nu deschide incuietoarea. Dupa ce au fost introduse 4 caractere si a fost facuta verificarea se reinitializeaza variabilele si se asteapta o noua parola.

Rezultate obtinute

Video: Demo

Concluzii

Acest proiect a fost o modalitate de a expune cunostintele dobandite pe parcursul semestrului intr-un mod fun si la alegerea noastra. Per total mi-a placut ideea si proiectul in sine si simt ca am aprofundat mai bine ceea ce am invatat si am sedimentat informatiile.

Download

Arhiva

Bibliografie/resurse

PDF

https://ocw.cs.pub.ro/courses/pm

https://www.youtube.com/watch?v=xVC0X_PE_XE&t=152s

https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library

https://playground.arduino.cc/Code/Keypad/#Download

https://forum.arduino.cc/t/official-eeprom-library-support-and-reference/301775