ساخت درب هوشمند با رزبری پای

درب هوشمند با رزبری پای

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

آیا درب منزل شما کسل کننده است؟ باز و بسته کنید و دوباره باز و بسته کنید. مطمئناً می تواند بیش از این کار کند؟ نظرتان درباره ی درب هوشمندی که می داند چه کسی به آن نزدیک می شود چیست؟ وقتی پست می رسد حتی می توانید از راه دور درون چشمی را مشاهده کنید.شما همچنین می توانید روشنایی هوشمند قفل قابل کنترل درب و تشخیص چهره را اضافه کنید. همه اینها توسط رزبری پای شما تأمین می شوند. بنابراین بیایید سیستم های درب فوق العاده گران را نادیده بگیریم و درب مخصوص خودمان را بسازیم. شما می توانید به همان اندازه که دوست دارید این پروژه را انجام دهید یا کمترین کار را انجام دهید. فضای کافی برای استفاده های جدید و مبتکرانه وجود دارد.

 

01- رزبری پای خود را آماده کنید

این یک پروژه عالی برای رزبری پای 3A+ است. اگرچه می توانید از هر پای دارای قابلیت وای فای استفاده کنید. ابتدا با اتصال  رزبری پای به نمایشگر لمسی و تهیه کارت میکرو SD جدیدترین نسخه Raspbian Stretch شروع کنید. برای دسترسی و نصب آسان تر، ما صفحه کنترل را از قسمت پشتی صفحه جدا کرده ایم و کابل نواری را به شدت مورد حفاظت قرار دادیم. در نهایت آنها در یک جعبه چاپ سه بعدی هوشمند قرار می گیرند. اکنون  پای خود را راه اندازی کنید و قبل از ادامه، از بودن sudo apt update && sudo apt upgrade مطمین شوید.

 

02- دوربین را وصل کنید

ما قصد داریم با جایگزینی چشمی درب با دوربین رزبری پای، دنیای خارج را تحت نظر داشته باشیم. چشمی روی درب به طور معمول یک شبکه دو قطعه است که به هم پیچ می خورند و می توان از داخل آن را به راحتی باز کرد. شبکه را بردارید و چشمی را با دوربین بپوشانید. فعلاً قصد داریم این کار را با نوار چسب انجام دهیم. بعداً یک قالب عکس چاپی جایگزین چسب خواهد شد. صفحه و پای را به درب نصب کنید.  این دو قرار داده شده اند تا بتوانید کابل نواری دوربین را پس از خاموش شدن به رزبری پای وصل کنید. مطمئن شوید که دوربین در Raspberry Pi Configuration یا پیکربندی raspi فعال باشد.

 

03- قدمهایی که نزدیک می شوند!

اولین کار هوشمندی که درب ما قصد انجام آن را دارد این است که شخصی را که به آن نزدیک می شود شناسایی کنیم. یک سنسور PIR ارزان برای این کار مناسب است. این گنبدهای کوچک بسیارعالی توسط گرما تریگر شده و همان ابزار هایی هستند که در چراغ های سنسور حرکت، سوئیچ ها و سیستم های امنیتی مشاهده می کنید. همانند شکل 1 به رزبری پای متصل شوید و بررسی کنید سنسور 5 ولت یا 3.3 ولت باشد. حساسیت و مدت زمان یک “تشخیص” توسط دو پتانسیومتر روی صفحه PIR قابل کنترل است. این قسمت را بیرون و در یک مکان مناسب سوار کنید تا درب تان را تماشا کنید.

شکل 1
سیم کشی GPIO که برای ورودی و خروجی های مختلف مورد نیاز است .
شکل 2
هنگامی که فرد شناسایی می شود فیلم به طور خودکار نمایش می یابد.

 

04-درب و جعبه نامه را کنترل کنید

ما دو سوئیچ نی شکل مغناطیسی داریم. نوعی که در پنجره ها و درها برای سیستم های امنیتی پیدا می کنید. آنها از دو قسمت تشکیل شده اند: قسمت سیمی یک سوئیچ نی شکل است و قسمت بدون سیم یک آهنربا است. وقتی آهنربا با سوییچ روبرو می شود، بسته می شود. اگر آهنربا را به درب و سوئیچ را به چهرچوب وصل کنیم، در هنگام باز شدن درب سوئیچ نیز باز میشود. لازم نیست نگران قطبیت (پلاریته) باشید. بنابراین یک سیم را به GPIO26 و دیگری را به زمین مجاور وصل کنید. برای جعبه نامه با استفاده از GPIO19 این کار را تکرار کنید. ممکن است به یک بردبورد نیاز داشته باشید.

 

05-دینگ دانگ!

زنگ درب معمولی؟  اگر دکمه زنگ در را با دکمه خودمان عوض کنیم. می توانیم وقتی کسی آن را فشار می دهد با ماژول دوربین رزبری پای عکس بگیریم و اعلانی ارسال کنیم. راه بهتر این است که یک زنگ درب سیمی استاندارد، که فقط یک دکمه تماس لحظه ای دارد به قاب درب خارجی نصب کنید. و با استفاده از GPIO13 و یک پایه زمین آن را به رزبری پای برگردانید. اگر روی بردبورد نمونه سازی می کنید سوئیچ لمسی گزینه ی خوبی است.

 

06-خوب به نظر می رسد

می ماند ایجاد صدا با زنگ درب. ما می توانیم از امپلی فایر کوچک، اما به طرز شگفت آور قدرتمند PAM8302 با بلندگو برای ایجاد سر و صدا استفاده کنیم. برق را با لحیم کاری Vin به پین 3V3 موجود در رزبری پای و اتصال به زمین تأمین کنید. برای دریافت سیگنال صوتی ، می توانید روی سیگنال اتصال دهنده صوتی و زمین ضربه بزنید. سپس آنها را به ترتیب به A + و A- متصل کنید. در آخر نیز بلندگو را به ترمینال های بزرگتر + و – لحیم کنید. هنگام نمونه سازی می توانید از این مورد صرف نظر کرده و از بلندگوی اکتیو یا پسیو از طریق اتصال صوتی به رزبری پای ستفاده کنید.

 

07-کد پایتون

تمام اتصالات و نیروی برق خود را روی رزبری پای دوباره بررسی کنید. برای استفاده از کدی که در اینجا منتشر شده است یک ترمینال را باز کرده و کد زیر را وارد کنید:

mkdir ~/smartdoor

nano ~/smartdoor/smartdoor_test.py

کد را همانطور که نشان داده شده ، تایپ کنید. برای دانلود همه کد:

cd

git clone https://github.com/mrpjevans/ smartdoor

برای فعال کردن پخش نمونه زنگ درب ما:

sudo apt install mpg123

اکنون با کد زیر تست کنید:

python3 ~/smartdoor/smartdoor_test.py

خروجی کنسول را تماشا کنید. اگر همه چیز در حال کار کردن باشد. باید بتوانید PIR  کلیدهای نی و زنگ در را تحریک کنید. دوربین با تشخیص حرکت ده ثانیه فیلم و هنگام فشار دادن زنگ در یک عکس ذخیره می کند. اینها هر دو در دسکتاپ رزبری پای ذخیره می شوند.

درب هوشمند با رزبری پای

شکل 3
نرم افزار وب می تواند روی صفحه لمسی و همچنین دستگاه های تلفن همراه یا مرورگرهای دسک تاپ اجرا شود.

 

08- هشدار دریافت کنید!

بیایید این کار را به یک پروژه مفید تبدیل کنیم. Pushover را روی تلفن خود نصب کرده و به pushover.net بروید. بعنوان یک حساب آزمایشی ثبت نام کنید. سپس وارد شوید و کلید کاربری خود را یادداشت کنید. حالا یک برنامه جدید ایجاد کنید و به آن یک نام اختصاص دهید. سپس یک API Token مشاهده خواهید کرد. این را نیز یادداشت کنید. از مخزن GitHub ، smartdoor.py را ویرایش کرده و User Key و API Token را در جایی که نشان داده شده اضافه کنید. این نسخه را اجرا کنید و در اینصورت برای هر رویداد و حتی یک ضمیمه عکس هنگام فشار دادن زنگ در هشدارهای تلفنی دریافت خواهید کرد.

 

09- نور ایوان هوشمند

اگر چراغ ایوان خارجی دارید چرا آن را هوشمند نمی کنید! فایل porch.py یک چراغ هوشمند Trådfri را به یک API متصل می کند که زمان طلوع و غروب خورشید را برای مکان شما فراهم می کند. اسکریپت را درحال اجرا بگذارید و چراغ در زمان های صحیح خاموش و روشن می شود. علاوه بر این سنسور PIR را کنترل می کند و با نزدیک شدن کسی، به حالت روشناییِ کامل تغییر می کند! برای استفاده از اسکریپت طول و عرض جغرافیایی خود را بدست آورید (می توانید از Google Maps یا Earth استفاده کنید). و porch.py را طبق دستورالعمل در فایل ویرایش کنید.

 

10- قفل درب

اگر می خواهید قفل درب خود را کنترل کنید. می توانید ببینید که برخی از راه حل ها بسیار گران قیمت هستند. یکی از مواردی که برای آزمایش مناسب است قفل نگهدارنده مغناطیسی است که با استفاده از آهنربا الکتریکی در را بسته نگه می دارد. موردی که ما از آن استفاده کرده ایم می تواند 180 کیلوگرم نیرو را تحمل کند. اگرچه موارد نیرومندتری هم در دسترس است. آهن ربا بر روی درب و آهنربای الکتریکی روی چهارچوب نصب می شود. PSU ارائه شده حاوی یک رله است که می تواند توسط رزبری پای و با اتصال ساده آن به یک خط اضافی GPIO و زمین تأمین شود. لطفا توجه داشته باشید که این هیچ جایگزینی مناسبی برای سیستم قفل درب نیست.

 

