Burglar Alarm using Arduino and PIR Sensor- with SMS Alarm using GSM Module

jojo December 23, 2016 17 Comments

In this tutorial, we are building an interesting application using Arduino and PIR Sensor. A Burglar Alarm – is basically an intruder alarm or an anti theft alarm. So this project is all about building an anti theft alarm or an intruder alarm using Arduino and PIR sensor. It is possible to enhance this project with many features like adding a GSM module to send SMS alerts to specified mobile numbers when an intruder is detected (when a motion is detected inside the range of PIR sensor). So lets get to building our burglar alarm project using arduino.

Lets first build a simple diy burglar alarm using Arduino, PIR sensor and a buzzer only. If you are a beginner, you need to read the following tutorials to build this circuit perfectly.

1.  What is Arduino – read this article if you are very new to Arduino.

2. Blink LED with Arduino – say Hello World!  – Learn how to blink leds using Arduino!

3. Simple LED Projects using Arduino –  Get your hands in it! Do some LED projects using Arduino to get the basics!

4. Interface PIR Sensor to Arduino – Learn about how a PIR sensor works and how it is interfaced to Arduino.

Go through above tutorials before you try building this burglar alarm system using arduino! So lets begin our project.

The circuit diagram to build a simple burglar alarm or an intruder alarm using arduino is given below. You may assemble the circuit as shown in the diagram. Before getting into working of the alarm circuit, I shall brief the components used in this project.

PIR Sensor – is the heart of this simple burglar alarm circuit using arduino. A PIR sensor – is basically a motion sensor or a motion detector which identifies any object that moves inside its range of view. PIR sensor identifies infra red radiations emitted by any object under its radar range.

Buzzer – is used to create a sound alarm when ever a movement is identified inside the range of PIR sensor. A transistor 2N2222 is used to drive the buzzer. The maximum current that can be sourced or sinked from an arduino pin is 20mA (the total current being 200mA from different pins). But the buzzer will need more than just 20mA for its proper functioning. So how to give the necessary current required fir buzzer ? We use switching transistor 2N222 for this purpose. It can act as a switch and at the same time it provides the required current amplification. A 2N2222 transistor with a gain of 100 can give upto 1A current at its output. Another purpose of using a transistor in between arduino pin and buzzer is isolation. A short circuit of the buzzer will destroy only the collector – emitter junction of transistor. Since their is isolation at the base region of transistor (base is connected to arduino), the destruction of collector-emitter junction will not affect base and hence our arduino will be safe from getting burned! The 100 ohms resistor at base is used to limit base current of transistor.

Switch – a push button switch is used to reset the burglar alarm once its activated. The capacitor is used for bypassing bouncing effects of a switch ( debouncing capacitor).

Burglar Alarm using Arduino – Circuit Diagram

Burglar Alarm or Theft Alarm or Intruder Alarm using Arduino

Connections Explained

Arduino – Pin 7 – Output of PIR Sensor | Pin 6 – Push button switch | Pin 8 – Buzzer

Buzzer – + pin to Vcc (5 volts) | other pin to collector side of 2N2222

Transistor – 2N2222 – NPN – Collector to Buzzer | Emitter to Ground | Base to Arduino through 100 Ohm Resistor

Switch – One end of switch to +5V | Other end to Ground through a 10K current limiting resistor

PIR Sensor – has got 3 pins – Vcc to +5 volts | GND to Ground | OUT pin to Arduino pin 7

Note:- Wire all grounds together at a common point.

The Program

int sensor=7; //The output of PIR sensor connected to pin 7
int push_switch=6; // push button switch connected to pin 6
int buzzer=8; // buzzer connected at pin 8
int sensor_value; //variable to hold read sensor value
void setup()
{
pinMode(sensor,INPUT); // configuring pin 7 as Input
pinMode(push_switch,INPUT); // configuring pin 6 as Input
pinMode(buzzer,OUTPUT); // configuring pin 8 as OUTPUT
}
void loop()
{
sensor_value=digitalRead(sensor); // Reading sensor value from pin 7
if(sensor_value==HIGH) // Checking if PIR sensor sends a HIGH signal to Arduino
{
  digitalWrite(buzzer,HIGH); // Activating the buzzer 
} 
if(digitalRead(push_switch==HIGH))// Checking if pushbutton was pressed 
{
digitalWrite(buzzer,LOW); // turning OFF the buzzer 
}}

So we have finished our simple diy arduino burglar alarm. How easy was that? Try installing this diy intruder alarm in your garden area and see its practical application.

Advanced version of the Project – SMS Burglar Alarm using Arduino with GSM Module

Since we have built a simple arduino anti theft alarm, why not build an advanced version of the same burglar detector? What if we can build a burglar alarm that texts you an sms when an intruder is detected ? cool idea – isn’t it? So lets get our hands at it – a burglar alarm that sends text message (sms) using arduino and pir sensor.

We are going to use a gsm module in addition to components and modules used in above circuit. You need to have an idea of how to interface a gsm module and arduino together before you begin this project. Assemble the circuit as shown in the gsm burglar alarm circuit.

GSM/GPRS Module – Buyers Guide – you don’t own a GSM/GPRS module? are you looking to buy one? Please go through our detailed buyers guide for GSM/GPRS module which helps you to choose the right module in the right price range.

GSM based Arduino Intruder Alarm – Circuit Diagram

Gsm based Burglar Alarm using Arduino and PIR Sensor

 

Connections Explained! 

Refer previous circuit diagram and its explanation first. The only addition module used is GSM Module.

GSM Module – Connect its Tx pin to Pin 9 of Arduino | Connect Rx to Pin 10 – Arduino | Vcc or Power Jack to +12 Volt | Make GND or Ground pin common to all other components and modules

Objectives of the PIR Sensor Alarm using Arduino 

  • Detect a motion – an intruder or a burglar using PIR sensor
  • Activate the buzzer alarm upon detection of burglar/intruder – Alarm should sound until Reset switch is pressed
  • Send 3 SMS to a predefined mobile number set inside the program.
  • Stop the alarm when reset switch is pressed. Also reactivate the SMS alert facility upon reset.

The Program

#include<SoftwareSerial.h>
SoftwareSerial mySerial(9, 10);
int sensor=7; //The output of PIR sensor connected to pin 7
int push_switch=6; // push button switch connected to pin 6
int buzzer=8; // buzzer connected at pin 8
int sensor_value; //variable to hold read sensor value
int sms_count=0;
void setup()
{
pinMode(sensor,INPUT); // configuring pin 7 as Input
pinMode(push_switch,INPUT); // configuring pin 6 as Input
pinMode(buzzer,OUTPUT); // configuring pin 8 as OUTPUT
mySerial.begin(9600);
}

void loop()
{
Check_Burglar();// subroutine to check sensor status and activation of outputs
Check_Reset(); // subroutine to check if alarm reset switch pressed or not
}

void Check_Burglar()
{
sensor_value=digitalRead(sensor); // Reading sensor value from pin 7
if(sensor_value==HIGH) // Checking if PIR sensor sends a HIGH signal to Arduino
{
  digitalWrite(buzzer,HIGH); // Activating the buzzer 
  while(sms_count<3) //Number of SMS Alerts to be sent limited at 3
    {  
      SendTextMessage(); // Function to send AT Commands to GSM module
    }
}}

void Check_Reset()
{
if(digitalRead(push_switch==HIGH))// Checking if pushbutton was pressed 
{
digitalWrite(buzzer,LOW); // turning OFF the buzzer 
sms_count=0; // Reactivating the SMS Alert Facility
}}

void SendTextMessage()
{
  mySerial.println("AT+CMGF=1");    //To send SMS in Text Mode
  delay(1000);
  mySerial.println("AT+CMGS=\"+919495xxxxxx\"\r"); // change to the phone number you using 
  delay(1000);
  mySerial.println("Gas Leaking!");//the content of the message
  delay(200);
  mySerial.println((char)26);//the stopping character
  delay(1000);
  sms_count++;
}

