پروژه الکترونیکپروژه های امنیتیپروژه های اینترنت اشیاپروژه های پایتون

پروژه سیستم امنیتی خانه ثبت تصویر و ایمیل رزبری پای و پایتون

سلام. پروژه سیستم امنیتی خانه با ثبت تصاویر و ارسال ایمیل هشدار با رزبری پای و پایتون را آماده کردیم.

آموزش سیستم امنیتی منزل با ارسال ایمیل و عکس با Raspberry Pi

در دنیای اینترنت اشیاء (IoT)، ایده ی ساخت سیستم امنیتی که بتواند از هر نقطه ی دنیا کنترل شود یک ایده ی ناب است. انواع مختلفی از سیستم های امنیتی و دوربین ها برای این منظور وجود دارد اما بسیار گران هستند. امروز ما یک پروژه رزبری پای را طراحی میکنیم که هم از طریق ایمیل به شما هشدار میدهد و هم تصویر متجاوز را ثبت میکند.

در این پروژه اینترنت اشیا، ما با استفاده از سنسور Pir و دوربین پای یک سیستم امنیتی خانگی ایجاد میکنم. این سنسور حضور متجاوز را تشخیص داده و به سرعت با ارسال یک ایمیل به شما هشدار میدهد. نکته ی جالب این پروژه این است که ایمیل ارسال شده شامل تصویری از متجاوز است. مغز این پروژه برد Raspberry Pi است. این سیستم را میتوان در درب اصلی منزل یا محل کار نصب کرد. شما فقط با دسترسی به ایمیل خود میتوانید از هر جای دنیا وضعیت منزل یا دفتر کار و … خود را بدانید.

کار این پروژه بسیار ساده است. از سنسور PIR برای تشخیص حضور شخص استفاده می شود و از یک Camera Pi برای ضبط تصاویر هنگام حضور متجاوز استفاده می شود. هر گاه مزاحمی در محدوده سنسور PIR قرار بگیرد، سنسور پیامی را به رزبری پای میفرستد تا دوربین را فعال کند و عکس بگیرد. رزبری پای سپس پیامی حاوی تصویر شخص را ایجاد میکند و آن را به ایمیل معرفی شده توسط شما ارسال میکند. شما میتوانید متن پیام ارسالی را نیز تغییر دهید.

همانطور که در تصویر بالا میبینید، تصاویر با نامی که دارای تاریخ و زمان است ثبت میشوند. همچنین برای تغییر حساسیت سنسور میتوانید از پتانسیومتر روی آن استفاده کنید.

توضیحات مدار پروژه

در این سیستم امنیتی ما فقط باید ماژول دوربین پای و سنسور PIR را به رزبری پای متصل کنیم. دوربین در درگاه دوربین متصل میشود و سنسور PIR نیز به پین 18 GPIO متصل میشود. یک ال ای دی نیز از طریق یک مقاومت 1 کیلو اهم به پین 17 GPIO متصل میشود.

ارسال ایمیل هشدار با رزبری پای

قطعات مورد نیاز

  1. برد رزبری پای
  2. Camera Pi – دوربین پای
  3. سنسور PIR
  4. ال ای دی
  5. مقاومت 1 کیلو اهم

توضیحات کد پروژه امنیتی رزبری پای

ما در اینجا از زبان پایتون برای برنامه استفاده می کنیم. برای اجرای این پروژه در Raspberry pi باید فایلهای کتابخانه Pi را نصب کنیم. برای این کار باید دستورات داده شده را اجرا کنیم.

$ sudo apt-get install python-picamera
$ sudo apt-get install python3-picamera

کتابخانه دوربین رزبری پای

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (ساخت ربات، ارتباط با اندروید، اینترنت اشیا، برنامه نویسی حرفه ای) یاد بگیرید، حتما دوره آموزش آردوینو را مشاهده کنید.

سپس برای فعال سازی دوربین Raspberry Pi باید دستور زیر را اجرا کنید.