11- نرم افزار وب

خوب است که ببینیم درب ما از راه دور به چه دردی خورده است. بنابراین مرحله منطقی بعدی یک برنامه وب به نظر می رسد. دریک دایرکتوری به نام webapp یک اسکریپت پایتون قرار دارد که با استفاده از Flask یک سرور وب قابل استفاده در دستگاه های تلفن همراه ارائه می دهد. می توانید از حفره ی روی چشمی درب عکس بگیرید. آخرین فیلم ضبط شده را مشاهده کنید و حتی قفل مغناطیسی درب را از مرحله 10 کنترل کنید. به سادگی برنامه را در کنار برنامه های دیگر اجرا کنید. هنوز بهتر است برای شروع بوت smartlights.py ، porch.py و webapp / smartdoor.py را تنظیم کنید.

 

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

from picamera import PiCamera
from gpiozero import MotionSensor
from gpiozero import Button
from time import sleep
import os
import subprocess
import sys
print(‘Getting smart…’)
# Set up all our devices
()camera = PiCamera
motion = MotionSensor(17)
doorSensor = Button(26)
letterbox = Button(19)
doorbell = Button(13)
:()def motionDetected
print(‘Motion detected, video recording’)
os.system(‘DISPLAY=:0 xset s reset’) # Wakes
the display up
()camera.start_preview
)camera.start_recording
‘/home/pi/Desktop/motion.h264’)
sleep(10)
:()def motionStopped
print(‘Stopping video recording’)
()camera.stop_recording
()camera.stop_preview
:()def doorOpen
print(‘Door open’)
:()def doorClosed
print(‘Door closed’)
:()def letterboxOpen
print(‘You got mail!’)
:()def doorbellPressed
/subprocess.Popen([‘mpg123’, ‘/home/pi
smartdoor/doorbell.mp3
,stdout=subprocess.PIPE
)stderr=subprocess.STDOUT
camera.capture(‘/home/pi/Desktop/doorbell.jpg’)
print(‘Someone\’s at the door!’)
# Attach our functions to GPIOZero events
motion.when_motion = motionDetected
motion.when_no_motion = motionStopped
doorSensor.when_pressed = doorClosed
doorSensor.when_released = doorOpen
letterbox.when_released = letterboxOpen
doorbell.when_released = doorbellPressed
print(‘Smart door is smart’)
# Loop forever allowing events to do their thing
:try
:while True
pass
:except KeyboardInterrupt
print(‘Smart door no longer smart’)
:except
print(‘Oh dear’)

 

12-تشخیص چهره

در ادامه پروژه ی ساخت درب هوشمند با رزبری پای می خواهیم امکانات آن را گسترش دهیم. فناوری محبوب شناخت چهره اکنون کاملاً در اختیار رزبری پای است. با استفاده از عکسی که توسط رزبری پای در هنگام در زدن گرفته شده است. می توانیم چهره ای را با استفاده از عکس های مرجع تشخیص دهیم و با نام تماس گیرنده هشداری برای Pushover ارسال کنیم! در یک محیط امن یک چهره شناخته شده حتی می تواند باعث قفل شدن و یا در موارد مشخص می تواند یک اعلامیه خوشامد گویی پخش کند. روند نصب کمی پیچیده است. بنابراین اگر این موضوع مورد علاقه شماست، مستندات موجود در مخزن GitHub را در فهرست face_recognition مخزن ‘smartdoor’ مشاهده کنید.

 

13-به شما بستگی دارد

ما اینجا اصول ابتدایی را به شما ارائه داده ایم ، اما وقایع پیچیده تری امکان پذیر است. شما می توانید بر اساس تشخیص چهره به افراد مختلف هشدار دهید یا زنگ های دلخواهتان را پخش کنید. و اگر در زمینه تحویل بسته هایتان مشکلی داشتید. شواهد ویدئویی می توانند به طور خودکار ضبط شوند. با توجه به یک نکته جدی، به یاد داشته باشید بسیاری از اینها “فقط برای سرگرمی” است و برای الهام گرفته شدن از آنها طراحی شده اند. بنابراین بجز در شرایطی که برای کار سخت کردن شامل تجارب ناکام آماده باشید به این ایده اعتماد و یا  آن را به عنوان یک پروژه سرگرم کننده درب بچه ها بسازید (اما شاید بدون قفل!).

 

هر سه شنبه با مقالات رزبری پای همراه توسکانیک باشید

گردآوری و ترجمه:صبا علیزاده

منبع: The official Raspberri Pi projects book

مجله MagPi

کتاب راهنمای رسمی شروع کار با رزبری پای

آخرین مقالات

مقالات مرتبط