Table of Contents

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

*Source Code

*Electric diagram

Jurnal

Bibliografie/Resurse

https://ardushop.ro/ro/home/89-modul-buzzer.html?gclid=CjwKCAjw7cGUBhA9EiwArBAvooFcSrWbhKVi24jDsyeEdWovjSsRJ1dfju0rWZYueQ2UHNw3YCHWNBoCtTUQAvD_BwE https://www.sigmanortec.ro/Modul-dioda-laser-KY-008-p126265142?gclid=CjwKCAjw7cGUBhA9EiwArBAvosYIsk3VPmFXy06tMPde5yQvnzRVQsOup2G6UDXkm6JZ9l3N184ogRoCCwEQAvD_BwE https://www.seeedstudio.com/Grove-Light-Sensor-p-746.html

Export to PDF