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.
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.
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 proiect
Mediul de dezvoltare utilizat a fost Arduino IDE 1.8.19 Biblioteci folosite:
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.
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
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:
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.
https://www.instructables.com/I2C-between-Arduinos/ https://www.arduino.cc/reference/en/language/functions/communication/serial/ https://create.arduino.cc/projecthub/MissionCritical/how-to-set-up-fingerprint-sensor-with-arduino-ebd543/
https://randomnerdtutorials.com/fingerprint-sensor-module-with-arduino/
https://www.adafruit.com/product/751/
https://learn.sparkfun.com/tutorials/apds-9960-rgb-and-gesture-sensor-hookup-guide/all/ https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/
https://forum.arduino.cc/t/resources-for-wire-management/521679/