سنسور های PIR همواره در پروژه های مختلف به منظور شناسایی تحرکات و در نتیجه استفاده در سیستم های امنیتی شناخته شدهاند که در آموزش های مختلفی به آن ها پرداخته ایم، در این آموزش قصد داریم نحوه راهاندازی این سنسور ها به کمک میکروپایتون و برد ESP32 را آموزش دهیم. مکه در این پروژه یک مثال با یک سنسور PIR و یک LED نشان خواهیم داد. در این پروژه برای کدنویسی از نرمافزار upycraft استفاده خواهیم کرد. در آموزش تشخیص حرکت با میکروپایتون با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
سنسور PIR تشخیص حرکت
سنسور های PIR از دسته سنسور هایی هستند که با اندازه گیری و تشخیص infrared ساطع شده شده از اجسام در حال حرکت می توانند این حرکت را از طریق یک سیگنال الکتریکی به ما اطلاع دهند، این حسگر ها معمولا برای امنیت اماکن مختلف استفاده می شوند. در واقع زمانی که فردی وارد دید سنسور شود در خرجی سنسوریک سیگنال الکتریکی تولید می شود که می توانیم از آن سیگنال در پروژه های مختلف استفاده کنیم.
تراشه ESP32 و میکروپایتون
ESP32 می تواند به عنوان یک سیستم کامل مستقل یا به عنوان یک دستگاه MCU عمل کند و بار اضافی ارتباطات را در پردازنده اصلی برنامه کاهش دهد. ESP32 می تواند با سیستم های دیگر ارتباط برقرار کند تا از طریق SPI عملکرد Wi-Fi و بلوتوث را ارائه دهد. ESP32 با سوئیچ های آنتن داخلی، RF balun، تقویت کننده قدرت، تقویت کننده دریافت، فیلترها و ماژول های مدیریت توان یکپارچه شده است. ESP32 با حداقل الزامات برد مدار چاپی (PCB) ، عملکرد و تطبیق پذیری بی نظیری را به برنامه های شما اضافه می کند. برد ESP32 نسل پیشرفته ESP8266 است. یکی از تفاوتهای آن بلوتوث داخلیاش میباشد. همچنین دارای هسته وایفای ۲,۴ گیگا هرتزی و بلوتوث داخلی تولید شده با تکنولوژی ۴۰ نانومتری شرکت TSMC میباشد. این ماژول دارای بهترین پرفورمنس در مصرف انرژی میباشد یعنی با کمترین مصرف انرژی بهترین نتیجه را برای ما به همراه دارد. اگر بخواهیم دقیقتر به این برد نگاه کنیم باید بگوییم که این یک chip است که پلتفرم NodeMCU در اون پیاده سازی شده که به این نوع چیپ ها System on a chip microcontrollers هم گفته میشود.
شرح پروژه تشخیص حرکت میکروپایتون
سنسور PIR به عنوان منبعی برای وقفه خارجی عمل می کند. یعنی خروجی سنسور PIR را به پین GPIO وصل می کنیم. علاوه بر این، وقفه ایجاد شده در لبه بالارونده را به این پین GPIO متصل می کنیم. این بدان معناست که این پین GPIO هر زمان که لبه بالارونده را در ورودی خود احساس کند، وقفه را راهاندازی میکند. و در ادامه یک LED که از قبل در برنامه مشخص و به یک پین GPIO مشخص شده در زمان عبور جسمی از جلوی سنسور روشن خواهد شد.
شماتیک پروژه
کد های پروژه تشخیص حرکت
در اکثر پروژه های قبلی نیاز به افزودن دو فایل به منظور ایجاد کتابخانه برای سنسور ها بودیم، در پروژه تشخیص حرکت با میکروپایتون از آنجایی که وضعیت لحظهای سنسور توسط برد ESP32 خوانده میشود نیازی به ایجاد کتابخانه نداریم تنها با افزودن کد های زیر به فایل اصلی و آپلود آنها در برد ESP32، پروژه قابل اجرا خواهد بود.
from machine import Pin from time import sleep Motion_Detected = False def handle_interrupt(Pin): global Motion_Detected Motion_Detected = True led=Pin(14,Pin.OUT) PIR_Interrupt=Pin(13,Pin.IN) PIR_Interrupt.irq(trigger=Pin.IRQ_RISING, handler=handle_interrupt) while True: if Motion_Detected: print('detected') led.value(1) sleep(20) led.value(0) print('stop') Motion_Detected = False else: led.value(1) sleep(1) led.value(0) sleep(1)
پس از وارد کردن ماژول ها و مشخص کردن پین ها، بخش کدی که در پایین مشاهده میکنید عملیاتی است که پس از تشخیص حرکت یا عدم وجود حرکت صورت میگیرد. کد یزر را میتوانید متناسب با نیاز خود تغییر دهید.
if Motion_Detected: print('Motion is detected!') led.value(1) sleep(20) led.value(0) print('Motion is stopped!') Motion_Detected = False
نتیجه نهایی
در نهایت نتیجه پروژه تشخیص حرکت با میکروپایتون پس آپلود کد های ذکر شده، برقراری اتصالات و سپری کردن مراحل ذکر شده، در ادامه اجرای این پروژه خواهید دید که LED با سرعت یک ثانیه چشمک می زند زمانی که هیچ حرکتی تشخیص داده نمی شود و هنگامی که سنسور PIR حرکت را تشخیص می دهد، LED به مدت ۱۰ ثانیه روشن می ماند. حساسیت سنسور های PIR با توجه به نوع ماژول با استفاده از پتانسیومتری که بر روی برد قرار داده شده قابل تغییر است، پس قادر خواهید بود حساسیت سنسور را با توجه به نیاز خود تغییر دهید.
کلام آخر با سایفر
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.