Project showcase
Arduino Burglar

Arduino Burglar © CC BY-NC-SA

It's a burglar made with Arduino.

  • 3,238 views
  • 2 comments
  • 8 respects

Components and supplies

About this project

INTRODUCTION

The following project had the purpose to be a burglar made with an Arduino UNO shield and some sensor.

DESCRIPTION OF THE ASSIGNMENT

The project made by Cravero and Zanella become to the request to produce a thing that could be functional and useful.

TOOLS AND MATERIALS

To produce this burglar, the components are:

  • An HC-SR501 sensor pir;
  • An Arduino UNO;
  • A Led;
  • An LCD screen16X2;
  • Membrane switch.r;
  • Membrane swtch.

For the case of the burglar has been used a box

  • Arduino UNO
  • HC-SR501 pir sensor
  • lcd16X2 screen
  • Active buzzer
  • Membrane switch
  • LED green, blue, and red

EXECUTION

To product this project it was necessary the following schedule

  • 1. Research for the component;
  • 2. Implementation of the program;
  • 3. Creation of the box
  • 4. Test of the burglar;
  • 5. Assembly;
  • 6. Report.

SOLUTION ADOPTED

The project is made by a sensor pir hc-sr501, linked with an active buzzer, which had the function of acoustic burglar, one or more LED with the function of visive burglar, a membrane switch which is used like a keypad to enable and disable the burglar and finally an LCD 1X2 screen that is used to send some messages to the user.

WORKING

The working of the burglar is divided into 3 cases:

CASE 0: It’s the first case, it is used to turn on the burglar by the input of a pin, (9856), that state is marked with a green LED.

CASE 1: This state is used to disable the burglar by pushing a key (D), or if the pir detect a motion this state turn on the burglar, this state is marked with blue LED.

Case 2: This state is the burglar alarm, this state will turn on the buzzer and a led red to signal an intrusion.

CONCLUSION

The project use some sensor that had been used in class and some totally new.

Down the page thereis a video of the burglar working.

LCD screen:

https://goo.gl/HgXgVG

https://goo.gl/J1MUkb

Keypad:

https://goo.gl/Y6wzRQ

https://goo.gl/Km9k82

PIR sensor:https://goo.gl/dkJe8k

https://goo.gl/VC4TQs

Buzzer:

https://goo.gl/VUxa2F

https://goo.gl/cr36Fs

Led:

https://goo.gl/6tK98t

https://goo.gl/vY898K

Video:

https://goo.gl/S8eCgB

Program based on:

https://forum.arduino.cc/index.php?topic=368355.0

Code

arduino burglarArduino
it's the code that made work the project
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity
#include <Keypad.h> //includo libreria per tastierino numerico 4*4
#define led  10
#define led1 13
#define led2 12
#define PIR 7 
#define BUZZER 6 

const byte dim = 4; 
char tastiera[dim][dim] = 

{
    {'1','2','3','A'},
    {'4','5','6','B'},
    {'7','8','9','C'},
    {'*','0','#','D'}
}; //matrice che rappresenta la tastiera collegata ad arduino
byte pinRiga[dim] = {19, 15, 16, 17};
byte pinColonna[dim] = {1, 2, 3, 4}; //vettore che contiene i pin delle colonne
 //vettore che contiene i pin delle righe
char tasto; //variabile che contiene il valore del tasto premuto
bool Pass_Completa = false ;  

#define Lunghezza_Password 5 //costante che identifica la lunghezza della password = 4 cifre + '\0' --> ( '\0' indica che la stringa è FINITA)
char password[Lunghezza_Password];//vettore di caratteri per password inserita dall'utente
char passAllarme[] = "9856"; //vettore di caratteri che indica la password dell'antifurto
byte conta = 0;  //variabile contatore
unsigned int tempo = 100; //tempo di ritardo per il debounce della tastiera 4*4
#define DEBUG 1 //costante per il debug --> 1=attiva,0=disattiva
byte stato = 0; //variabile per lo stato dei case dello switch
bool AllarmeAttivo = true; //variabile booleana per indicare se l'allarme è attivo o no
byte valPIR=0;
/*Fine variabilit*/

void interruzione (void); //prototipo della funzione dell'interrupt sul pin 2

Keypad keypad = Keypad(makeKeymap(tastiera),pinRiga,pinColonna,dim,dim); //oggetto keypad

void setup()
{
    lcd.clear();
    lcd.begin(16,2);
    lcd.backlight();
    pinMode (led,OUTPUT);
    pinMode (led1,OUTPUT);
    digitalWrite(led2,OUTPUT);
    pinMode(PIR,INPUT); //imposto il pin 2 come input
    pinMode(BUZZER,OUTPUT); //imposto il pin 3 come output
     //imposto la velocità di comunicazione seriale a 9600 bit al secondo
 //   attachInterrupt(0,interruzione,RISING); //imposto il pin di interruput,la funzione che deve richiamare e in quale caso si deve attivare (RISING --> sul fronte di salita)
   
}//end setup

