آردوینو آردوینو Arduino Uno آموزش آردوینو برد ESP8266 برد Nodemcu برد ویموس Wemos پروژه های آردوینو

آموزش ساخت چشمی راه پله با آردوینو و سنسور تشخیص حرکت PIR

stairs-motion-sensor-with-arduino-and-pir-hc-sr501-module-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 


عملکرد سنسورهای تشخیص حرکت


تشخیص دهنده های حرکتی دارای یک چشم الکترونیک کوچک در ساختار خود هستند که اشعه اینفرارد را تشخیص میدهند یا به عبارتی امواج گرمایی که از اشیا تابش میکند را دریافت می‌کند. هدف اصلی سنسورهای تشخیص حرکت، ارسال فرمان است حال این فرمان میتواند چراغ باشد، زنگ آلارم و … در برخی از سیستم های امنتی در صورت فعال بودن سنسورهای حرکتی امکان ثبت و ضبط وقایع فراهم است. سنسورهای حرکتی حالت Stand Guard هستند و در مقابل حضور انسان، باز شدن درب و حتی پنجره ها واکنش نشان میدهند. الیته در این مورد میتوان بر اساس زاویه دید هر سنسور، جهت استفاده در مکان های مختلف انتخاب دقیق تری داشت. به عنوان مثال میتوانید سنسور حرکتی را در ورودی درب قرار داده و پس از تشخیص فرد در محل از طریق ایمیل، تلگرام و حتی اسمس به شما اطلاع دهد. یکی از مهم ترین دلیل استفاده از سنسورهای حرکتی صرفه جویی در مصرف انرژی است و تنها در زمانی که نیاز به آن داریم، فعال است.

 


انواع سنسورهای حرکتی


سنسورهای حرکتی دارای چند مدل مختلف است:

  • مادون قرمز پسیو یا غیرفعال Passive Infrared
  • آلتراوسونیک Ultrasonic
  • لرزشی Vibration
  • مایکرویو Microwave

در این آموزش ما از سنسور مادون قرمز پسیو یا همان PIR استفاده می‌کنیم که دارای مدل های مختلفی است. مانند HR501, HR502, PIR602 و …. مدل های دیگر که از طریق لینک زیر میتوانید بررسی و انتخاب کنید.

خرید سنسور مادون قرمز

 


برد آردوینو Arduino


میکروکنترلرها به دلیل طراحی منحصر به فرد در ساختار و پشتیبانی از پروتکل های I2C, SPI و … در دنیای الکترونیک بسیار محبوب و کاربردی هستند. دسترسی به پایه های I/O, GPIO در یک برد در کنار هم، تفاوت در ظاهر و تولید در ابعاد های کوچک نقش پررنگی در ساخت گجت های الکترونیکی ایفا کرده است. برد آردوینو میکروکنترلری با قابلیت دسترسی به پورت های دیجیتال و آنالوگ و پروتکل‌های I2C و SPI است. در این آموزش از آردوینو Arduino مدل UNO استفاده شده است. برد آردوینو Arduino دارای تراشه Atmega328P است و با در اختیار داشتن پایه‌های کنترلی آنالوگ و دیجیتال I/O میتوان با سنسورهای مختلف ارتباط برقرار کرد. با در نظر گرفتن پروتکل ارتباطی، آن‌ها را راه اندازی و کدنویسی کرد. محیط برنامه نویسی IDE Arduino است که نباز به دانش برنامه نویسی C++ خواهد داشت. با انتقال کد به محیط برنامه نویسی و کامپایل کد پروژه آماده اجرا خواهد بود. مراحل نصب نرم افزار آردوینو Arduino در آموزش زیر نوشته و منتشر شده است. در صورتیکه تا به حال با برد آردوینو کار نکرده اید، ابتدا آموزش زیر را مطالعه و سپس مراحل بعدی را اجرا کنید. آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE همچنین به صورت مستقیم میتوانید نرم افزار آردوینو را از طریق لینک زیر دانلود کنید. مراحل نصب نرم افزار دقیقا مشابه دیگر نرم افزارهای کامپیوتری است. لینک دانلود نرم افزار آردوینو

 


