عناوين الدرس

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

مبتدئ

انظمة الأمن مهمة جدا في حياة الإنسان. و الناس في العادة يشعرون بقلق من الدخلاء و اللصوص عندما يكونون بعيدا عن منازلهم. في عالم انترنت الأشياء عندما يكون لدينا كل التقنيات لحماية منازلنا، نحن دائما نريد نظاما يمكن التحكم و المراقبة من خلاله من أي مكان .

هناك العديد من الأنظمة و الكاميرات التي تفي لهذا الغرض ولكنها مكلفة كثيرا ، لذلك اليوم سوف نبني نظام بسيط وأقل تكلفة بإستخدام الراسبيري باي وهو نظام الإنذار للدخلاء. هذا النظام ليس مجرد تنبيه عن طريق البريد الإلكتروني ولكن يرسل لك صورة الدخيل/اللص عندما يتم الكشف عليه.

wraspberry-pi-iot-intruder-alert-system

القطع المطلوبة :

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

الأدوات التي تحتاجها لهذا المشروع :

pir motion sensor

حساس الحركة (PIR motion sensor)

raspberry-pi-iot-intruder-alert-system

 كاميرا للراسبري باي (raspberry pi camera module)

led 5mm red

 LED 5mm red

220 Ω resistor

مقاومة 220 اوم

small size breadboard 170 colors

  لوح تجارب صغير  (small size breadboard)

 راسبيري باي (Raspberry Pi 3 Model B)

Jumper Wires Female Female

 اسلاك توصيل أنثى/أنثى  (Jumper Wires Female/Female)

Female-Male Jumper Wires

 اسلاك توصيل أنثى/ذكر (Jumper Wires Female/male)

5V 2A Switching Power Supply MicroUSB Cable

Power Supply

شرح العمل :

عمل هذا المشروع هو بسيط جدا. سيتم إستخدام مستشعر الحركة (PIR sensor)  للكشف عن وجود أي شخص و تستخدم كاميرا الراسبيري باي لإلتقاط الصور عندما يتم الكشف عن الشخص.

عندما يأتي أي شخص أو متسلل في حدود نطاق مستشعر الحركة ، سنتلقى إشارة من المستشعر ليتم تفعيل الكاميرا على الفور من خلال الراسبيري باي . الراسبيري باي سوف يرسل أوامر للكاميرا لإلتقاط صورة و حفظها. وبعد ذلك تقوم الراسبيري باي بإنشاء بريد يتم إرسالة إلى عنوان البريد الالكتروني المحدد مع صورة الدخيل/المتسلل .

يتم حفظ الصورة في الراسبيري باي مع إسم يحتوي على الوقت و التاريخ الذي تم الكشف فيه عن الدخيل. لذلك يمكنك التحقق من وقت وتاريخ الدخول للمتسلل/الدخيل من خلال النظر فقط على اسم الصورة، كما هو موضح بالصورة أدناه.

wraspberry-pi-iot-intruder-alert-system

يمكنك ضبط نطاق الكشف أو المسافة لهذا النظام من خلال المقاومات المتغيرة لمستشعر الحركة.

raspberry-pi-iot-intruder-alert-system

تصميم لوحة التجارب:

قم بتوصيل الدائرة كما هو موضح بالصورة التالية :

raspberry-pi-iot-intruder-alert-system

في نظام الكشف عن الدخيل/ المتسلل ، نحن بحاجة إلى توصيل كاميرا الراسبيري باي و حساس الحركة إلى لوحة الراسبيري باي. قم بتوصيل الكاميرا في المدخل المخصص للكاميرا (Camera slot) على الراسيبيري باي.

wraspberry-pi-iot-intruder-alert-system

وقم بتوصيل حساس الحركة مع منفذ GPIO18، و LED  يتم توصيل  الطرف السالب بمقاومة 220 اوم و الطرف الموجب مع منفذ GPIO 17، ثم قم بتوصيل طرف المقاومة الاخر بالطرف السالب (GND) على لوحة الراسبيري باي .