void loop()
{
    switch(stato)
    {
      /*Stato di partenza in cui si chiede la password per abilitare l'antifurto*/
       case 0:

         
          digitalWrite(led1,HIGH);
           lcd.clear();  
           lcd.print("Digitare PIN: ");
           while(Pass_Completa == false)
           {
              tasto = keypad.getKey(); //lettura del tasto premuto
              keypad.setDebounceTime(tempo); //tempo di debounce per premuta tasti 
               if(tasto)
               {
                  password[conta] = tasto;  //salvo il tasto premuto nel vettore di caratteri
                 lcd.print(password[conta]); //stampa del tasto premuto 

                 delay(100);
                 lcd.clear();
                  #if DEBUG
                  delay(100); 
                    lcd.print(conta);
                  #endif //fine if condizionale del preprocessore

                  lcd.clear();
                  delay(100);
                  lcd.println("");
                  conta++; 
               }//end if
               
          
              if(conta == Lunghezza_Password-1)
              {
                   password[5] = '\0'; //chiudo la stringa 

                   //visualizzo la password per debug
                   #if DEBUG 
                      lcd.print("Password "); 
                      lcd.clear();
                      delay(100);
                      lcd.println(password);
                   #endif
                
                  Pass_Completa = true; //imposto la password a vero per uscire dal ciclo while
                  conta = 0; //imposto la variabile contatore nuovamente a 0 per un possibile nuovo input di password
              } //end if        
        }//end while  
          lcd.clear();


         /*Controllo se la password è corretta tramite "string-compare"*/
         if(strcmp(password,passAllarme) == 0 )
         {
           lcd.println("PASSWORD ESATTA!"); //comunico che la password digitata è corretta
           delay(1000);
           lcd.clear();
           lcd.println("Attivazione"); //comunico che l'antifurto sta per essere attivato
           stato = 1; //cambio il valore di stato per cambiare case 
         }//end if se la password è corretta 
         else 
          lcd.clear();
          lcd.println("PASSWORD ERRATA!");//comunico che la password digitata è errata
          delay(1000);
          lcd.clear();
    
          /*Riazzero il vettore caratteri per la password digitata dall'utente*/
          for(int i=0;i<4;i++) 
            password[i] = NULL; 
          
          Pass_Completa = false; //imposto nuovamente false 
          
         delay(3000); //ritardo di un secondo
          
          
         digitalWrite(led1,LOW); 

       break; //end case 0


       /*Stato in cui è attivo rilevatore di momvimento (PIR)*/
       case 1:
          digitalWrite(led2,HIGH);
          lcd.clear();
          tasto = 0; //il contenuto di tasto è nullo
          
          lcd.println("Antifurto ON");
          delay(3000);
          lcd.clear();
          lcd.println("Tasto D per OFF");
          //delay(3000);

          while(AllarmeAttivo == true)
          {
              tasto = keypad.getKey(); //lettura tasto premuto 
              keypad.setDebounceTime(tempo); //debounce per tasto premuto

              valPIR = digitalRead(PIR);
              
              lcd.clear();
              #if DEBUG
                lcd.clear();
                lcd.println(tasto);
                delay(1000);
                lcd.clear();	
                delay(10);
              #endif 
              
              if(valPIR == 1)
              { digitalWrite(led2, LOW);
                stato = 2;
                AllarmeAttivo = false; //imposto il valore a falso 
              }
              
              if(tasto == 'D')
              {  digitalWrite(led2, LOW);
                 lcd.clear();
                 lcd.println("disattivazione");
                 stato = 0; //imposto lo stato a 0 per tornare così allo stato di partenza
                
                 AllarmeAttivo = false; //imposto il valore a falso 
                 delay(3000);
                 lcd.clear();

              } //end if
              
          } //end while

          AllarmeAttivo = true; //reimposto valore iniziale di AllarmeAttivo
          
       break; //end case 1

       case 2:
        
          for(int c = 0; c < 3; c++) 

          {
            analogWrite(BUZZER,HIGH);
              digitalWrite(led, HIGH);
              delay(500);
              analogWrite(BUZZER,LOW);
              digitalWrite(led, LOW); 
              delay(500);
          }

          stato = 1;
       break;



        
    }

} 

Schematics

electrical drawing
Foto schema u2td7xi1fq

Comments

Similar projects you might like

Buzzer Alarm System With Help Of Arduino

by Team ONYX

  • 38,013 views
  • 5 comments
  • 21 respects

Electronic Piano Keyboard With Preset Songs

Project tutorial by Lindsay Fox

  • 77,993 views
  • 60 comments
  • 150 respects

Ultrasonic Security System

Project tutorial by Ivan

  • 17,294 views
  • 18 comments
  • 50 respects

Burglar Alarm

Project tutorial by Salman Faris

  • 5,959 views
  • 0 comments
  • 12 respects

Burglar Surveillance Camera

Project showcase by 1Sheeld

  • 3,075 views
  • 3 comments
  • 5 respects

Create a People Counter Controlled by an Android App

Project tutorial by Kutluhan Aktar

  • 3,064 views
  • 2 comments
  • 7 respects
Add projectSign up / Login