آردوینو آردوینو Arduino Uno آموزش آردوینو پروژه های آردوینو

آموزش ساخت مایع ریز کرونا اتوماتیک با پمپ و آردوینو Arduino

corona-virus-automatic-hand-spray-arduino-and-srf-relay-pump-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 


 آردوینو Arduino


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

 

 


سنسور آلتراسونیک SRF


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

duration/29/2

float Distance = ultrasonic.Ranging(CM);

سنسور آلتراسونیک با مدل‌های مختلفی در بازار موجود است. از جمله سنسور SRF04 و SRF05 که نسخه SRF05 ورژن به روز شده سنسور SRF04 است و یک پایه OUT بر روی برد اضافه شده است. پایه OUT در این برد نقش ورودی داشته و سیگنال برگشتی روی خط اکو  و یا تریگر است. برای ساخت مایع ریز کرونا تفاوتی در بین دو برد نیست و با توجه به نیاز خود می‌توانید از هر کدام استفاده نمایید.

 

 


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


سنسور آلتراسونیک به عنوان تشخیص دهنده

 پمپ جهت پاشش مایع ضد عفونی کننده

رله جهت فرمان به پمپ

آردوینو Arduino

کابل

 

 


اتصالات مایع ریز کرونا آلتراسونیک


اتصالات به صورت زیر است. مطابق با آن انجام دهید.

  • پایه تریگر سنسور آلتراسونیک را به پایه شماره ۱۲ آردوینو اتصال دهید.
  • پایه اکو سنسور آلتراسونیک را به پایه شماره ۱۳ آردوینو اتصال دهید.
  • پایه IN رله را به پایه شماره ۳ آردوینو اتصال دهید.
  • مثبت و منفی هر دو برد را از طریق پایه های VCC و GND اعمال کنید.

 


کد آردوینو Arduino الکل پاش کرونا


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

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 


نصب کتابخانه Ultrasonic


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

از منو Sketch در نرم افزار آردوینو گزینه Include Library را انتخاب کنید.
سپس Manage Libraries را انتخاب کنید.
در صفحه باز شده عبارت Ultrasonic را سرچ کرده و کتابخانه زیر را پیدا و نصب کنید. آخرین ورژن را انتخاب کنید:

 پس از نصب کتابخانه با توجه به نوع برد مورد استفاده، از منو Tools قسمت Boards آن را انتخاب و پورت را فعال کنید. سپس برنامه را آپلود کنید.

 


 نصب پمپ به رله


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

  • در برد آردوینو UNO, Meg2560 از پایه های دیجیتال برای اتصال به IN رله میتوان استفاده کرد.
  • در برد Nodemcu و Wemos از GPIO ها مانند D1, D2 میتوان استفاده کرد.

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

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

 


اتصال پمپ الکل پاش


جهت اتصال پمپ به رله با توجه به ولتاژ کاری به یک تغذیه جداگانه نیاز دارید. پس از انجام این مرحله با نزدیک شدن دست به سنسور آلتراسونیک، مدار عمل کرده و مایع ریز اتوماتیک کرونا، فعال میشود.

  1.  پمپ دارای دو سیم است. یکی از سیم‌ها را به دلخواه به یکی از پایه‌های تعذیه اتصال دهید.
  2. سیم دیگر پمپ Pump را به پایه COM رله اتصال دهید.
  3. پایه NO رله را به پایه دیگر تغذیه اتصال دهید.

به صورت نمادین در این آموزش از یک ال ای دی LED ساده به عنوان خروجی رله استفاده شده است.

 


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


با انجام اتصالات و آپلود کد روی برد آردوینو Arduino، پروژه آماده اجرا است. سنسور آلتراسونیک در فاصله ۳ تا ۴۰۰ سانتی متر اندازه گیری کرده و در زاویه ۱۵ درجه مانع را تشخیص میدهد. بر خلاف سنسورهای مادون قرمز نور محیط تاثیری در علمکرد سنسور نداشته و در فضای باز قابل استفاده است. با قرار گرفتن دست در فاصله ۲۰ سانتی متری سنسور رله فعال شده و به پمپ فرمان میدهد. از قابلیت های ویژه این برنامه میتوان به قطع سنسور در صورت فعال بودن رله اشاره کرد. به این صورت که با قرار گرفتن مانع در مقابل سنسور، رله پس از چند ثانیه قطع شده و پمپ غیرفعال می‌شود. فاصله اندازه گیری شده و زمان تاخیر در قطع شدن رله قابل تغییر توسط ما است.

 

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

 

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

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

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

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

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

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

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

