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

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

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

    دیگر جلسات  آموزش رزبری پای

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

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

    سنسور PIR

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

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

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

    مینی بردبرد

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

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

    سخت افزار

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

    raspberry pi

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

    raspberry pi

    با اینکه سنسور PIR به تغذیه ۵ولت نیاز دارد ، خروجی آن ۳٫۳ ولت و با 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 دارای یک خروجی دیجیتال با مقادیر ۰ یا ۳٫۳ ولت است .  برخلاف آن از آنجایی که سنسور در یک کلید است هیچ ولتاژی برای یک ورودی دیجیتال تولید نمی کند . بنابراین پایه مربوط به آن دارای یک خط کد اضافه  (pull_up_down=io.PUD_UP) می باشد . این دستور یک مقاومت داخلی را فعال می کند که که ورودی را در وضعیت HIGH قرار می دهد تا زمانی که چیزی قویتر (مانند یک کلید متصل به زمین ) آن را به حالت LOW ببرد .

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

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

    nano switches.py

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

    raspberry pi ssh

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

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

    sudo python switches.py

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

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

    Source :adafruit.com

© تمامی حقوق مطالب برای وبسایت آلفا باکس محفوظ است و هرگونه کپی برداری بدون ذکر منبع ممنوع و شرعا حرام می باشد.
قدرت گرفته از : بک لینکس