So how simple was that advanced arduino intrusion alarm using GSM module ? The program is self explanatory! If you have any doubts, please ask in comments section.

Comments
  • January 19, 2017

    Best GSM module guidance sketch with details explained. I am developing laser security alarm with PIR sensor as well. Succeeded in testing it.
    Thanks a lot. Your free guidance will be used by all in a long way to go. Thanks a lot Sir/Madam.

  • azri
    August 22, 2016

    this is a very nice project.. how to add alarm off/on via sms…. please help me..tq

  • Noel
    August 3, 2016

    I cannot get the text messages sent to my phone. Not sure where the problem might be. My GSM shield shows connection is made, the sensor notes movement, the output is triggered, but no SMS. Any suggestions? Thanks for any ideas.

  • Sherylle
    June 24, 2016

    Hello sir, is there a need of load in gsm module to send an sms ?

    • jojo
      August 10, 2016

      @Sherylle – Wire the circuit as shown in diagram. Make sure your code is correct.

  • May 19, 2016

    good day Sir,
    If I want to produce ring in my mobile instead of SMS alert , what part of the code to be changed,
    please advice,
    raegards
    Uttam

    • jojo
      August 10, 2016

      You have to edit the subroutine SendTextMessage()

  • May 11, 2016

    Sir,
    I have SIM300, will it work with this arrangement or what changes to be made with program to make it work , Please guide,
    Apart from SMS how to get contenious ring , what changes to be made with program to get this,
    Please guide

    • jojo
      August 10, 2016

      ATCommands are same for SIM300 and SIM900 – for sending message. To ring, use ATcommand for calling – ADT

  • Mahbub Alam
    May 2, 2016

    I have connected according to your instruction. But it is sending SMS continuously. The push button is not stopping the buzzer or gsm module. Can you please help me?

  • March 1, 2016

    good day sir,

    In the GSM based Arduino Intruder Alarm – Circuit Diagram there are 2 different voltage source 5v and 12 v. Can i make the PIR, Arduino UNO, Switch and Buzzer in parallel connection to the 5volts same source (what type of battery). And for the GSM module what type of battery and ampere rating? I would like to make an alarm for my motorcycle. i hope i can put the whole module inside the toolbox of the motorcycle.

    • jojo
      March 1, 2016

      @Rey John, You can use a general purpose USB battery pack like this – http://amzn.to/1pniOu6

      Basically, Arduino, GSM Module and PIR sensor are low power devices. They dont need much current (than a few mA) for their proper functioning. And about the difference in power supplies, you can always buy a GSM module that operates on +5v source. Buy a GSM module that can be powered from a +5v source – like this one – http://amzn.to/1Qqfg0Q

  • February 27, 2016

    here after ringing buzzer I will switch on s1. Then in next loop checking, my s1 will be in on position still ,then in this loop what happens to buzzer output

    • jojo
      February 27, 2016

      @Mouli – You are supposed to use a Push Button Switch. A push button switch generates a High pulse only for the time the switch is kept pressed. Once you release the switch, the switch will go open and the pulse from switch will be back to LOW. I think, you are mentioning about a “Push to ON” switch. The program is written for the push button switch (just like the reset switch of 8051).

  • S.Yogaraja
    February 26, 2016

    Dear sir,

    In the GSM module there will be one SIM and in the subroutine ( send Text Message)there are two mobile numbers used, Is that first one the SIM card Number of the GSM Module and the second one the Mobile number where the SMS has to be send!!!!

    Kindly clarify please.

    S.yogaraja.

    • jojo
      February 26, 2016

      @Yogaraja – They are two different mobile numbers and SMS will be sent to both of these numbers. It is not the number of SIM card inside GSM module. Hope you understood!

    • jojo
      February 26, 2016

      @Yogaraja – I have edited the code! Now its code to send SMS to one mobile number only.

Leave a Reply to jojo Cancel reply

Your email address will not be published. Required fields are marked *