در این درس نحوه راه اندازی سنسور تشخیص حرکت PIR و سنسور در مغناطیسی، توسط برد رسپبری پای و چگونگی استفاده از ورودی دیجیتال در کانکتور GPIO را یاد خواهید گرفت.
در این درس بر روی تشخیص حرکت و عملکرد کلید در تمرکز می شود. از آنچه که یاد گرفته اید در درس بعدی برای تولید خروجی دیجیتال و کنترل یک دستگاه الکتریکی، در زمان تشخیص حرکت استفاده می شود.
قطعات مورد نیاز:
برای انجام این درس به قطعات زیر احتیاج دارید که می توانید آنها را از فروشگاه اتومی تهیه کنید.
سخت افزار:
به طور همزمان می توانید سنسورها را به برد رسپبری پای متصل کنید، بدون اینکه به هیچ قطعه اضافی احتیاج داشته باشید.
به همراه سنسور تشخیص حرکت PIR یک سیم سوکت دار وجود دارد. سوکت را مطابق شکل به سنسور PIR متصل کنید، سیم قرمز برای 5V، سیم مشکی برای GND و سیم زرد به پین 18 برد cobbler متصل می شود.
اگرچه سنسور PIR به منبع توان 5V احتیاج دارد، ولی خروجی آن 3.3V بوده که با برد رسپبری پای سازگاری دارد، لذا می تواند به طور مستقیم به ورودی GPIO متصل گردد.
کلیدهای در از چیزی به نام، رید سوئیچ استفاده می کنند. آنها دو اتصال هستند با یک لوله شیشه ای، که بر روی آنها هم روکش پلاستیکی قرار گرفته است. زمانی که یک آهن ربا(بلوک سفید پلاستیکی دیگر) در نزدیکی رید سوئیچ قرار بگیرد، اتصال بین آنها ایجاد شده و کلید بسته می شود. اگرچه این یک سوئیچ است، ولی سیم های آن را می توانید به جاهای دیگر متصل کنید.
از توانایی برد رسپبری پای برای ایجاد یک مقاومت داخلی pull up(بالا برنده) استفاده می شود، لذا به مقاومت خارجی برای انجام این کار احتیاجی نیست.
نرم افزار:
برنامه این پروژه به این صورت است، که هر وقت حرکتی تشخیص داده شد و یا اینکه آهن ربا از در دور شد، پیغامی را مرتبا نمایش دهد.
برنامه از کتابخانه 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_pin را به عنوان ورودی تنظیم می کند. چون سنسور تشخیص حرکت PIR دارای خروجی دیجیتال 3.3V یا 0V می باشند. در مقابل، پین door_pin، که برای یک سوئیچ است، ولتاژی را برای ورودی دیجیتال تولید نمی کند. بنابراین، این پین ورودی، از المان اضافی (pull_up = io.PUD_UP) استفاده می کند. این عمل مقاومت داخلی را فعال کرده که ورودی ها را در وضعیت high (pull-up) قرار می دهد، مگر اینکه چیز قوی تری آن را pull-down کند(مانند یک سوئیچ که به GND متصل شده است).
حلقه برنامه سپس هر کدام از ورودی ها را خوانده و پاسخ مناسب را نمایش می دهد. در نظر داشته باشید که اخطار کلید در، زمانی که آهن ربا به هر دلیلی جدا شود، فعال می گردد.
تست و نکات نهایی:
روش های زیادی برای وارد کردن داده های زیر به برد رسپبری پای وجود دارد. شاید راحت ترین راه اتصال به برد رسپبری پای با استفاده از SSH (درس ششم را مطالعه کنید) و یک پنجره ویرایشگر را با استفاده از دستور زیر باز کنید:
nano switches.py
سپس کد زیر را وارد کرده و در نهایت فایل را با استفاده از CTRL-x ذخیره کنید.
برای شروع کار آهن ربا را در کنار سوئیچ قرار دهید و سنسور PIR را با چیزی بپوشانید.
برنامه را به عنوان superuser با استفاده از دستور زیر اجرا کنید:
sudo python switches.py
زمانی که آهن ربا حرکت می کند و یا اینکه پوشش سنسور PIR برداشته می شود، باید عباراتی را در ترمینال مشاهده کنید.
گاهی اوقات سنسور PIR و برد رسپبری پای 3 با نمی توانند با یکدیگر همراه گردند، اگر نتایج نادرستی دریافت می کنید، مطمئن شوید که سنسور PIR از برد رسپبری پای 3 دور باشد.
کنترل سیستم اتوماسیون خانگی با برد رزبری پای | درس چهاردهم
نظرات، پیشنهادات و انتقادات خود را برای بهتر شدن محتوای مطالب با ما در میان بگذارید...
ترجمه شده توسط تیم الکترونیک اتومی | منبع: سایت adafriut