Smart Safe

Introducere

Smart Safe este un Seif Smart ce poate fi deblocat prin diverse metode “smart”. Scopul acestuia este de a pastra obiectele de valoare in siguranta si de a oferi metode moderne de deblocare.

Ideea de la care a pornit proiectul a fost necesitatea securitatii unui obiect de valoare sporita, avand acces doar prin metode moderne si sigure. Drept urmare, metodele de deblocare ale seifului sunt printr-o o parola prestabilita (nemodificabila din interfata) sau printr-o amprenta salvata softare, nesalvabila din interfata - pentru a nu putea fi hijacked.

Un seif smart este util pentru orice casa moderna. Va pastra lucrurile de valoare in siguranta.

Descriere generală

Prototipul acestui Smart Safe are la baza 2 placute Arduino Uno ce comunica intre ele serial prin pin-urile RX/TX. Seiful se poate inchide prin apropierea urmata de indepartarea mainii fata de senzorul de gesturi, acesta citind actiunea “FAR”. Seiful se poate deschide prin 2 modalitati: fie prin Keypad, introducand un cod prestabilit de catre programator, fie prin utilizarea senzorului de amprenta.

Pentru deblocarea seifului din parola, prin intermediul keypad-ului, sunt valabile 2 incercari de la blocarea seifului - la fiecare blocare a seifului, acestea se reseteaza. Seiful afiseaza prin intermediul unui LCD mesaje folositoare pentru utilizator, inclusiv caracterele introduse prin keypad. Cand parola este introdusa incorect, buzzer-ul va porni pentru o perioada scurta de timp. Pentru deblocarea seifului din amprenta trebuie doar apropiat degetul salvat catre senzor, iar seiful se va debloca daca amprenta analizata se va potrivi cu una din amprentele presalvate de catre senzor. Cat timp seiful este deblocat, ledul verde va fi aprins.

Conectarea componentelor este reprezentata in schema de mai jos.

Hardware Design

Lista piese

Piesa
Arduino UNO
LCD I2C
Senzor gesturi si proximitate, RGB
Senzor amprenta
Led verde
Buzzer simplu
Keypad 4×3 (0-9 + * + #)
Breadboard (mini + standard)
Rezistori 100 ohmi
Mini servomotor

Schema componente, fara senzori Gesturi si Amprenta, indisponibili in tinkercad

Scheme electrice

Schema electrica Senzor Gesturi RGB - APDS-9960

Schema electrica Senzor Amprenta

Schema electrica proiect

Software Design

Mediul de dezvoltare utilizat a fost Arduino IDE 1.8.19 Biblioteci folosite:

  • SparkFun_APDS9960 - utilizata pentru Senzorul de gesturi
  • Adafruit_Fingerprint - utilizata pentru Senzorul de amprenta
  • Wire - utilizata pentru I2C
  • Keypad - utilizata pentru Keypad
  • LiquidCrystal_I2C - utilizata pentru LCD
  • Servo - utilizata pentru servomotor-ul de blocare/deblocare a seifului

Prima placuta (placuta 1) este conectata la servomotor, LCD, Keypad, buzzer si LED. Aceasta faciliteaza controlul servomotorului in functie de inputul primit de la Keypad si de la placuta 2. Output-ul transmis este pe LCD (ca mesaje, bazat pe starea actuala), pe buzzer (la gresirea introducerii parolei prin Keypad), pe LED (deblocarea seifului) si la servomotor (blocare/deblocare seif). Aceasta utilizeaza functia doKeypad() in loop(), functie ce verifica inputul curent al keypad-ului, input salvat intr-un buffer. Dupa apelarea functiei doKeypad() este apelata si functia de ascultare a canalului de transmisie seriala printr-o conditie if (Serial.available() > 0)

Prima placuta asculta si semnalul serial pe baud rate-ul 9600 de la placuta 2. Semnalul primit este fie de deblocare a seifului (prin senzorul de amprenta) sau de blocarea a seifului (prin senzorul de gesturi).

Pe placuta 2 loop-ul este bazat pe o conditie de exista a flagului de intrerupere isr_flag, care daca este activ executa handle-ul de gesturi (functia handleGesture()), altfel executa functia getFingerprintID() - pe scurt, daca senzorul de gesturi detecteaza ceva, detectia senzorului de amprenta este oprita.

Rezultate Obţinute

Fata proiect oprit

Fata proiect pornit

Spate proiect deschis

Latura proiect cu Keypad

Servo deschis, poza de la distanta

Servo deschis, poza de la apropiere

Senzor amprenta inchis

Concluzii

Implementarea acestui proiect s-a dovedit putin mai complicata decat asteptarile initiale, dar mai putin costisitoare ca si timp si resurse. Concluziile trase sunt urmatoarele:

  1. Aspectul unui produs este extrem de important si trebuie uneori tratat ca prioritate principala. Aspectul produsului realizat pentru acest proiect lasa de dorit, din cauza simplitatii materialelor folosite —— si a lipsei cu desavarsire a simtului meu estetic.
  2. Proiectarea este extrem de importanta inainte de inceperea construirii unui proiect. Cu cat prototipul este proiectat mai riguros, cu atat producerea fizica a acestuia devine mai mult exclusiv asamblare.
  3. Cable management-ul este probabil cel mai mare challenge intr-un proiect de acest gen.
  4. Impartirea modulara a proiectului poate salva enorm de mult timp si multi nervi. Personal, decizia de a utiliza 2 placute arduino cu 2 breadboard-uri (in locul unei singure placute care ar fi fost mult mai aglomerata) s-a dovedit a fi una foarte buna. Evident, si aceasta a atras de la sine problemele ei - probleme de conectare intre placute, de powering, cable management, spatiu fizic, etc. – dar asamblarea si repetata reasamblare au fost ulterior floare la ureche.
  5. Senzorii mai speciali necesita mult mai mult research pentru a putea fi folositi pentru prima data. Senzorii de amprenta si gesturi au fost cei mai greu de folosit din cauza lipsei tutorialelor exacte pe modelele utilizate de mine, lipsei schemelor electrice si chiar a codurilor sursa nepotrivite pentru placuta Arduino Uno (eg. pentru senzorul de gesturi input-ul a trebuit modificat de la 100mA la 50mA in codul sursa deoarece nu detecta input continuu).
  6. Componentele mai speciale (eg. senzor de amprenta) sunt mereu mai complicate si frustrante de folosit, dar in acelasi timp creeaza un sentiment puternic de multumire si satisfactie. Si unele din ele sunt chiar cool.

Download

Arhiva scheme + cod : scheme_cod.rar


Link demo deschidere keypad: https://www.youtube.com/shorts/gmgMTq9I2QE

Link demo deschidere cu amprenta: https://www.youtube.com/shorts/yk6BAzYVmLA

Link-ul 2 contine si inchidere cu gesturi.

Bibliografie/Resurse

pm/prj2022/ncaroi/smart-safe-gestures.txt · Last modified: 2022/05/27 23:03 by constantin.radoi00
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