سنسور PIR تشخیص حرکت


سنسورهای مادون قرمز جهت تشخیص امواج مادون قرمز ساطع شده از اجسام طراحی شده است و از دو قسمت Pyroelectric Sensor و  Fresnel lens تشکیل شده است. پایروالکترونیک در از دو مستطیل در ساختارش ساخته شده که به امواج مادون قرمز اجازه ورود می‌دهد و در پشت آن دو الکترود حسگر مادون قرمز قرار دارد. سنسور تشخیص حرکت HR501 دارای مصرف انرژی بسیار کم، قیمت مناسب و زاویه دید پهن است. ولتاژ کاری سنسور  ولت است. ساختار ماژول PIR به صورت زیر است:

 

سنسور از سه پایه OUT, VCC, GND تشکیل شده است. از رگولاتور داخلی ۳٫۳ ولت DC و دیود محافظ در ساختارش استفاده شده و دارای دو مولتی ترن است.

  • Sensitivity: جهت تنظیم حساسیت سنسور که چرخش در جهت ساعتگرد رنج حساسیت را  افزایش داده و چرخش در جهت پادساعتگرد کاهش میدهد.
  • Time Delay:  امکان تغییر زمان تاخیر که جرخش در جهت ساعتگرد افزایش و چرخش در جهت پادساعتگرد کاهش می‌یابد.

 


اتصالات سنسور PIR


اتصال سنسور تشخیص حرکت PIR به برد های آردوینو و یا سری ESP8266 به صورت زیر است.

 


کد آردوینو سنسور PIR


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

آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE

 در این مرحله اتصالات را انجام داده و جهت کامپایل برنامه بر روی برد آردوینو ابتدا Verify و سپس Upload را انتخاب کنید. با کامپایل برنامه سریال مانیتور را از گوشه سمت راست نرم افزار انتخاب کنید.

 در ابتدا سنسور کالیبره شده و پیام فعال شدن سنسور PIR نمایش داده می‌شود. سپس با قرار گرفتن دست در مجاورت سنسور، تشخیص حرکت صورت گرفته و پیغام Motion Detected نمایش داده می‌شود. جهت اتصال لامپ، آلارم و یا هر خروجی دیگری جهت اطلاع از عملکرد سنسور، از یک رله استفاده می‌کنیم. رله نقش خروجی داشته و قابلیت اتصال لامپ، زنگ و یا هر وسیله دیگری را دارد و به عنوان هشدار در مدار عمل خواهد کرد.

 


روش استفاده از رله


رله نوعی کلید الکترونیکی عملگر است که به دو حالت خاموش و روشن میتوانید آنرا تغییر وضعیت دهید. توسط رله می‌توانید جریان را عبور و یا قطع کنید. تمامی ماژول های رله در تعداد پایه‌های خروجی برابر است و مدل‌های مختلفی مانند رله تک کانال، رله دو کانال، چهار کانال و هشت کانال در بازار موجود است. مشخصا اتصال پایه‌های سنسور به پایه‌های ورودی رله بسیار ساده است. پایه‌هایی که با IN مشخص شده است مستقیم به پایه‌های برد میکروکنترلر متصل می‌شود. در برد آردوینو UNO, Meg2560 از پایه های دیجیتال برای اتصال به IN رله میتوان استفاده کرد. در برد Nodemcu و Wemos از GPIO ها مانند D1, D2 میتوان استفاده کرد.