$ sudo raspi-config

سپس Enable camera را انتخاب کنید تا دوربین فعال شود.

فعال سازی دوریبن در رزبری پای

سپس باید برد را ریستارت کنید. برای این کار دستور زیر را اجرا کنید.

$ sudo reboot

حالا به قسمت کد پروژه میرسیم. کد کامل در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا بعضی از قسمت های کد را توضیح میدهیم.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

اکنون پس از تنظیم Pi Camera، نرم افزاری برای ارسال ایمیل نصب خواهیم کرد. در اینجا ما از ssmtp استفاده می کنیم که یک راه حل آسان و خوب برای ارسال Email با استفاده از خط فرمان یا استفاده از اسکریپت پایتون است. برای ارسال ایمیل با استفاده از SMTP باید دو کتابخانه نصب کنیم:

​sudo apt-get install ssmtp
sudo apt-get install mailutils

کتابخانه ارسال ایمیل برای Raspberry Pi

پس از نصب كتابخانه ها ، کاربر باید پرونده ssmtp.conf را باز كند و این پرونده پیكربندی را مطابق تصویر زیر ویرایش كرده و سپس پرونده را ذخیره كند. برای ذخیره و خروج از پرونده ، “CTRL + x” ، سپس “y”  و “Enter” را فشار دهید.

sudo nano /etc/ssmtp/ssmtp.conf
mailhub=smtp.gmail.com:587
hostname=raspberrypi
AuthUser=YourEmailAddress
AuthPass=YourEmailPassword
FromLineOverride=YES
UseSTARTTLS=YES
UseTLS=YES

پیکربندی کد پروژه امنیت خانه رزبری پای

ما همچنین میتوانیم با دستور زیر یک نامه آزمایشی را ارسال کنیم. اگر همه چیز درست باشد ایمیل را دریافت خواهیم کرد.

echo "Hello saddam" | mail -s "Testing..." saddam4201@gmail.com

برنامه پایتون این پروژه برای انجام کلیه عملیات ها نقش بسیار مهمی ایفا می کند. اول از همه ، ما کتابخانه های مورد نیاز برای ایمیل را وارد می کنیم، متغیرها را تعریف می کنیم و پین ها را برای PIR ، LED و سایر قطعات تعریف می کنیم. برای ارسال ایمیل ساده ، smtplib کافی است اما اگر می خواهید نامه را به روش حرفه ای تری ارسال کنید ، باید از MIME استفاده کنید.

import RPi.GPIO as gpio
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 = "raspiduino4201@gmail.com"
toaddr = "saddam4201@gmail.com"
mail = MIMEMultipart()
mail['From'] = fromaddr
mail['To'] = toaddr
mail['Subject'] = "Attachment"
body = "Please find the attachment"

سپس ما برای ارسال نامه، از تابع def sendail استفاده میکنیم.

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()

تابع def capt_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.PiCamera()
camera.rotation=180
camera.awb_mode= 'auto'
camera.brightness=55

و در آخر ، ما خروجی حسگر PIR را بررسی میکنیم و هرگاه خروجی زیاد شود رزبری پای با استفاده از تابع capt_image () تصویر را ثبت میکند و به همراه پیام هشدار به ایمیل تعیین شده با استفاده از تابع sendmail() insdie 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)

فیلم عملکرد پروژه

به این ترتیب ما یک پروژه امنیتی با استفاده از Raspberry pi میسازیم. همچنین میتوانید از سنسور مادون قرمز یا التراسونیک برای شناسایی متجاوز استفاده کنید. مشاهده فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

برای دانلود فیلم عملکرد پروژه امنیتی با رزبری پای کلیک کنید.

موارد موجود در فایل : سورس کامل ، شماتیک کامل

برای دانلود فایل ها باید عضو آیرنکس باشید، تنها چند ثانیه زمان لازم است.

ورود / ثبت نام

[lrm_form default_tab=”register” logged_in_message=””]

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *