Proiectul a început ca un seif simplu pe Arduino format dintr-un keypad, un LCD și un servomotor la care am adăugat un senzor cu infraroșu pentru detectarea mișcării, un buzzer, un LED și o baterie cu întrerupător pe care le-am încastrat într-o carcasa.
În primul rând, este necesara setarea unei parole pentru utilizarea seifului. Acesta va intra în modul active atunci când senzorul cu infraroșu detectează mișcare sau când este apăsata o tasta, iar în restul timpului se va afla în modul sleep. Pentru deblocare se va introduce parola, iar în funcție de acesta (corecta/incorecta) se vor declanșa semnale sonore și luminoase corespunzătoare, dar se va afișa și un mesaj pentru a informa utilizatorul dacă operația de deblocare a reușit sau nu. Blocarea seifului se va realiza apăsând tasta '*'. Parola seifului se va putea schimba apăsând tasta '#' atunci când acesta este deblocat.
Am pornit de la nevoia de a avea un seif care sa fie ușor de folosit și care sa-mi poată păstra obiectele personale în siguranța.
Scopul proiectului este de a realiza un seif inteligent pentru a depozita în siguranță obiectele de valoare.
Utilitatea unui astfel de seif consta în faptul ca poate proteja obiectele valoroase, periculoase etc. de persoane care nu au drepturi de acces la ele. Eficienta sa energetica este generata de faptul ca intra în modul sleep atunci când nu exista un potențial utilizator în apropierea sa. Un alt avantaj consta în faptul ca la reset/pana de curent se păstrează setările anterioare ale seifului: parola și statusul (locked/unlocked). Astfel, când va porni, el va face roll-back la starea sa dinainte de evenimentul respectiv.
Sistemul trebuie inițializat prin introducerea unei parole care va determina deblocarea seifului la următoarele utilizări ale acestuia. Parola default a seif-ului este '0000' în cazul în care nu se dorește setarea unei parole propii.
Un senzor detectează mișcare și transmite informația la placa Arduino care determina intrarea sistemului în modul active. Se așteaptă introducerea parolei folosind un keypad, iar în funcție de aceasta (corecta/incorecta) se determina dacă seiful trebuie deblocat prin rotirea servomotorului și se afișează un mesaj corespunzător pe un LCD. De asemenea, la fiecare introducere a parolei se va genera un semnal sonor sugestiv folosind un buzzer și unul luminos folosind un LED RGB.
Seiful va fi blocat prin apăsarea tastei '*' care va determina rotirea servomotorului.
Nume Piesa | Cantitate |
---|---|
Arduino UNO | 1 |
Senzor PIR HC-SR501 | 1 |
Keypad | 1 |
LCD | 1 |
Adaptor I2C pentru LCD | 1 |
Servomotor | 1 |
Buzzer | 1 |
LED RGB | 1 |
Rezistente x 220 Ohmi | 3 |
Proto Shield | 1 |
Carcasa pentru fixare Arduino Uno | 1 |
Conector baterie 9V | 1 |
Baterie 9V | 1 |
Mini switch 3 pini | 1 |
Rezistente x 220 Ohmi | 3 |
Proto Shield | 1 |
Cabluri Dupont tata-tata | ∞ |
Cabluri Dupont mama-tata | ∞ |
Interfațarea cu display-ul LCD se face printr-un modul I2C care simplifica problema traseelor electrice. Pe display se afișează meniul seifului (blocare și schimbare parola) atunci când acesta este deblocat, iar când este blocat se afișează un mesaj sugestiv. Atunci când se apasă o tasta la schimbarea/introducerea parolei se va afișa un caracter '*'. De asemenea, în funcție de parola introdusa la blocare/deblocare se va afișa un mesaj sugestiv pe LCD.
Senzorul PIR se bazează pe tehnologia infraroșu pentru a detecta mișcarea. Are o sensibilitate reglabilă și permite ajustări de întârziere. Senzorul activează întreruperea în Arduino și determina setarea unei variabile care indica dacă seiful este/ar trebui sa intre în modul active.
Folosit pentru introducerea parolei si selectarea optiunii din meniu atunci cand seiful este deblocat:
Determina blocarea/deblocarea seifului în funcție de numărul de grade la care este rotit.
In funcție de parola introdusa la deblocare acesta va genera o lumina sugestiva. In restul timpului, în funcție de starea sistemului (active/sleep), va genera lumina alba sau va fi stins.
Generează sunete în funcție de parola introdusa la deblocare, dar și la schimbarea parolei pentru a înștiința utilizatorul de finalitatea comenzii.
În final am reușit să implementez funcționalitățile de bază pe care mi le-am propus la începutul proiectului, obținând un seif funcțional. O dificultate intampinata a fost generata de unele componenente care nu funcționează atât de bine pe cât m-am așteptat, având un delay destul de mare (senzorul de mișcare).
Sunt foarte mulțumita de rezultatul obținut deoarece am reușit sa implementez tot ceea ce mi-am propus la începutul proiectului. Ma așteptam ca rezultatul final sa fie mai putin estetic, dar carcasa a rezolvat aceasta problema. Câteva observații pe care le-am realizat pe parcursul proiectului:
În concluzie, Arduino Uno este ușor de folosit și destul de complex pentru a realiza un proiect fain. Pana sa fac acest proiect, zona de hardware mi se părea destul de obscura și complicata, însa am realizat ca e destulă informație pe internet încât sa treci peste orice obstacol.