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.
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).
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 |
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; }
#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++; } }
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
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