در سری آموزش های پروژه محور آردوینو اینبار قصد به آموزش و راه اندازی ماژول تشخیص حرکت PIR hc sr501 داریم . در ادامه با دیجی اسپارک همراه باشید. hc sr501 یک ماژول تشخیص حرکت انسان می باشد . این ماژول با کمک یک کلاهک که بر روی آن قرار دارد کلیه اواج فروسرخ را بر روی سنسور خود متمرکز میکند.سنسور PIR که مخفف شده عبارت Passive Infra Red به معنی تاثیر پذیر از نور مادون قرمز می باشد. به عبارتی اساس کار این سنسور بر اساس تشخیص نور مادون قرمز است. در اثر حرارت بدن این نور توسط سنسور PIR قابل تشخیص می باشد. از این رو در سیستم های حفاظتی و امنیتی از سنسورهای PIR جهت تشخیص حرکت استفاده می کنند. خروجی این ماژول به صورت ۰ و ۳٫۳ ولت TTL می باشد میتواند که به طور مستقیم به میکروکنترلر یا آردوینو متصل شود وحرکت را تشخیص دهد.
ویژگیهای ماژول تشخیص حرکت PIR
ولتاژ ۵ تا ۲۰ ولت DC
مسافت تحت پوشش ۳ تا ۷ متر قابل تنظیم از روی ماژول به وسیله ی پتانسیومتر
تعیین زمان high بودن خروجی پس از تشخیص حرکت به وسیله ی پتانسیومتر
زاویه تشخیص ۱۲۰ درجه
کاربردهای ماژول تشخیص حرکت PIR
سیستم نورپردازی هوشمند
در های اتوماتیک
ساخت دزد گیر و وسایل امنیتی
اتوماسیتون صنعتی و …
توضیحات ماژول تشخیص حرکت PIR
ماژول تشخیص حرکت PIR hc sr501 دارای دو مد کارای No Reset , Auto Reset میباشد که با لحیم کردن پد L به پد وسط در حالت No reset و با لحیم کردن پد H به پد وسط در حالت Auto reset قرار میگیرد .برای کانفیگ کردن ماژول تشخیص حرکت PIR hc sr501 ابتدا می بایست این ماژول را در محیطی بدون حرکت به مدت ۱۰ الی ۶۰ ثانیه قرار دهیم.
به وسیله ی پتانسیومتر sx میتوان فاصله ی قابل تشخیص توسط ماژول را تعیین کرد که حدودا برار ۳ الی ۷ متر می باشدد
به وسیله ی پتانسیومتر tx میتوان زمان high بودن خروجی را بین ۵ الی ۲۰۰ ثانیه تنظیم نمود.
برنامه سنسور PIR و برد آردوینو
شیوه ی کلی بناممه این گونه است که ابتدا ماژول به مدت ۱۰ ثانیه با محیط اطرف خود کانفیگ میشود. سپس وضعیت پین OUT که به پین شماره ۲ آردوینو متصل شده است را بررسی میکنیم. اگر این پین در وضعیت HIGH قرار گیرد بدین معنی است که حرکتی رخ داده است.
/* Arduino with PIR motion sensor */ 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(100); // delay 100 milliseconds if (state == LOW) { Serial.println("Motion detected!"); state = HIGH; // update variable state to HIGH } } 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 } } }
سخت افزار مورد نیاز
سلام با استتفاده از این سنسور نمیشه فهمید که شخص در چه فاصله ای حرکت داشته؟
سلام میشه به وسیله مبدل آنالوگ به دیجیتال یه کارایی انجام داد ولی به نظرم درست جواب نمیده
ببخشید با استفاده از این سنسور آیا حرکت اجسام هم قابل مشاهده هست ؟؟ یا فقط بدن انسان را بخاطر حرارت تشخیص میدهد؟ با تشکر
سلام حرکت اجسام رو هم نیز تشخیص میده
سلام ایا من میتوانم از این ماژول روی برد اردوینو مگا ۲۵۶۰ استفاده کنم یا خیر .
در کل تفاوت برد مگا با اونو چیست؟
سلام
شما از این ماژول بر روی هر آردوینویی که میخواهین میتونین استفاده کنین.
تفاوت mega2560 و سایر آردوینو در مقدار حافظه داخلیشه و یک سری ویژگی خاص هست
[…] نوشته اصلی توسط payam سلام دوستان ، میخواستم بدونم ماژول سنسور حرکت مادون قرمز hc-sr501 فقط حرکت بدن انسان یا هر شی که دمای بخوصصوی داره رو تشخیص میده؟؟ یعنی مثلا اگر یک دری جابجا بشه تشخیص نمیده؟ راستی میخوساتم بدونم فرق این سنسور از نظر عملکرد با سنسور تشخیص حرکت مادون قرمز EL-55 در چیست ؟ لینک زیر شاید بتونه کمکتون کنه آموزش راه اندازی ماژول تشخیص حرکت hc sr501 با استفاده از آر… […]
من میخوام با استفاده از این ماژول یه مداری بسازم که وقتی حرکتی بود دزدگیر به صدا در بیاد تو محیط code vision
چطوری میتونم برنامه اش رو بنویسم؟
با سلام و تشکر از توجه شما
در حال حاضر موارد برای Code vision در سایت منتشر نشده است. از دیگر کاربران که در این خصوص تخصص دارند، تقاضا دارم تا در این بحث شرکت کنند.
با سلام و تشکر از آموزشتون
میخواستم بدونم که میشه این ماژول رو به Raspberry Pi متصل کرد؟
اگه نه یه توضیح مختصر و اگه آره بازم یه توضیح مختصر بدین که چرا و چگونه!!!
ممنون
با سلام و تشکر از توجه شما
بله میتوانید متصل کنید. لطفا به شاخه آموزش رزبری پای مراجعه کنید.
سلام آیا این ماژول بدون بدون هیچ کیتی دیگه امکان استفاده داره یا نه ؟؟
با سلام
خیر، حتما به یک برد میکرو یا مدار راه انداز نیاز دارید.
عزیزم نیاز به هیچ کیتی نداره. مستقیم به لامپ. دزدگیر. یا هرچیزه دیگه ک بخاید وصل میشه
با سلام
سپاس از همراهی و مشارکت شما، توضیحات کاملتری ارایه کنید، برای عزیزانی که میخواهند به این روش راه اندازی کنند.
خیلی عالی بود
برد مفید هم میشه براش تعریف کرد یا هر چقدر تونس همونه؟!؟!؟
سلام می توان بردش را تغییر داد و لی نمیتوان به طور دقیق این کار را انجام داد
باسلام
ایااین سنسورعلاوه برتشخیص حرکت قابلیت
تعقیب حرکت رادارد.؟
سلام خیر
اگه بخواهیم که این سنسور فقط به حرارت بدن انسان حساس باشه باید چیکار کرد؟
آیای سنسور دیگه ای هست که این کار رو انجام بده؟
با سلام و تشکر از توجه شما
در این خصوص با استفاده از پتانسیومتر روی برد باید تنظیمات را اعمال کنید.
سلام چطور میشه مکان حرکت را هم تشخیص داد؟
با سلام
برای این منظور باید از سنسورهای ترکیبی از جمله سنسور مادون قرمز و یا SRF استفاده کنید.
سلام سنسوری وجود دارد که فقط بدن انسان یا هر چیزی که خون در ان جریان داشته باشه را تشخیص بده یعنی به هیچ جسم دیگه ایی حساسیت نداشته باشه لطفا پاسخ بدید مرسی
با سلام
ضمن تشکر از توجه شما، بله چنین سنسوری وجود دارد، که دارای سنسور حرارتی دقیقتری هستند.
سلام.
تو این سناریو اینجوریه که تعریف میکنیم “اگه حرکتی دیده شد, کاری انجام بده(مثلا چراغ روشن شه). و با یک تاخیر چراغ خاموش بشه” ممکنه دراین زمان همچنان حرکت باشد,
چطور میشه تعریف کرد که ” تا زمانیکه حرکت هست, چراغ روشن بمونه و بعد از رفتن جسم یا انسان, بعد از زمان مشخصی, چراغ خاموش شه”
با تشکر
با سلام
ضمن تشکر از توجه شما، در این خصوص نمیتوان از این سنسور استفاده کرد. چون برای اینکه مداوم سنجش محیطی انجام دهد ساخته نشده است. البته میتوانید در تنظیمات سخت افزاری برد که با پتانسیومتر است، انتخاب کنید هر چند ثانیه یکبار مجددا تشخیص حرکت را انجام دهد. در این صورت میتوان در کدها تایم تعریف کرد که به هنگام تشخیص حرکت تا زمان مشخصی مدار روشن بماند و سپس در اون زمان مجددا حرکت دیده میشود که تایمر از اول شروع میشود و این چرخه تا زمانی که حرکت هست، ادامه دارد.
سلام سنسورsr501 روچطوری به برداردونیووصل کنم
با سلام
ضمن تشکر از توجه شما، این آموزش را مطالعه کردهاید؟
سلام
هستع نباشید
من این رو با ماژول سکمنت ترکیب کردم این هم کد هاش :
https://1drv.ms/u/s!Ahl0PabGfqIruwJabtvkG5h03u2x
با سلام و تشکر از توجه شما
در خصوص کدهایی که ارسال کردهاید، اگر تمایل دارید در دیجی اسپارک منتشر کنید، میتوانید زیر نظر تیم تحریریه و تولید محتوا دیجی اسپارک این کار را انجام دهید. در غیر این صورت ما پروژه را منتشر میکنیم و فقط اشاره به ارسال کننده خواهیم داشت. خواهشمندم در صورت تمایل از طریق کامنت در ادامه اعلام بفرمایید. تا روند کار اعلام شود.
سلام
اتفاقا بنده خوشحال میشوم تا پروژ] هامو با شما به اشتراک بزارم
بنده شغلمم برنامه نویسی تحت وب هستش . و با وردپرس هم اشنایی کاملی دارم
الان دارم پروژه ی iot ای مینویسم و تو قسمتیش به مشکل خوردم
میخوام سنسور تشخیص جرکت اضافه کنم به این کدهام ولی هرکاری میکنم درست کار نمیکند
https://1drv.ms/u/s!Ahl0PabGfqIru3KRYUBmO7i-9hWf
لینک کد
ممنون میشم کمک کنید
با سلام
خواهش میکنم، بسیار عالی است. فایل مربوطه را دانلود کردم ولی مشکل دارد. لطفا مجددا آپلود کنید تا بررسی کنم.
سلام.
من این سنسور رو راه اندازی کردم.و با آردوینو و ماژول سیمکارت خور a6 ترکیب کردم و یه دزدگیر ساختم.فقط تنها مشکلی که دارم اینه که ماژول بعضا اشتباه تشخیص میده.یعنی با اینکه کسی از جلوش رد نمیشه ،ماژول اشتباهی حرکت تشخیص میده و اس ام اس میاد برام.شاید در عرض ۳/۴ ساعت ۲۰ بار اشتباه تشخیص داد.به نظرتون میشه این مشکل رو حل کرد؟
با سلام
بسیار عالی، اگر تمایل دارید میتوانید پروژهتان را در دیجی اسپارک منتشر کرده و مشکلات کاربران دیگر را هم حل بفرمایید. در خصوص سنسور PIR دارای دو عدد پتانسیومتر است. یکی از پتانسیومترها برای تعیین حساسیت میباشد. از طریق پتانسیومتر تغییر دهید و سپس موارد را اطلاع رسانی کنید.
در خصوص انتشار پروژه با کمال میل این کار رو انجام میدم.
و امام مشکل بنده:
یکی از پتانسیومتر ها که Delay هست فکر نکنم مرتبط باشه.ولی اون یکی که حساسیت رو تنظیم میکنه رو خیلی دستکاری کردم ولی نتیجه ای نداد.
بعضی از سایت ها پیشنهاد داده بودن که از مقاومت PullUp استفاده بشه .اون رو هم امتحان کردم ولی جواب نداد.
سلام مجدد
بله در خصوص پتانسیومترها درست میفرمایید. استفاده از مقاومت باعث میشود که حساسیت پتانسیومتر را بیشتر کنید. متاسفانه بنده راه حل دیگری نمیدانم. از دیگر کاربران دعوت میکنم تا در این بحث شرکت کنند.
سلام، این مشکل میتونه چندین دلیل داشته باشه.
اولا توجه داشته باشید که اگر از آردویینویی استفاده میکنین که در اون از میکروکنترلر avr استفاده شده، میکروکنترلر ساختار cmos داره و در ساختار cmos با ولتاژ تغذیه ۵ ولت، ورودی یک منطقی از ۳٫۵ ولت الی ۵ ولت در نظر گرفته میشه و ولتاژهای مابین ۱٫۵ ولت الی ۳٫۵ به عنوان ناحیه گذار یا حاشیه نویز در نظر گرفته میشن و هر ولتاژی که در این بازه به آردویینو داده بشه، آردویینو به صورت تصادفی ۰ و یک منطقی تولید میکنه . خروجی سنسور تشخیص حرکت هم ۳٫۳ ولت هست که تو ناحیه گذار یا حاشیه نویز میکروکنترلر برد آردویینو قرار میگیره. برای رفع این مشکل یا می بایست از آی سی های تغییر سطح ولتاژ استفاده کنین یا از راه ساده تری مثل اندازی گیری ولتاژ سنسور توسط واحد آنالوگ به دیجتال داخلی برد آردویینو استفاده کنین.
مورد بعدی، نویز الکترومغناطیسی یا emi منتشر شده توسط ماژول gsm هست. برای رفع این مشکل باید این نویز رو کم اثر یا به طور کامل برطرف کرد. برای این منظور می بایست ماژول مخابراتی رو خاموش کنین تا اثر نویزش بر سنسور تشخیص حرکت تاثیر نذاره، سپس وقتی که حرکت تشخیص داده شده، ماژول مخابراتی رو روشن کنین و اس ام اس بفرستین. برای خاموش کردن ماژول هم میشه از روش نرم افزاری استفاده کرد و یک روش سخت افزاری..
در روش نرم افزاری ابتدا ماژول رو با دستور at+cfun=0 خاموش کنین، سپس هر وقت که حرکتی تشخیص دادین ماژول رو با دستور at+cfun=1 روشن کنین و به مدت یک دقیقه صبر کنین تا به شبکه متصل بشه و بعد و پیامک بفرستین
در روش سخت افزاری می بایست ماژول را با یک ترانزیستور خاموش کنین و بعد زمانیکه که حرکت تشخیص داده شده، ماژول رو روشن کنین و پیامک بفرستین
در این روش بهتره از یک ترانزیستور ماسفت با شماره irf840 استفاده کنین و ماسفت رو به صورت open drain قرار بدین. بدین صورت که ابتدا یکی از پایه های آردویینو رو به صورت خروجی تعریف کنین، سپس پایه گیت ماسفت رو به پایه ای از اردویینو که به صورت خروجی تعریف کردید، متصل کنین، اتصال زمین ماژول مخابراتی رو از زمین مشترک مدار جدا کنین، پایه درین ماسفت رو به زمین ماژول مخابراتی یا همون gnd متصل کنین و پایه سورس ماسفت رو به زمین مشترک مدار متصل کنین، یه مقاومت ۱۰ کیلو هم از پایه خروجی آردویینو که به گیت ماسفت متصل هست به صورت پول دان کنین. در این حالت در ابتدا وضعیت پایه خروجی رو در حالت صفر قرار بدید، سپس بعد از اینکه حرکت تشخیص داده شده پایه رو یک کنین که با این کار ماژول روشن میشه، سپس به مدت تقریبا یک دقیقا صبر کنین و بعد پیامک رو ارسال کنین.
از توضیحات دقیق و کامل همچنین شرکت در این بحث از جنابعالی تشکر میکنم.
سلام ..من در یک ویدوی دیدم که ماژول بدون ادروینو فقط با یک باتری یک ال ای دی رو روشن خاموش میکرد ایا میشه
با سلام
احتمالا با چند قطعه الکترونیکی تکمیلی بوده است. همچنین نوع ماژول هم در این موضوع تاثیر دارد.
با سلام
لطف کنید اگر زحمت میکشید یک آموزش میزارید یا به صورت کامل باشه که همه استفاده کنند یا اصلا از گذاشتنش خودداری بفرمایید.
با سلام
کاربر گرامی لطفا اگر در هرجایی از آموزش با مشکل مواجه شدهاید از همین طریق مطرح نمایید.
سلام و احترام
من در خصوص این ماژول یه مشکل اساسی دارم.
مشکل اینجاست که این ماژول رو تهیه کردیم اما وقتی خروجی سنسور sr501 رو به ورودی ماژول رله ۵ ولت تک کانال متصل میکنیم، رله به صورت دائمی فعال است.
تقریبا تمام امروز رو با اون پتانسیومتر ها کار کردم و دستکاری کردم. اما نشد. خروجی سنسور sr501 به محض اینکه ماژول به ولثاژ ۵ ولت متصل میشه ثابت ۳٫۳ ولت میمونه و دقیقا همین مشکل رو با sr505 هم داریم.
کسی میتونه من رو راهنمایی کنه؟
با سلام
امکان اتصال مستقیم سنسور به رله وجود ندارد.
ببخشید اگر جسمی جلوش ثابت باشه اون رو تشخیص میده؟
با سلام
سنسور pir مادون قرمز است و مانع را تشخیص میدهد.
عزیزم خوبی این ماژول اینه هیچ برنامه ای نمیخاد. این دقیقا همون کاریو انجام میده ک یک کلید بین لامپ و باطری یا همون دزدگیر و باطری انجام میده. دزدگیرت ۲تاسیم داره درسته؟ یکیش به یکی از پایه های ماژول اون یکیش به یک سره باطری یا ادابتور. اون یکی سره باطریم به اون یکی پایه. فقط بایذ بدونید کدوم پایه به دزدگیر و کدوم به باطری بزنی
با سلام
از همراهی و مشارک شما سپاسگزاریم.
بله دقیقا میشه. نمیدونم چرا همه میگن نیاز به کیت هست. همه این ماژولا کاره اصلیشون این هست ک یک مداری قطع و وصل میکنن. شما وقتی این ماژول بین راه یکی از سیم های باطری بزاری خیلی راحت بدون نیاز به هیچ کیتی کار میکنه با تشخیص حرکت مدار وصل میشه بد لامپ یا دزدگیر یا هرچیزه دیگه شروع بکار میکنه
تشکر از همراهی شما
بله روش های مختلفی برای راه اندازی هر ماژولی وجود دارد.