Home Security Email Alert System Using Raspberry Pi





Introduction: Home Security Email Alert System Using Raspberry Pi

In this tutorial we will look at how to setup up your raspberry pi to take picture of the intruder who enters your home and send an email to you whenever you are not at your home.

Step 1: What You’ll Need

  1. Raspberry Pi running Raspbian
  2. USB Camera
  3. PIR Sensor
  4. USB Wi-Fi Module for internet access ( optional, if you connect your Ethernet cable for internet, USB Wi-Fi Module is not needed )
  5. Power Adapter to power the Rsapberry Pi

Step 2: Setting Up Your Raspberry Pi With Raspbian

First you need to install Raspbian on your micro sd card that you will be using in your Raspberry Pi.

You can download the latest image of Raspbian from Raspberry Pi website at:


You will need to use an image writing tool to install the image on your SD card. You can find the steps to do that at:


Step 3: Install OpenCV and Required Libraries

There are lots of methods to do this. But I would prefer using the simplest method that is available in OpenCV website at http://docs.opencv.org/doc/tutorials/introduction/...

Open the terminal of your raspberry pi and execute the following commands...

Install compiler

$ sudo apt-get install build-essential

Install required packages

$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

Install optional packages

$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

Now download OpenCV to wherever you want to compile the source.

$ mkdir xxx

$ cd xxx

$ git clone https://github.com/Itseez/opencv.git

Create and build directory and onfigure OpenCV with cmake. Don't forget the .. part at the end of

$ cd OpenCV-2.4.*

$ mkdir build

$ cd build


Now compile it

$ make

And finally install OpenCV

$ sudo make install

Step 4: Python Code

Use the attached Python code after editing the following lines

gmail_user = "xxxx@gmail.com" #Sender email address

Enter your email address in the above line using which the Photo captured will be sent

gmail_pwd = "xxxx" #Sender email password

Enter the password of the sender email address

to = "xxxx@gmail.com" #Receiver email address

Enter the email address to which the email with the picture captured will be sent...

Step 5: Make Necessary Connections and Test the Setup

Now connect the USB camera and PIR sensor to the Raspberry Pi.

Using three female-to-female jumper cables, you'll need to connect each of the PIR sensor's connectors to the appropriate pins on the Raspberry Pi.

Connect the top one labelled VCC on the PIR sensor to the 5V pin on the Raspberry Pi, connect the middle one labelled OUT to GPIO pin 4, and connect the bottom one labelled GND to a ground pin also marked GND.

Now you run the python code with sudo to check the setup. Whenever there is a movement it detected by the PIR sensor, an image is captured and email is set the to email address you entered as the receivers email address.

Step 6: How the Final Setup Looks and Output

Now, if you put the setup infront of your home door and run your python code and leave your home. If someone opens the door, you will get an email alert.

Step 7: Adding Wi-Fi Support to Raspberry Pi

Clear steps to setup Wi-Fi on Raspberry Wi-Fi is given at the official guide at


Step 8: Raspberry Pi Auto Login and Auto Start and Run the Python Code

To auto run the python code at start up just by powering up the raspberry pi use the following steps.

Auto Login:

In Terminal:

sudo nano /etc/inittab

Scroll down to:

1:2345:respawn:/sbin/getty 115200 tty1

and change to

#1:2345:respawn:/sbin/getty 115200 tty1

Under that line add:

1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1

Ctrl+X to exit, Y to save followed by enter twice

Auto run the python code

sudo nano /etc/rc.local

Scroll to the bottom and add the following above exit 0:

sudo python /directory/pythonfile.py

Press Ctrl+X to exit, Y to save followed by Enter twice.

If you face any issues in the steps, look at http://elinux.org/RPi_Debian_Auto_Login

Now reboot the system and you will see that the python code has started running automatically and will send you an email if it detects a movement using the PIR sensor.

Now you can turn on the setup whenever you leave your home locked to make sure you get an email alert whenever someone enters your home when you are not there...



  • Pocket-Sized Contest

    Pocket-Sized Contest
  • Pro Tips Challenge

    Pro Tips Challenge
  • Paper Contest 2018

    Paper Contest 2018

We have a be nice policy.
Please be positive and constructive.




hello..i'm following your step and stuck in installing OpenCV

$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

i got some error...and proceed by ignoring the error...then all the next step i cant complete it.

I have the same trouble.

From opencv folder, delete build folder and then try again from 3rd step

Wonderful project but code was not working for me and giving lot of errors and also e-mails are not instant and many times 15 min late So i write code and integrated with pushbullet.com

So Its python script For raspberry pi with pir sensor and raspi-cam or usb


Whenever motion is detected by PIR sensor Its get the usb camera to
take photos ( about 5 photos by default ) And Send the photos to
pusbullet app with instant alert on smart phone

Any one need help in setting up and running script




heyy hiii papashok

i am trying to integrate the code with pushbullet app , but i am not able to do so,

giving lot of errors??

can your share your code at harmeetmonty11@gmail.com

Project Working..I use raspberry pi 3 model B ...try to use new version of opencv

how to add multiple email receiver

Sutha1 : please share your code to me, i need this

can u share me the source code???

after entering make, getting error

make: *** No targets sepecified and no makefile found. stop

can anyone help me with the algorithm for the above provided python codes???
thank you