This is an old revision of the document!
Gardian Automat
Introducere
Cu totii probabil ne-am lovit de problema gardianului de la Poli care te ia la intrebari cand ajungi la facultate ca sa se asigure ca esti student pentru a iti permite sa intri in campus. Problema este ca de cele mai multe ori se intampla asta in special cand esti pe cea mai mare fuga, fiind deja in intarziere. De aici a venit ideea proiectului meu : gardianul automat. In acest mod nu va mai fi nevoie sa ne legitimam si sa oferim explicatii despre motivul pentru care vrem sa intram in campus.
Descriere generală
Imi doresc sa implementez un sistem ce poate descuia poarta prin intermediul unui cod pin (introdus de la tastatura), prin actiunea unei telecomenzi sau cu ajutorul unui senzor rfid.
Schema Bloc
Hardware Design
Componente necesare
Arduino UNO
Breadboard
Buzzer
Senzor RFID
Servo motor
LCD I2C
Tastatura cifre
Modul RFID
Telecomanda IR
Receptor IR
Led
Fire
Simulare atasare componente pe Arduino UNO
Deoarece Thinkercad nu contine modulul RFID am adaugat imagini separate cu simularea atasarii lui pe placuta Arduino
Simulare atasare rfid pe Arduino UNO
Schema Electrica
Software Design
Mediul de dezvoltare folosit
Librari folosite
Descriere implementare
La inceput sunt initializate toate componentele si toti pinii pe care acestia ii folosesc, dar si cateva variabile ajutatoare codului. In functia setup() se initiaza MFRC522-ul, LCD-ul, servo-ul, senzorii si buzzer-ul.
Exista 2 functii, activateDoor() si closeDoor(), ce au functionalitati similare : Acestea verifica daca usa este deja deschisa/inchisa, iar in caz afirmativ afiseaza un mesaj corespunzator pe LCD, fara sa mai actioneze servo motorul. In schimb, daca usa se afla in starea opusa comenzii cerute, atunci se va schimba unghiul servo motorului, fapt ce il va face sa se miste pentru a simula inchidrea/deschiderea unei bariere. De asemenea in acest caz se afiseaza mesaje corespunzatoare pe ecranul LCD-ului.
In funtia loop() exista 4 evenimente ce se pot intampla :
Senzorul RFID detecteaza un card/tag cunoscut, moment in care va apela functia activateDoor()
Senzorul cu infra rosu detecteaza apasarea unui buton : Se compara valoarea semnalului primit cu semnalele cunoscute de acesta (definite cu ON si OFF) iar in caz de egalitate se apeleaza una dintre cele doua functii de actionare a zavorului. Altfel, semnalul este ignorat iar programul isi continua executia.
Este detectata apasarea unei chei de pe tastatura : Initial pe LCD este afisat mesajul ”Enter password:”. In momentul in care se introduc cifre de la tastatura acestea vor fi si ele afisate pe LCD, sub mesajul anterior mentionat. Pentru deschiderea usii este necesara introducerea unui cod de 4 cifre (definit de mine 1579). In cazul introducerii unei serii de 4 cifre diferite de codul presetat se va afisa un mesaj corespunzator, se va sterge codul introdus de pe LCD si nu se va actiona miscarea servo motorului. In caz ca a fost introdus codul corect se apela din nou functia activateDoor().
Usa este deschisa si nu s-a mai produs niciun alt eveniment dintre cele 3 prezentate anterior in ultimele cateva secunde : In acest moment usa se va inchide automat, pentru a ne asigura ca nu va ramane deschisa in permanenta.
Rezultate Obţinute
Concluzii
Download
Jurnal
05.05.2022 : Creare Wiki, Adaugare introducere, descriere generala, schema bloc si lista de componente.
11.05.2022 : Adaugare Hardware Design : Schema electrica si simularea atasarii componentelor pe Arduino
25.05.2022 :
Editare parte Hardware pentru a fi in conformitate cu rezultatul final
Adaugare bibliografie
Adaugare o parte din descrierea software design-ului
Bibliografie/Resurse