النظام الأمني للمنزل للحماية من اللصوص

مبتدئ

البرمجة :

قم بتشغيل الكود أدناه ليتم البدء بتفعيل نظام أمن المنزل :

import RPi.GPIO as gpio
from picamera import PiCamera
import time
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders
from email.mime.image import MIMEImage
 
fromaddr = "YourEmail@gmail.com"  # change the email address accordingly
toaddr = "Someone@gmail.com"

mail = MIMEMultipart()
 
mail['From'] = fromaddr
mail['To'] = toaddr
mail['Subject'] = "Attachment"
body = "Please find the attachment"
led=17
pir=18
HIGH=1
LOW=0
gpio.setwarnings(False)
gpio.setmode(gpio.BCM)
gpio.setup(led, gpio.OUT)            # initialize GPIO Pin as outputs
gpio.setup(pir, gpio.IN)            # initialize GPIO Pin as input
data=""
def sendMail(data):
    mail.attach(MIMEText(body, 'plain'))
    print data
    dat='%s.jpg'%data
    print dat
    attachment = open(dat, 'rb')
    image=MIMEImage(attachment.read())
    attachment.close()
    mail.attach(image)
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(fromaddr, "your password")   # change the email password accordingly
    text = mail.as_string()
    server.sendmail(fromaddr, toaddr, text)
    server.quit()
def capture_image():
    data= time.strftime("%d_%b_%Y|%H:%M:%S")
    camera.start_preview()
    time.sleep(5)
    print data
    camera.capture('%s.jpg'%data)
    camera.stop_preview()
    time.sleep(1)
    sendMail(data)
gpio.output(led , 0)
camera =PiCamera()
camera.rotation=180
camera.awb_mode= 'auto'
camera.brightness=55
while 1:
    if gpio.input(pir)==1:
        gpio.output(led, HIGH)
        capture_image()
        while(gpio.input(pir)==1):
            time.sleep(1)
        
    else:
        gpio.output(led, LOW)
        time.sleep(0.01)

شرح الكود البرمجي :

برنامج البايثون في هذا المشروع يلعب دورا هاما للغاية لأداء جميع العمليات. أولا وقبل كل شيء، نحن بحاجة إلى درج مكتبات للبريد الإلكتروني المطلوبة، تهيئة المتغيرات و تحديد منافذ حساس الحركة (PIR sensor) و الLED وغيرها من العناصر .

import RPi.GPIO as gpio
from picamera import PiCamera
import time
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders
from email.mime.image import MIMEImage

بعد ذلك، قمنا بتهيئة البريد و تحديد عنوان البريد الإلكتروني و الرسائل :

fromaddr = "YourEmail@gmail.com"
toaddr = "Someone@gmail.com"
mail = MIMEMultipart()
mail['From'] = fromaddr
mail['To'] = toaddr
mail['Subject'] = "Attachment"
body = "Please find the attachment"

ثم قمنا بإنشاء الدالة (sendMail(data لإرسال البريد :

def sendMail(data):
    mail.attach(MIMEText(body, 'plain'))
    print data
    dat='%s.jpg'%data
    print dat
    attachment = open(dat, 'rb')
    image=MIMEImage(attachment.read())
    attachment.close()
    mail.attach(image)
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(fromaddr, "your password")
    text = mail.as_string()
    server.sendmail(fromaddr, toaddr, text)
    server.quit()

قم بالتعديل على الكود أعلاه بوضع بوضع كلمة المرور الخاصة بالإيميل المرسل  .

    server.login(fromaddr, "your password")

يتم إنشاء الدالة ()capture_image  لإلتقاط صورة الدخيل و حفظها بإسم يحتوي على الوقت و التاريخ .

def capture_image():
    data= time.strftime("%d_%b_%Y|%H:%M:%S")
    camera.start_preview()
    time.sleep(5)
    print data
    camera.capture('%s.jpg'%data)
    camera.stop_preview()
    time.sleep(1)
    sendMail(data)

يتم تهيئة Picamera   مع بعض الإعدادات الخاصة به :

camera = PiCamera()
camera.rotation=180
camera.awb_mode= 'auto'
camera.brightness=55

و في النهاية ، سيتم قراءة حساس الحركة و عندما نتلقى إشارة High  من الحساس ستقوم الراسبيري باي بإستدعاء الدالة ()capture_image   لإلتقاط صورة الدخيل/ المتسلل وإرسال رسالة تنبيه مع صورة المتسلل كمرفق. وقد تم إستدعاء الدالة  ()sendmail  داخل الدالة ()capture_image لإرسال البريد.

while 1:
    if gpio.input(pir)==1:
        gpio.output(led, HIGH)
        capture_image()
        while(gpio.input(pir)==1):
            time.sleep(1)
        
    else:
        gpio.output(led, LOW)
        time.sleep(0.01)

هذا كيف يعمل الراسبيري باي كنظام أمن وحماية، يمكنك أيضا إستخدام مستشعر المواجات فوق الصوتية (Ultrasonic  sensor ) أو مستشعر الأشعة التحت حمراء (IR sensor ) للكشف عن وجود لص أو دخيل .

X
تم إضافة المنتج إلى السلة بنجاح