Smart Door Lock

Autor

Introducere

Proiectul implementeaza un sistem de control al accesului intr-o incapere.
Se bazeaza pe folosirea unor taguri RFID sau pe introducerea unei parole pe un keypad.
Deschiderea usii (adica actionarea servomotorului) se va face daca o persoana scaneaza un card valid sau daca introduce parola corecta.
Exista si utilizatori cu drepturi de ADMIN.
Modul admin poate fi accesat doar de catre persoana care are acest drept si care scaneaza un card special facut pentru a se intra in acest mod. Adminul are posibilitatea de a schimba parola actuala. Sistemul afiseaza mesaje corespunzatoare in functie de starea curenta (LOCKED,OPEN ,CHANGE PASS etc).

Descriere generală

Schema bloc

  1. Arduino UNO
    • Nucleu al sistemului.
    • Componenta ce mediaza fluxul de date dintre Keypad,RFID Reader, LCD 16×2, servomotor.
    • Verifica daca parola introdusa este corecta sau daca tagul este valid
    • Intra in modul ADMIN la validarea unui card special
  2. Keypad
    • Are rolul de a trimite datele introduse de utilizator (sirul de caractere) catre Arduino.
  3. Servomotor
    • Este actionat atunci cand trebuie permis accesul
  4. LCD-I2C
    • Afiseaza mesaje pentru a fi mai usor utilizatorului sa foloseasca sistemul
  5. RFID READER
    • Componenta care scaneaza carduri si transmite tag ul citit catre ARDUINO care analizeaza validitatea
  6. GREEN-LED
    • Semnal vizual ca totul usa este deschisa
  7. RED LED
    • Semnal ca parola a fost respinsa sau ca tag ul nu este valid.
  8. ALIMENTARE
    • Set de 6 baterii de 1.5 V

Hardware Design

Lista de piese

-Nume- -Numar piese-
Arduino Uno R3 1
Keypad 1
RFID Reader 1
LED-uri
Servomotor 1
LCD 1
Fire
Breadboard 1
Suport baterii 1
Baterii 1.5V 6

Schema Electrica

Conectare RFID Reader

Readerul RFID are nevoie de o tensiune de 3.3 V ,prin urmare l-am conectat la iesirea de 3.3 V de pe ARDUINO.
Pentru ceilalti pini (SCK,MISO,MOSI,SS,RST) am folosit pinii D9-D13 de pe placa.

Conectare LCD-I2C

Acest tip de LCD se conecteaza la Arduino folosind interfata seriala I2C. Mai exact, acesta vine cu 4 pini: VCC, GND, SDA si SCL. Toti cei 4 pini vor fi conectati la pinii corespunzatori de pe Arduino. LCD-ul a venit si cu modului I2C inclus, astfel ca nu a fost nevoie de a face legaturile dintre pinii de pe LCD manual. A fost necesara aflarea adresei LCD-ului pentru a putea comunica cu acesta.

Conectare Keypad

Conectarea Keypad-ului a presupus conectarea celor 8 pini ai Keypad-ului la pinii de pe Arduino(pinii de coloana la D2-D5,iar pinii pentru linie la A0-A3) .

Conectare Servo-motor

Am conectat servo-motorul la pinul D8 si l-am alimentat la 5V.

Conectare alimentare

Alimentarea este formata din 6 baterii de 1.5V care sunt puse pe un suport si conectate la mufa de pe placa.

Software Design

  • Limbaj de programare folosit: C
  • Mediu de dezvoltare si compilare: Arduino IDE

Implementare

Biblioteci folosite
  • MFRC522.h - pentru RFID reader
  • LiquidCrystal_I2C.h - pentru LCD
  • Keypad.h - pentru keypad
  • Servo.h - pentru servomotor
  • SPI.h - pentru comunicarea cu RFID reader
Program
  1. Inainte de setup :
    • Am setat parola initiala la “1234”
    • Am setat seria valida de tag si de admin
  2. Functia Setup():
    • Am initializat lcd-ul si am setat pinii de output pentru cele 2 leduri.
    • Am facut initializarile pentru servomotor si pentru cititorul de carduri
  3. Functia Loop():
    • Logica implementata este urmatoarea:
      • se verifica daca se scaneaza vreun card
        • daca se scaneaza un card se analizeaza daca acesta este valid sau nu si se actioneaza servomotorul sau nu
        • de asemenea se verifica daca este card de admin
          • daca este card de admin atunci acesta poate schimba parola
          • adminul trebuie sa apese “C” pentru a introduce noua parola
          • adminul trebuie sa apese “D” ca sa iasa din modul privilegiat
      • daca nu se scaneaza niciun card se primesc date de la keypad
        • daca parola introdusa este corecta se actioneaza servomotorul si se aprinde becul verde insotit de un mesaj pe LCD
        • daca este gresita se aprinde becul rosu si nu se deblocheaza usa

Rezultate obtinute

In final , am obtinut un sistem care poate fi folosit prin atasarea la nivelul servomotorului a unei bariere sau a ceva asemanator pentru a bloca deschiderea unei usi . Se poate realiza astfel permiterea accesului intr-o incapere doar anumitor persoane . Sistemul este usor de folosit ,iar mesajele afisate pe LCD fac ca acest lucru sa fie evident.

Afisaj dupa introducerea unei parole corecte :

Imagine din modul ADMIN:

Demo: Link Demo

Concluzii

  • Proiectul este functional si poate fi folosit cu putine prelucrari la nivel hardware.
  • Initial am dorit sa realizez un sistem de accces care sa aiba definita o parola standard fixa .
  • Dupa aceea am dezvoltat proiectul si am atasat cititorul de carduri si modul de admin din care se poate schimba parola.

Download

Jurnal

  • 21/04: alegere tema proiect.
  • 25/04: creare pagina Wiki, descriere, diagrama bloc, lista componente hardware (sumar).
  • 06/05: achizitionarea componentelor (ecran LCD, Keypad, RFID Reader, fire, baterii,servomotor).
  • 11/05: inceperea lucrului la proiect
  • 24/05: realizarea modului de admin
  • 29/05: revizuirea codului,realizare schema electrica si filmarea videoclipului demo.
  • 29/05: realizarea paginii de wiki finale pentru proiect.

Bibliografie/Resurse

pm/prj2021/agrigore/smartdoorlock.txt · Last modified: 2021/05/31 00:17 by sergiu.apavaloae
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0