Kiran M P
Published © GPL3+

Smart Home Security System

Detects intrusion and notifies house owner. The owner remotely watches the house and if any theft is suspected will turn on the buzzer.

BeginnerShowcase (no instructions)4 hours8,978
Smart Home Security System

Things used in this project

Story

Read more

Schematics

SMART HOME SECURITY SYSTEM

Code

SMART HOME SECURITY SYSTEM

Python
Its a python code that can be run in Python 3 IDLE
#!/usr/bin/env python
# encoding: utf-8

import os
import smtplib
from email import encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart

COMMASPACE = ', '

def main():
    sender = 'projectteamgeck@gmail.com'
    gmail_password = '9620955777'
    recipients = ['mtech.kiran@gmail.com']
    
    # Create the enclosing (outer) message
    outer = MIMEMultipart()
    outer['Subject'] = 'mail'
    outer['To'] = COMMASPACE.join(recipients)
    outer['From'] = sender
    outer.preamble = 'You will not see this in a MIME-aware mail reader.\n'

    # List of attachments
    attachments = ['/home/pi/image/image1.jpg']

    # Add the attachments to the message
    for file in attachments:
        try:
            with open(file, 'rb') as fp:
                msg = MIMEBase('application', "octet-stream")
                msg.set_payload(fp.read())
            encoders.encode_base64(msg)
            msg.add_header('Content-Disposition', 'attachment', filename=os.path.basename(file))
            outer.attach(msg)
        except:
            print("Unable to open one of the attachments. Error: ", sys.exc_info()[0])
            raise

    composed = outer.as_string()

    # Send the email
    try:
        with smtplib.SMTP('smtp.gmail.com', 587) as s:
            s.ehlo()
            s.starttls()
            s.ehlo()
            s.login(sender, gmail_password)
            s.sendmail(sender, recipients, composed)
            s.close()
        print("Email sent!")
    except:
        print("Unable to send the email. Error: ", sys.exc_info()[0])
        raise

from gpiozero import MotionSensor
from picamera import PiCamera
from datetime import datetime

camera = PiCamera()
pir = MotionSensor(4)
while True:
    pir.wait_for_motion()
    print ("motion detected")
    camera.capture('/home/pi/image/image1.jpg')
    filename = datetime.now().strftime("/home/pi/videos/%Y-%m-%d_%H.%M.%S.h264")
    camera.start_recording(filename)
    pir.wait_for_no_motion()
    camera.stop_recording()
    main()

Buzzer Module

Python
Its a python code that can be run remotely through a VNC Viewer in a Python 3 IDLE to alert the neighbors about the intrusion
from gpiozero import Buzzer
from time import sleep
buzzer = Buzzer(17)
while True:
    buzzer.on()
    sleep(1)
    buzzer.off()
    sleep(1)

Credits

Kiran M P

Kiran M P

1 project • 16 followers
Assistant Professor

Comments