External Link

SMART LOCK

Autor: Stan Lucian-Mihai

Grupa: 331CB

Introducere

Proiectul consta intr-o incuietoare de seif electrica cu alarma, LCD si modul RFID.

Pe langa sistemul de alarma inclus, proiectul are optiunea de a monitoriza parametrii incaperii: temperatura si umiditate.

Descriere generală

RFID-ul serveste la adaugarea si stergerea cartelelor de acces care pot fi gasite pe sistem.

Incuietoarea este actionata de un servomotor, care se va deschide la momentul scanarii unei cartele de acces. Totodata utilizatorul va fi intampinat de un set transmis de buzzer. User-ul va avea acces in seif timp de 10 secunde, dupa care usa se va inchide automat prin intermediul servomotorului. Daca user-ul vrea sa inchida mai devreme de cele 10 secunde usa, acest lucru se poate face prin intermediul butonului aflat in seif.

In cazul in care se scaneaza o cartela a carui acces este invalidat de sistem, usa nu se va deschide, buzzerul va actiona pentru un timp de cateva secunde, precum o alarma.

Pe ecranul LCD, de-a lungul timpului se pot gasi afisate parametrii de stare ai incaperii: temperatura si umiditate.

TODO: Abilitatea sa stocheze pe un fisier datele despre intrarile efectuate, apoi v-a trimite printr-un serviciu datele adunate.

Hardware Design

Lista piese:

  • Arduino UNO
  • RFID-RC522
  • LCD 16×02
  • I2C Adaptor
  • Breadboard
  • Buzzer
  • Servomotor SG90 9g
  • Temperature Sensor DHT11
  • Rezistente (incluse in componente)

(Note: Schematicul nu contine modulul RFID RC522 deoarece nu exista pe Tinkercad. Il voi desena custom in aplicatia Eagle pana la PM Fair.)

Software Design

Am folosit Arduino IDE pentru a dezvolta programul. Bibliotecile folosite au fost:

  • DHT.h - pentru senzorul de temperatura si umiditate DHT11 (ADC).
  • SPI.h - comunicarea prin SPI.
  • MFRC522.h - modulul RFID RC522, care comunica prin SPI.
  • Wire.h
  • Servo.h - pentru servomotorul SG90 9g.
  • LiquidCrystal_I2C.h - pentru LCD-ul 16×02 care comunica prin I2C.
  • avr/io.h
  • util/delay.h - biblioteca folosita pentru activarea unui delay de o secunda in cadrul unei intreruperi.

Variabile globale:

  • HT(A0, DHT11) - senzorul de temperatura si umiditate.
  • humidity - valoarea umiditatii.
  • tempC - valoarea temperaturii in grade Celsius.
  • tempF - valoarea temperaturii in grade Fahrenheit.
  • SERVO (#define) - pin-ul conectat servomotorul.
  • BUZZER (#define) - pin-ul conectat buzzer-ul.
  • BUTTON (#define) - pin-ul conectat butonul.
  • UNLOCK_ANGLE (#define) - valoarea unghiului la care este deschis servomotorul.
  • LOCK_ANGLE (#define) - valoarea unghiului la care este inchis servomotorul.
  • lcd(0x27, 20, 4) - LCD-ul pe care se afiseaza textul.
  • RST_PIN (#define) - pin-ul reset al modului RFID-RC522.
  • SS_PIN (#define)
  • servo - servomotorul actionat prin intermediului pin-ului #SERVO.
  • tags - vector in care se retin cartelele de acces scanate.
  • no_tags - numarul de cartele de acces scanate.
  • tag_id - id-ului cartelei de acces master.

Functii:

  • get_id()
  • open_door()
  • close_door()
  • setup()
  • loop()
  • add_remove()
  • ISR(PCINT2_vect)

Functionare:

La pornire proiectul asteapta introducerea cartelei “Master”.

Ea este folosita pentru adaugarea si stergerea altor cartele de acces.

Asadar, administratorul seif-ului trebuie sa scaneze cartela master si apoi sa adauge o cartela normala de acces.

Dupa scanarea cartelei, usa se deschide si user-ul va fi intampinat de un sunet tranmis de buzzer.

User-ul are posibilitatea de a cauta in seif timp de 10 secunde, dupa care se va inchide usa, sau poate sa inchida usa din butonul aflat in interior.

Pe tot parcursul procesului de utilizare pe LCD se vor afisa mesaje, precum “Door Opened!”, temperatura, umiditate etc.

Administratorul poate apropia cartela master si se asteapta adaugarea sau stergerea unei cartele deja existente in sistem.

Daca un user incearca sa apropie o cartela care nu este adaugata in sistem usa nu se va deschide si buzzer-ul va atentiona printr-un sunet lung de alarma.

(Note: Add hyperlink + methods description)

Rezultate Obţinute

Proiectul, surprinzand cateva faze demo

(Note: add video Demo)

Concluzii

Reusite:

Probleme intampinate:

  • comunicare UART cu laptopul (still headache)
  • delay in intreruperi

Ce am invatat din acest proiect:

  • Citirea de specificatii a pieselor, pentru calcularea parametrilor necesari de functionare.
  • Lucru cu intreruperi.
  • Realizarea unei logici pentru un proiect Arduino ce contine mai multe module.
  • Utilizarea modulelor incluse in proiect.

Download

Arhiva cu codul sursa: lucian_mihaistan_331cb.zip

Jurnal

  • 25.04.2022: Comanda piese
  • 07.05.2022: Creare pagina Wiki (schema bloc + descriere generala)

Bibliografie/Resurse

pm/prj2022/dene/smartlock.txt · Last modified: 2022/06/01 16:14 by lucian_mihai.stan00
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