يمكنك العودة على الدرس الثاني عشر للإطلاع على كيفة توصيل حساس الحركة.

إعداد الراسبيري باي :

نحن نستخدم لغة البايثون (Python) لعملية البرمجة. قبل برمجة الكود، أنت بحاجة إلى إعداد لوحة الراسبيري باي. يجب عليك العودة سلسلة تعلم الراسبيري باي لتنزيل و إعداد نظام التشغيل (Raspbian Jessie OS ) .

رازبيري باي-الدرس الأول– تهيئة بطاقة الذاكرة
رازبيري باي-الدرس الثاني– اعداد نظام التشغيل للمره الأولى
رازبيري باي-الدرس الرابع– اعداد GPIO

بعد تثبيت نظام التشغيل بنجاح ، انت بحاجة إلى الاتصال بالانترنت و تفعيل كاميرا الراسبيري باي ثم اعداد البريد الإلكتروني.

الاتصال بالشبكة :

يتم توفير إعدادات شبكة الإتصال في واجهة المستخدم لإصدارRaspbian   الحالي. الإتصال بالشبكة يمكن إجراءه عبر أيقونة الشبكة في أقصى الطرف الأيمن من شريط القوائم . قم بالضغط على أيقونة الشبكة سيتم ظهور قائمة شبكات الإنترنت المتاحة، كما هو مبين بالصورة أدناه. إذا لم يتم العثور على شبكات ، سوف تظهر الرسالة “No APs found – scanning… ”   قم بالانتظار بضع ثواني دون إغلاق القائمة، لتجد الشبكة.

raspberry-pi-iot-intruder-alert-system

انقر فوق الشبكة التي تريد الاتصال بها. سيظهر لك مربع يطلب منك إدخال مفتاح الشبكة :

wraspberry-pi-iot-intruder-alert-system

إدخل المفتاح واضغط موافق ، ثم انتظر بضع ثوان.

تفعيل كاميرا الراسبيري باي :

بعد توصيل الكاميرا إلى لوحة الراسبيري باي  ،  من قائمة البدء ثم preferences  قم بفتح Raspberry Pi Configuration Tool

wraspberry-pi-iot-intruder-alert-system

تأكد من أن الكاميرا مفعلة كما هو موضح بالصوة أدناه :

wraspberry-pi-iot-intruder-alert-system

إذا لم تكن مفعلة قم بتفعيلها عن طريق اختيار (Enable) ،   ثم قم بإعادة تشغيل نظام الراسبيري باي.

اعداد البريد الإلكتروني :

الآن بعد إعداد كاميرا الراسبيري باي ، سوف نقوم بتثبيت برنامج لإرسال البريد. هنا نحن نستخدم ssmtp وهو حل سهل وجيد لإرسال البريد باستخدام سطر الأوامر أو بإستخدام لغة البايثون.نحن بحاجة إلى تثبيت اثنين من المكتبات لإرسال الرسائل باستخدام SMTP :

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

قم بكتابة الأوامر اعلاه على نافذة الـ Terminal .

بعد تثبيت المكتبات، انت بحاجة إلى فتح ssmtp.conf و تعديل على اعدادات هذا الملف كما هو مبين في الصورة أدناه ثم قم بحفظ الملف.

sudo nano /etc/ssmtp/ssmtp.conf
root=YourEmailAddress
mailhub=smtp.gmail.com:587
hostname=raspberrypi
AuthUser=YourEmailAddress
AuthPass=YourEmailPassword
FromLineOverride=YES
UseSTARTTLS=YES
UseTLS=YES
wraspberry-pi-iot-intruder-alert-system

يمكننا أيضا التحقق من الإعدادات عن طريق إرسال بريد . قم بكتابة الأمر أدناه ، إذا كان كنت الإعدادات صحيحة سيتم ارسال بريد على عنوان البريد الإلكتروني المذكور :

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

البرمجة :

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

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
تم إضافة المنتج إلى السلة بنجاح