۵۸ دیدگاه

  • سلام مهندس وقتتون بخیر ، ممنون از شما بخاطر مطالب خوبتون ، لطف کنید مشکل مارو هم پیگیری کنید چون همین برنامه رو اجرا کردیم ولی زمان اولین پاشش خیلی کم هست جوری که مصرف کننده در اولین استفاده ک دست رو زیر سنسور قرار میدهد یک پاشش خیلی خیلی کم دارد و مصرف کننده دست رو زیر دستگاه نگه میدارد و متوجه این نمیشه که باید دوباره دست رو زیر دستگاه قرار دهد ک پاشش های بعد انجام شود ( فقط پاشش اول مشکل وجود دارد ولی پاشش های بعد این مشکل وجود ندارد) و اینکه این برنامه برای سنسور srf05 هم جواب نمیدهد اگر لطف کنید تغییراتی حاصل کنید ک برای srf05 هم جواب بدهممنون میشم ، مجدد تشکر میکنم

    • با سلام
      ضمن تشکر از شما
      این برنامه با SRF05 قابل اجرا نیست و با SRF04 به درستی عمل می‌کند.

    • سلام هادی جان خوبی خیلی دنبالت گشتم خدا رو شکر اینجا پیدایت کردم حدود۳۰سال پیش با هم همکلاس بودیم میشه با من تماس بگیری منتظری
      با تشکر از مسول سایت اگر ممکن این پیام رو به آقای زبردست بدهید خدا خیرتان بدهد

  • سلام خانم پور بلورچیان من همین برنامه مایع ریز با پمپ را میخواهم با دو سنسور جهت نصب در تونل ضد عفونی استفاده کنم خودم یک برنامه تهیه کردم که البته در قسمتی از ان که مربوط به شرط غیر فعال کردن سنسور یک توسط سنسور دو هست مشکل دارم .اگر میشود من فایلم رو بفرستم راهنمایی کنید یا اینکه فایل خودتان را تغییر بدهید بگذارید توی سایت من هم خرید میکنم شاید بدرد دیگران هم بخورد

  • سلام
    آیا میشه بجای sr04 از چشمی مادون قرمز استفاده کرد درصورت اجرا لطفا پین های مربوطه را بفرمایید

  • سلام
    مداری دیدم با استفاده از سنسور مادون قرمز و مابقی قسمت ها هم بدون برد آردوینو و میکرو .
    میخواستم بدونم حضور برد آردوینو و میکرو چه قابلیت هایی به دستگاه ما اضافه میکند .
    با تشکر .

    • با سلام
      سنسورهای مادون قرمز بدون نیاز به میکرو به رله متصل می‌شوند و تا زمانیکه فعال باشد، رله هم فعال است و پاشش را انجام می‌دهد.

  • من اکانت خریدم ولی کد های پروژه رو به من نمیده .
    حساب روهم تائید کردم ولی میگه منتظر تائید حساب هستیم

  • سلام من پروژه رو درست کردم بعضی اوقات رله فعال میشه و دیگه قطع نمیشه باید دستگاه رو خاموش کنی

  • سلام
    با تشکر از مطلب بسیار خوب و مفیدتون
    من سؤال داشتم از خدمت شما
    پمپی که بشه برای این ماژول استفاده کرد رو موجود دارین؟ و یا اینکه راهنمایی می کنید اسم و مشخصاتش چی هست؟
    ممنون از شما

    • با سلام
      با تغییر متغیر i میتوانید مدت زمان روشن شدن رله را تعیین کنید.
      for (int i = 0; i <= ۳۰۰; i++) {

    • با سلام
      با تغییر متغیر i میتوانید مدت زمان روشن شدن رله را تعیین کنید.
      for (int i = 0; i <= ۳۰۰; i++) {

  • با سلام . بنده اشتراک خریدم اما برای دریافت کد ها با چنین پیامی مواجه شدم
    ایمیلی برای تائید حساب شما ارسال شده است .
    در حالی که لینک را تایید کردم . ممنون میشم مشکل را حل کنید

  • سلام من اشتراک خریدم.
    اما وقتی می خوهم کد را دریافت کنم می زنه ایمیلی برای تائید حساب شما ارسال شده است .
    مشکل چی هست؟؟

  • ببخشید برای نصب پمپ به برق من مشکل دارم
    نمیدونم چه جوری پمپ به برق وصل کنم میشه راهنمایی کنید؟
    برای این ساخت این مدار میشه از پمپ اب jt180a براشلس استفاده کرد؟

  • ببخشید برای نصب پمپ به برق من مشکل دارم
    نمیدونم چه جوری پمپ به برق وصل کنم میشه راهنمایی کنید؟
    برای این ساخت این مدار میشه از پمپ اب jt180a براشلس استفاده کرد؟
    برای این سیستم نمیخوام از پمپ غرقی استفاده کنم
    چه پمپی رو پیشنهاد میدید؟

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

  • سلام عزیزم
    وقتتون بخیر،شما در وسایل مورد نیاز عکس یک قطعه که دوتایی هست رو گذاشتید ولی در عکس اتصالات از تکی اون قطعه استفاده کردید،ممنون میشم برای سیم کشی دوتاییش راهنمایی کنید.

    • با سلام
      رله ها به صورت تک، دو و ۴ و ۸ کاناله است که اتصالات کامل یکسان و مشابه هستند. VCC به ۵ ولت و GND به GND و IN1 , IN2 و… به ترتیب به پایه های دیجیتال برد آردوینو طبق کدهای برنامه وصل می‌شود.

  • سلام
    من اشتراک ۳ ماهه خریداری کردم
    ولی نمیدونم چه پروژه هایی دقیقا میتونم استفاده کنم؟؟
    مثلا همین پروژه رو چرا نمیتونم استفاده کنم
    لطفا راهنمایی بفرمایید

  • سلام خسته نباشید ببخشید من اگه بخوام رله به مدت ۱ الی ۲ ثانیه فعال شود بشود کدوم خط برنامه را باید تغییر بدهم

  • شما کد های برنامه را با Active high نوشتید رله واسه خرید رو
    active low گذاشتید واسه فروش وقتی پیاده سازی میشه یسره کار مکینه لطفا کد هارو اصلاح کنید یا ماژول درست بفرستید

    • با سلام
      سپاس از همراهی شما کاربر گرامی
      بر روی هر رله این مورد نوشته شده است و تفاوتی در کد برنامه وجود ندارد. کافیست پایه های را high , low در کد برنامه را تغییر دهید.