در این قسمت از آموزش نحوه استفاده از ورودی های دیجیتال روی کانکتور GPIO را با یک سنسور در و یک آشکارساز حرکت PIR فرا می گیرید .
در این قسمت ما روی آشکارسازی حرکت و فعال سازی کلید در تمرکز می کنیم. در قسمت بعدی بر اساس ساخته های این جلسه به رزبری پای فرمان می دهیم تا با استفاده از یک خروجی دیجیتال تغذیه یک وسیله برقی را در صورت آشکارسازی حرکت کنترل کند.
دیگر جلسات آموزش رزبری پای
- آموزش رزبری پای – Raspberry pi – مقدمه
- راه اندازی رزبری پای (Raspberry Pi )
- آموزش راه اندازی شبکه رزبری پای
- آموزش پیکره بندی اولیه رزبری پای
- آموزش راه اندازی GPIO رزبری پای
- آموزش استفاده از کابل کنسول در Raspberry Pi
- آموزش استفاده از SSH در رزبری پای
- آموزش کنترل از راه دور رزبری پای با VNC
- آموزش راه اندازی سروو موتور با رزبری پای
- آموزش کنترل موتور DC با رزبری پای
- آموزش اتصال استپر موتور به رزبری پای
- آموزش اتصال سنسور دمای DS18B20 به رزبری پای
قطعات مورد استفاده در آشکار سازی حرکت با رزبری پای
برای ساخت این پروژه به قطعات زیر نیاز دارید :
- سنسور PIR
- سنسور درب آهنربایی
- برد توسعه GPIO
- مینی بردبرد
- سیم جامپر
برد رزبری پای (ما از ورژن 1 استفاده کردیم ولی شما میتوانید از مدل مورد نظر خود استفاده کنید. به پایه ها دقت کنید.در عکس بالا یک برد ورژن 3 نشان داده شده است.)
سخت افزار
ما هر دو سنسور را همزمان به raspberry pi متصل می کنیم . هیچ کدام از این دوسنسور به قطعه ی اضافه ای برای اتصال نیاز ندارند .
سنسور PIR به همراه یک سیم و یک سوکت عرضه می شود . اطمینان حاصل کنید که سوکت سنسور در جهت درست قرار گرفته است (از تصویر زیر استفاده کنید ) و سیم قرمز به 5ولت ، سیم مشکی به زمین ، سیم زرد به پایه شماره 18 برد توسعه متصل شده است.
با اینکه سنسور PIR به تغذیه 5ولت نیاز دارد ، خروجی آن 3.3 ولت و با RP سازگار است ، بنابراین می تواند مستقیما به به یک ورودی GPIO متصل شود.
سنسور درب آهنربایی
سنسور در ، از یک کلید به نام reed switch استفاده می کند . این کلید در واقع دو تیغه درون یک لوله شیشه ای می باشد که در یک محفظه ی پلاستیکی قرار داده شده است . هنگامی که یک آهنربا (دیگر بلوک سفید) در نزدیکی این کلید قرار داده شود تیغه ها بهم نزدیک شده و کلید بسته می شود . از آنجایی که این قطعه یک کلید ساده است ، پایه های آن می توانند در هر جهتی به RP متصل شوند.
ما از قابلیت رزبریپای برای ایجاد یک مقاومت بالاکش داخلی روی پایه reed switch استفاده خواهیم کرد بنابراین به مقاومت خارجی نیازی نخواهیم داشت.
نرم افزار
برنامه این پروژه یک حلقه ساده است که هر بار که حرکتی صورت گیرد یا آهنربا از در دور شود یک پیام را چاپ می کند .
این برنامه از کتابخانه 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 است .
برای شروع آهنربا را در کنار سوییچ قرار دهید و سنسور PIR را نیز با چیزی بپوشانید.
برنامه را به عنوان superuser با دستور زیر اجرا کنید:
sudo python switches.py
اکنون باید با حرکت دادن آهنربا یا برداشتن پوشش سنسور PIR پیام هایی را در ترمینال مشاهده کنید.
یک تمرین خوب می تواند قراردادن کودکانتان در جلوی سنسور PIR و مشاهده این که برای چه مدتی میتوانند بی حرکت بمانند باشد!
Source :adafruit.com
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.