Laser Tripwire Alarm

Autor : Chiornita Mario-Gabriel
Grupa : 1221A
Facultate : FILS

Introducere

Un tripwire este un dispozitiv declanșat de mișcări fizice, îl poți folosi pentru a detecta oameni, animale, mașini sau obiecte când trec prin zona de acțiune a laserului.

De asemenea, pentru mine reprezintă un proiect cu utilitate în viața de zi cu zi și poate fi implementat cu puține costuri ceea ce este un avantaj în creșterea securității.

Descriere generală

Acesta se bazează pe un emițător LASER, care trimite în mod constant fascicule către senzorul de lumină, iar când cineva/ceva trece, senzorul nu va primi fasciculele, iar alarma este declanșată și nu se va opri până când nu o restabiliți (butonul/parola).

Hardware Design

Name Quantity
Pulsivo Arduino Uno 1
Light sensor GROVE v1.2 1
ky 008 Laser emitter 1
Buzzer module 1
4×4 keypad matrix 1
10 Pc. Jumper Wire Kit, 10 cm Long 10
Electric Scheme

Software Design

Am lucrat in IDE oferit de Arduino.

Biblioteci folosite: keypad.h (https://github.com/Chris--A/Keypad)

Codul de acces este stocat într-o matrice, am ales un cod de 4 cifre, îl putem face mai lung sau mai scurt, doar modificam dimensiunea matricei și adăugam sau eliminam valori.

short code[4]={'1','3','6','6'};

Pentru a opri alarma, trebuie să apăsam pe „*” de pe tastatură, apoi să introducem numerele 1, 3, 6, 6, codul va fixa soneria într-o singură frecvență (deranjantă) până când introducem 4 cifre, dacă acestea sunt corecte alarma se va opri, altfel se va declanșa din nou.

void Getpass(){  
tone(13,2000);  
for(short i=0 ; i<4 ; i++)           
 {                         
      char keypressed = myKeypad.waitForKey();             
      if (keypressed==code[i]) 
      a++;           
 }
}

De fiecare dată când introducem o cifră corectă, valoarea „a” crește, dacă este == 4, codul este considerat corect, altfel numărul nu va fi niciodată egal cu 4.

 if(a==4){         
   noTone(13);        
   a=0;         
   detection=false;
         }
CODUL
#include <Keypad.h>
 
#define Rec 0
#define Laser 2
#define Button 3
 
bool detection;
short a=0;
short code[4]={'1','3','6','6'};  //codul de acces este stocat într-o matrice, îl putem face mai lung sau mai scurt
 
 
const byte numRows= 4;            //Rândurile și coloanele tastaturii
const byte numCols= 4;
 
char keymap[numRows][numCols]=    //Harta tastaturii
          {
          {'1', '2', '3', 'A'}, 
          {'4', '5', '6', 'B'}, 
          {'7', '8', '9', 'C'},
          {'*', '0', '#', 'D'}
          };
 
byte rowPins[numRows] = {11,10,9,8}; //Keypad 8 pins
byte colPins[numCols]= {7,6,5,4}; 
 
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
 
void setup() {
 
  pinMode(Laser, OUTPUT);
  digitalWrite(Laser, HIGH);
  delay(2000);
}
 
void loop() {
 
 short Detect = analogRead(Rec);                 //Citirea constantă a valorii senzorului, pentru a detecta dacă cineva trece
 
 
    if(Detect < 500)
        detection = true;
 
    if(detection==true) 
        {                                       //Secvența de alarmă și așteptare constantă ca „*” să fie apăsat
         tone(13,1000);
         delay(50);
         tone(13,200);
         delay(50);
         char keypressed = myKeypad.getKey();
         if (keypressed == '*')                   //dacă este apăsat „*” acceseaza funcția Getpass
         Getpass();
          }
 
     if(a==4){                                   //dacă a==4 înseamnă că codul este corect, alarma este oprită
         noTone(13);
         a=0;                                   //setam a la 0, altfel alarma se va opri automat
         detection=false;
         }
 
 
}
 
void Getpass(){               //Obținerea funcției de parolă
  tone(13,2000);              //Sunet cu frecvență constantă în timp ce introducem codul
  for(short i=0 ; i<4 ; i++)
            {
 
           char keypressed = myKeypad.waitForKey();
              if (keypressed==code[i])   //Dacă secvența este corectă, a crește (4) înseamnă că toate valorile sunt corecte
              a++;
            }
}

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Având un start mai lent decât ceilalți colegi (au întârziat destul de mult anumite piese), acest proiect s-a dovedit a fi o provocare unde am învățat cum sa lucrez util într-un timp scurt. Acest dispozitiv este folosit pentru securizarea anumitor obiecte, alertând proprietarul cu ajutorul unui buzzer. Proiectul funcționează corespunzător dorințelor mele fiind util pentru oricine si in orice mediu.

Sursa inspirației mele fiind filmul Oceans Twelve

Download

Jurnal

  • Săptămâna 1: Am început să fac cercetări pentru tema proiectului și să o aleg pe cea care m-a atras cel mai mult
  • Săptămâna 2: Am plasat comanda pentru piesele necesare
  • Săptămâna 3: Începutul proiectului propriu-zis (Completare pagina wiki || +inca asteptam senzorul de lumina)
  • Săptămâna 4: Terminarea proiectului si prezentarea proiectului la laborator

Bibliografie/Resurse

pm/prj2022/robert/laser-tripwire-alarm.txt · Last modified: 2022/05/27 20:52 by mario_gabriel.mosor
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