سنسورهای تشخیص حرکت PIR به مراتب پیچیده تر از دیگر سنسورها از جمله سنسور فتوسل ، تیلت سوئیچ و FSRs ها میباشد. دلیل این موضوع متغیرهای چندگانهای است. این متغییرها بطور همزمان روی سنسور تشخیص حرکت تاثیر میگذارد. سنسور تشخیص حرکت PIR motion detector از دو بخش گیرنده تشکیل شده است. هر دو بخش بخاطر مواد سازنده آن به طول موج IR یا مادون قرمز حساسیت نشان میدهند. یک لنز گمبدی شکل روی سنسور تشخیص حرکت وجود دارد. این لنز فقط در افزایش محدوده دید سنسور کمک میکند. زمانی که سنسور تشخیص حرکت PIR در حالت پایه خود قرار دارد؛ هردو سنسور یک میزان از شدت نور مادون قرمز محیط را دریافت میکنند.
در آموزش قبلی با سنسور تشخیص حرکت PIR شیوه راه اندازی و مدیریت این سنسور با برد آردوینو Arduino آموزش داده شد. در این پست شیوه ساخت یک دستگاه تشخیص حرکت بسیار ساده را آموزش خواهم داد. از این دستگاه در راهروها و یا اتاقها میتوانید استفاده کنید. خروجی رله را به هر وسیلهای از جمله آژیر و یا سیستم روشنایی بدهید. در ادامه با مرجع تخصصی آردوینو Arduino دیجی اسپارک همراه باشید.
هنگامی که یک جسم گرم همانند انسان یا حیوان از روبروی سنسور تشخیص حرکت PIR عبور کند؛ سنسور اول جسم را شناسایی و یک ولتاژ مثبت ایجاد میکند. حال اگر جسم همچنان به حرکت خود ادامه دهد؛ سنسور دوم حرکت را تشخیص داده و یک ولتاژ منفی ایجاد میکند. این دو ولتاژ که یکی مثبت و دیگری منفیست بیانگر حرکتی در محیط است.
سنسور تشخیص حرکت PIR مجهز به یک محافظ میباشد. این محافظ از جنس سیلیکون شفاف تهیه شده است. در مقابل تابش IR و نقشی که این محافظ ایفا میکند محافظت از سنسور در مقابل گرد و خاک و دیگر چیزهاست.
وسایل لازم:
- سنسور تشخیص حرکت PIR
- یکی از میکرو کنترلر های آردوینو ( در این پروژه از آردوینو Uno استفاده کردیم )
- سیم برای اتصالات
اتصالات :
- GND to GND
- VCC to 5V
- Out to digitalPin 2 espanolfarm.com
کدهای برنامه :
/* Arduino with PIR motion sensor Modified by Rui Santos based on PIR sensor by Limor Fried */ int led = 13; // the pin that the LED is atteched to int sensor = 2; // the pin that the sensor is atteched to int state = LOW; // by default, no motion detected int val = 0; // variable to store the sensor status (value) void setup() { pinMode(led, OUTPUT); // initalize LED as an output pinMode(sensor, INPUT); // initialize sensor as an input Serial.begin(9600); // initialize serial } void loop(){ val = digitalRead(sensor); // read sensor value if (val == HIGH) { // check if the sensor is HIGH digitalWrite(led, HIGH); // turn LED ON delay(1000); // delay 100 milliseconds if (val == LOW) { Serial.println("Motion detected!"); state = LOW; // update variable state to HIGH digitalWrite(led,LOW); } } else { digitalWrite(led, LOW); // turn LED OFF delay(200); // delay 200 milliseconds if (state == HIGH){ Serial.println("Motion stopped!"); state = LOW; // update variable state to LOW } } }
دیگر آموزشهای مرتبط با سنسور PIR
معرفی سنسور PIR چگونگی کار و آموزش راه اندازی با برد آردوینو
آموزش ساخت چشمی راه پله با آردوینو و سنسور تشخیص حرکت PIR
طراحی و پیاده سازی سنسور راه پله هوشمند بدون آردوینو و برنامه نویسی
طراحی و پیاده سازی سیستم هشدار قطعی برق آسانسور در زمان حضور انسان
پروژهی سیستم تشخیص حرکت انسان با میکروپایتون و رزبری پای پیکو
آموزش ساخت دوربین مخفی امنیتی با برد ESP32-Cam و سنسور PIR
طراحی و پیاده سازی سیستم خوش آمدگویی به کمک آردوینو و DFPLAYER
سلام، آیا شما مایل به همکاری در استاندارد سازی مرجع مجازی در شبکه مترولوژی ایران هستید؟
سلام
از چه سنسوری میشه برای تشخی حرکت دست استفاده کرد؟
مثلا روی دست نصب شه.
با سلام از ژیروسکوپ می توانید استفاده کنید
سلام
چگونه باید از تایمر و کانتر برد unoاستفاده کنم؟مثلا هر یک دقیقه یکبار و برای ۴ بار یک کار ثابت انجام بده؟
سلام.با اطلاعاتی که من دارم اینطوری.
Int counter =0;
کد بالا در قسمت بیرون از لوپ نوشته شود.
Void loop(){
If(counter<=4){
کد ثابتی که قراره ۴بار انجام بشه
counter++;
}
}
زیر counter++
delay(60000);
سلام.
تو این سناریو اینجوریه که تعریف میکنیم “اگه حرکتی دیده شد, کاری انجام بده(مثلا چراغ روشن شه). و با یک تاخیر چراغ خاموش بشه” ممکنه دراین زمان همچنان حرکت باشد,
چطور میشه تعریف کرد که ” تا زمانیکه حرکت هست, چراغ روشن بمونه و بعد از رفتن جسم یا انسان, بعد از زمان مشخصی, چراغ خاموش شه”
با تشکر
با سلام
ضمن تشکر از توجه شما، در این صورت بایستی Delay در کدها تعریف کنید و یک بازه زمانی برای روشن ماندن مدار تعریف کنید. در این صورت مثلا اگر شخصی حرکت کند مدار به مدت ۳۰ ثانیه روشن است و در ثانیه ۲۶ ام یک شخص دیگری حرکت میکند و مجددا مدار شمارنده از اول شمارش میکند. به این صورت با این سنسور میتوانید اجرا کنید.
با سلام.
می خواستم بدونم دقت این سنسور در چه مقداری است. مثلاً می تونه حرکت مگس و حشرات رو هم تشخیص بده.
با سلام و تشکر از شما
خیر چنین امکانی توسط این سنسور وجود ندارد.
سلام وخسته نباشید .
من میخواستم بدونم چه جوری میشه با اردواینا ویک (ماژول مادون قرمز ) وپمپ اب کوچک
دستگاهی درست کنم که وقتی دستمو میبرم جلوش فقط ۲ ثنیه اب بریزه ودیگه نریزه
وبرای اینکه دو باره بریزه باید دستمو ببرم عقب وبیارم جلو
مثل دستگاه الکل پاش
۲ثانیه بریزهودیگر نریزه
ترو خدا زوود جواب بدین وقت نارم
با سلام
با سنسور PIR قابل اجرا نیست. در صورتیکه نمیخواهید از برنامه نویسی استفاده کنید کیت زیر را تهیه کنید.
کیت چشمی IR FC51 همراه با کاهنده ولتاژ (کیت چشمی مایع ریز کرونا)
همچنین در صورت استفاده از برد آردوینو میتوانید از سنسور فاصله سنج آلتراسونیک استفاده کنید.
آموزش ساخت مایع ریز کرونا اتوماتیک با پمپ و آردوینو Arduino
سلام من می خواستم با pirیک پمپ اب رو راه بندازم وقتی از جلوش رد شم روشن شود می خواستم بدونم فقط همین سنسور برای این کار کافیه یانه
با سلام
سنسور به همراه ماژول رله نیاز دارید. ولی حتما به یک برد جهت دریافت فرمان از سنسور و ارسال فرمان به رله نیاز دارید.