آشکار سازی حرکت با رزبری پای

در این قسمت از آموزش نحوه استفاده از ورودی های دیجیتال روی کانکتور GPIO را با یک سنسور در و یک آشکارساز حرکت PIR فرا می گیرید .

آشکار سازی حرکت با رزبری پای

در این قسمت ما روی آشکارسازی حرکت و فعال سازی کلید در تمرکز می کنیم. در قسمت بعدی بر اساس ساخته های این جلسه به رزبری پای فرمان می دهیم تا با استفاده از یک خروجی دیجیتال تغذیه یک وسیله برقی را در صورت آشکارسازی حرکت کنترل کند.

قطعات مورد استفاده در آشکار سازی حرکت با رزبری پای

برای ساخت این پروژه به قطعات زیر نیاز دارید :

سنسور PIR

  • سنسور PIR

سنسور درب آهنربایی

  • سنسور درب آهنربایی

برد کمکی رزبری پای

  • برد توسعه GPIO

مینی بردبرد

  • مینی بردبرد

سیم جامپر نری به نری

  • سیم جامپر

برد رزبری پای (ما از ورژن 1 استفاده کردیم ولی شما میتوانید از مدل مورد نظر خود استفاده کنید. به پایه ها دقت کنید.در عکس بالا یک برد ورژن  3 نشان داده شده است.)

مطلب پیشنهادی:  اتصال ماژول مغناطیس‌سنج سه محوره HMC5883L به رزبری‌پای

سخت افزار

ما هر دو سنسور را همزمان به raspberry pi متصل می کنیم . هیچ کدام از این دوسنسور به قطعه ی اضافه ای برای اتصال نیاز ندارند .

raspberry pi

سنسور PIR  به همراه یک سیم و یک سوکت عرضه می شود . اطمینان حاصل کنید که سوکت سنسور در جهت درست قرار گرفته است (از تصویر زیر استفاده کنید ) و سیم قرمز به 5ولت ، سیم مشکی به زمین ، سیم زرد به پایه شماره 18 برد توسعه متصل شده است.

raspberry pi

با اینکه سنسور PIR به تغذیه 5ولت نیاز دارد ، خروجی آن 3.3 ولت و با RP سازگار است ، بنابراین می تواند مستقیما به به یک ورودی GPIO متصل شود.

سنسور درب آهنربایی

سنسور در ، از یک کلید به نام reed switch استفاده می کند . این کلید در واقع دو تیغه درون یک لوله شیشه ای می باشد که در یک محفظه ی پلاستیکی قرار داده شده است . هنگامی که یک آهنربا (دیگر بلوک سفید) در نزدیکی این کلید قرار داده شود تیغه ها بهم نزدیک شده و کلید بسته می شود . از آنجایی که این قطعه یک کلید ساده است ، پایه های آن می توانند در هر جهتی به RP متصل شوند.

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

مطلب پیشنهادی:  اتصال ماژول GPS به رزبری‌پای

نرم افزار

برنامه این پروژه یک حلقه ساده است که هر بار که حرکتی صورت گیرد یا آهنربا از در دور شود یک پیام را چاپ می کند .

این برنامه از کتابخانه Rpi.GPIO استفاده میکند .

import time
import RPi.GPIO as io
io.setmode(io.BCM)

pir_pin = 18
door_pin = 23

io.setup(pir_pin, io.IN) # activate input
io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP) # activate input with PullUp

while True:
if io.input(pir_pin):
print("PIR ALARM!")
if io.input(door_pin):
print("DOOR ALARM!")
time.sleep(0.5)

برنامه ابتدا پایه pir را به عنوان یک ورودی تنظیم می کند . این به این خاطر است که سنسور PIR دارای یک خروجی دیجیتال با مقادیر 0 یا 3.3 ولت است .  برخلاف آن از آنجایی که سنسور در یک کلید است هیچ ولتاژی برای یک ورودی دیجیتال تولید نمی کند . بنابراین پایه مربوط به آن دارای یک خط کد اضافه  (pull_up_down=io.PUD_UP) می باشد . این دستور یک مقاومت داخلی را فعال می کند که که ورودی را در وضعیت HIGH قرار می دهد تا زمانی که چیزی قویتر (مانند یک کلید متصل به زمین ) آن را به حالت LOW ببرد .

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

تست و راه اندازی

راه های زیادی برای انتقال کد به RP وجود دارد . شاید آسان ترین آن ها اتصال به رزبری پای از طریق SSH و باز کردن یک پنجره ویرایشگر با دستور زیر :

nano switches.py

و جای گذاری کد ، قبل از ذخیره کردن فایل با CTRL-x است .

مطلب پیشنهادی:  فوت‌های کوزه‌گری در کار با ابزار Raspi-Config

raspberry pi ssh

برای شروع آهنربا را در کنار سوییچ قرار دهید و سنسور PIR را نیز با چیزی بپوشانید.

برنامه را به عنوان superuser با دستور زیر اجرا کنید:

sudo python switches.py

اکنون باید با حرکت دادن آهنربا یا برداشتن پوشش سنسور PIR پیام هایی را در ترمینال مشاهده کنید.

یک تمرین خوب می تواند قراردادن کودکانتان در جلوی سنسور PIR و مشاهده این که برای چه مدتی میتوانند بی حرکت بمانند باشد!

Source :adafruit.com

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

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