به همین ترتیب می‌توانید اتصالات ورودی را انجام داده و تغذیه ۵ ولت و GND را از برد میکروکنترلر از جمله آردوینو، Nodemcu, Wemos تامین کنید. هر رله دارای سه پایه NO, COM و NC است.

  • پایه COM: پایه مشترک Common است.
  • پایه NC به معنای نرمالی کلوز یا همان پیش فرض بسته است و زمانی استفاده می‌شود که بخواهید رله به صورت پیش فرض بسته باشد. به این صورت که جریان در مدار وجود دارد و در صورت ارسال سیگنال از آردوینو مدار باز شده و جریان را متوقف می‌کند.
  • پایه NO به معنای نرمالی اوپن یا همان پیش فرض باز است و به این معنی که رله همیشه باز است و مدار باز بوده و پس از ارسال سیگنال از آردوینو مدار بسته خواهد شد.

 

 


تحلیل کد آردوینو Arduino


در ابتدا برای هر ورودی و خروجی در برنامه پایه ای را انتخاب و به آن نسبت می‌دهیم.

در مرحله بعد تعریف پایه ها و نقش آن ها در برنامه و مدت زمان کالیبره شدن سنسور را تعیین می‌کنیم:

در مرحله آخر نوبت به فعال سازی سنسور و فرمان به خروجی می‌رسد. یک حلقه در برنامه تعریف شده و سپس با فعال شدن سنسور رله HIGH شده و پس از چند ثانیه رله غیرفعال LOW می‌شود.

 


ساخت چشمی با برد ESP8266


بردهای سری ESP8266 به دلیل برخورداری از تراشه وای فای در پروژه ها نقش مهمی در انتقال و دریافت دیتا ایفا می‌کنند. در این آموزش به کمک برد آردوینو یک مدار چشمی طراحی کردیم. در صورتیکه بخواهیم پروژه با بردهای ESP8266 مانند برد Wemos d1 mini,  برد Nodemcu اجرا شود، روند اجرای پروژه کاملا یکسان است. تنها نکته ی مهم انتخاب پایه های GPIO برای ورودی و خروجی است. به عنوان مثال در این پروژه سنسور تشخیص حرکت نقش ورودی input داشته و رله نقش خروجی Outpu دارد. حال در بردهای سری ESP8266 پایه ها از D0 تا D8 تعریف می‌شود:

 

با مشخص کردن پایه های GPIO، میتوانید در تعریف پایه های برنامه در کد آردوینو از D0 تا D8 استفاده کنید. به عنوان مثال پایه دیتا سنسور PIR را به D1 متصل کرده و پایه دیتا رله را به D2 متصل کنید. روند کدنویسی فقط در تعریف پایه ها متفاوت است که به صورت زیر خواهد بود:

 

 


کد آردوینو ESP8266


بر اساس نوع برد انتخابی، از منو Tools نوع برد را انتخاب کنید. Wemos d1 mini  و یا Nodemcu سپس بادریت را مشخص کرده و با اعمال تغییرات در کد جدید برنامه را آپلود کنید. کد برنامه بر پایه برد ویموس و یا Nodemcu در ادامه ضمیمه شده است. کد را کپی و به نرم افزار آردوینو انتقال دهید.

 

 


وسایل مورد نیاز


سنسور تشخیص حرکت PIR

برد آردوینو Arduino

رله Relay

کابل فلت

 

 


جمع بندی لیدی پای


با استفاده از بردهای آردوینو و یا سری بردهای ESP8266 مثل Nodemcu, Wemos D1 mini و یک سنسور مادون قرمز پسیو با استفاده از این کد آردوینو میتوانید یک مدار چشمی تشخیص حرکت بسارید و در محل کار، منزل و راه پله ها به راحتی قابل استفاده است. در انتخاب نوع سنسور PIR عواملی مثل زاویه دید سنسور، ولتاژ کاری، پشتیبانی از میکروکنترلرها، امکان تنظیم حساسیت و یا زمان تاخیر بسیار مهم و وابسته است. مدت زمان فعال بودن رله در کد آردوینو قابل تنظیم است و با توجه به زمان مورد نظر خود میتوانید آن را تغییر دهید.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه