Table of Contents

Seif

Blaga Ana-Maria-Andreea 334CB

Introducere

Ce face

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.

Care a fost ideea de la care am pornit

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.

Care este scopul proiectului

Scopul proiectului este de a realiza un seif inteligent pentru a depozita în siguranță obiectele de valoare.

De ce cred că este util pentru alţii şi pentru mine

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.

Descriere generală

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.

Hardware Design

Lista de componente

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

Schema electrica

Software Design

În realizarea proiectului am folosit:

  • Arduino IDE - pentru scrierea și testarea codului
  • Tinkercad - pentru simularea proiectului
  • Biblioteca LiquidCrystal_I2C - pentru afișarea pe LCD-ul I2C
  • Biblioteca pitches - pentru generarea sunetelor în diferite situații de utilizare a seifului

LCD

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.

Pentru determinarea adresei LCD-ului I2C am folosit un I2C Scanner.

Senzor de mișcare

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.

Keypad

Folosit pentru introducerea parolei si selectarea optiunii din meniu atunci cand seiful este deblocat:

Servo motor

Determina blocarea/deblocarea seifului în funcție de numărul de grade la care este rotit.

LED RGB

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.

Buzzer

Generează sunete în funcție de parola introdusa la deblocare, dar și la schimbarea parolei pentru a înștiința utilizatorul de finalitatea comenzii.

Rezultate Obţinute

Î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).

Concluzii

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.

Download

proiect_pm_seif.zip

Jurnal

  • 12.05.2022 - Au sosit componentele.
  • 14.05.2022 - Realizat schema în Tinkercad.
  • 15.05.2022 - Observat ca unele conexiuni de pe Tinkercad nu sunt potrivite pentru montajul fizic.
  • 20.05.2022 - Realizat montaj în cutia seifului, lipit cabluri, verificat lipituri, testat fiecare componenta și renunțat la breadboard.
  • 21.05.2022 - Realizat cod pentru keypad, LCD, LED, servomotor și menținere parola și stare seif (locked/unlocked) la restart folosind EEPROM-ul plăcii.
  • 22.05.2022 - Adăugat baterie cu întrerupător ca posibilitate de alimentare, configurat senzorul cu întreruperi pentru detecția mișcării și sunete sugestive pentru acțiunea executata.
  • 23.05.2022 - Adăugat posibilitate ieșire din modul sleep prin apăsarea oricărei taste. Generat schema electrica folosind Tinkercad.
  • 26.05.2022 - Realizat documentație proiect.

Bibliografie/Resurse

ATmega328P Datasheet

PIR HC-SR501 Datasheet

EEPROM Guide

Export to PDF