تبلیغات
مطالب اینترنتی - تشخیص دهنده سطح آب با استفاده از آردوینو و سنسور آلتراسونیک

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

یکشنبه 3 دی 1396 11:53 ب.ظنویسنده : نویسنده

 


ساخت مدار تشخیص دهنده سطح آب با استفاده از سنسور آلتراسونیک و آردوینو یک پروژه بسیار جالب و مفید است. هدف این ساختنی نشان دادن میزان آب درون یک مخزن به کاربر است که این میزان می تواند از قبل در مخزن آب مشخص شود. این پروژه را می توان بیشتر برای کنترل کردن سطح آب در یک مخزن استفاده کرد، به این صورت که در زمان پایین بودن سطح آب آن را روشن کرده و در زمانی که سطح آب بالا است آن را خاموش کرد. بنابرین مدار تشخیص دهنده سطح آب با استفاده از آردوینو به جلوگیری از هدر رفت آب در مخازن کمک می کند. این پروژه به صورت بی سیم است که نصب آن را بسیار ساده می کند و تا فاصله ی حدود ۱۰۰ متر به خوبی کار می کند.

در این پروژه از دو مدار استفاده شده است: یک مدار فرستنده و یک مدار گیرنده. مدار فرستنده از یک سنسور آلتراسونیک برای اندازه گیری سطح آب به شکل فاصله استفاده می کند. این اطلاعات با استفاده از ارتباط با سیگنال RF برای مدار گیرنده فرستاده می شود. سطح آب به شکل درصدی بر روی یک صفحه LCD 16*2 پیکسل نشان داده می شود که این صفحه نمایش به مدار گیرنده متصل شده است.

اجزای مورد نیاز مدار و تعداد:

اجزا مشخصات تعداد
آردوینو Nano ۲
سنسور آلتراسونیک HC-SR04 ۱
جفت فرستنده گیرنده RF ASK 433 ۱
LCD ۱۶x2 ۱
مقاومت ۱۰K ۱
سوییچ DPDT ۲
باتری ۹ ولت ۲
نگهدارنده باتری ۲

نحوه کارکرد مدار

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

مدار گیرنده اطلاعات را از مدار فرستنده دریافت کرده و آن را به صورت درصد تبدیل کرده و بر روی LCD نمایش می دهد.

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

در ساختنی بخوانید : آموزش ساخت : قاب عکس دیواری چوبی بسازید

توضیح مدار تشخیص دهنده سطح آب با استفاده از آردوینو

مدار ارسال کننده: مدار ارسال کننده در شکل زیر نشان داده شده است. در این مدار یک سنسور آلتراسونیک به پین D9 و D10 در برد آردوینو متصل شده اند. تغذیه سنسور آلتراسونیک با استفاده از پین های Vcc و GND تأمین می شود و این پین ها به پین های متناظر خود در برد آردوینو متصل شده اند. اطلاعات اندازه گرفته شده با استفاده از ارتباط RF انتقال داده می شود. پین انتقال دهنده اطلاعات RF به پین D4 در برد آردوینو نانو متصل شده است. در این مدار ارسال کننده و در بخش فرستنده RF از یک آنتن استفاده شده که به پایه ANT در فرستنده RF متصل شده است. کل این مدار با یک باطری ۹ ولتی تغذیه می شود که به پایه های Vcc و GND در برد آردوینو متصل شده است.

مدار تشخیص دهنده سطح آب با استفاده از آردوینو نانو

مدار تشخیص دهنده سطح آب با استفاده از آردوینو نانو

مدار دریافت کننده: در مدار دریافت کننده، از گیرنده Rf برای دریافت اطلاعات از ارسال کننده استفاده شده است. پین انتقال اطلاعات در گیرنده RF به پین D4 در برد آردوینو متصل شده است. سطح آب بر روی LCD نمایش داده می شود و این LCD به پین های D4 تا D9 در برد آردوینو متصل شده است. تغذیه صفحه نمایش از پین های Vcc و GND در برد آردوینو تأمین می شود و پایه تنظیم کنتراست LCD که پین سوم آن است را می توان از قبل تنظیم کرد. مدار گیرنده با استفاده از یک باطری ۹ ولتی که به پین های Vcc و GND برد آردوینو متصل است و توسط یک کلید سوییچ کنترل می شود، تأمین شده است. مدار این بخش در تصویر زیر نشان داده شده است.

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

در ساختنی بخوانید : یک منبع تغذیه جیبی بسیار کوچک با ولتاژ متغیر بسازید

کدهای برنامه تشخیص دهنده سطح آب :

همانطور که در قبل گفته شد در این پروژه از دو مدار استفاده شده است که هر دوی آنها با استفاده از برد آردوینو نانو تغذیه می شود. برای ارتباط بین مدارهای گی رنده و فرستنده از ماژول RF استفاده شده است.

نحوه اضافه کردن کتابخانه

  • دانلود کتابخانه مربوطه از این لینک
  • فایل rc-switch-master از حالت زیپ خارج شود.
  • فایل درون rc-switch-master کپی شده و در آدرس Documents> Arduino> library قرار داده شود.
  • در صورت باز بودن نرم افزار آردوینو IDE باید آن را بست.
  • نرم افزار آردوینو IDE را باز کرده و از قسمت file بخش Example بررسی شود، در صورت اضافه شدن کتابخانه مربوطه، می توان rc-switch-master را در لیست Example مشاهده کرد.

ارسال اطلاعات

در کدهای مربوط به بخش فرستنده، از دو فایل در بخش header استفاده شده است. اولین آن RCSwitch.h است که برای ارسال RF استفاده شده و دیگری Ultrasonic.h است که برای استفاده از سنسور التراسونیک استفاده می شود. اکنون پین های مربوط به سنسور آلتراسونیک در خط چهارم با نام آلتراسونیک، پین شماره ۱۱ به نام Trig و پین شماره ۱۰ به نام Echo نامگذاری شده است. در خط ۵، RCSwitch برای استفاده در ارتباطات به نام “mySwitch” نامگذاری شده است. در خط ۷ یک متغیر از نوع integer به نام “I” معرفی شده است.

در قسمت setup ، فرستنده با استفاده از عملکرد “mySwitch.enableTransmit(4)” و در قسمتی که پین مربوط به ارسال اطلاعات به پین D4 در آردوینو متصل شده است فعال می شود.

در بخش حلقه loop ، فاصله اندازه گیری شده در قسمت “ultrasonic.Ranging(CM)” در متغیر به نام i که از نوع integer است قرار می گیرد. این فاصله به صورت سانتی متر اندازه گیری شده است.

دریافت کننده

در بخش گیرنده اطلاعات از دو فیل در بخش header استفاده شده است. اولین آن RCSwitch.h است که برای ارتباط RF در بین فرستنده و گیرنده استفاده شده و دیگری LiquidCrystal.h بوده که برای راه اندازی نمایش دهنده LCD استفاده شده است. در خط چهارم، پین های مربوط به آردوینو که به LCD متصل شده اند معرفی گشته اند. در مجموع ۶ پین متصل شده به آردوینو پین های D4, D5, D6, D7, D8, D9 هستند. در خط ۵ ، RCSwitch به نام “mySwitch” معرفی شده است.

در ساختنی بخوانید : بی سیم مچی یا ساعت واکی تاکی بسازید

در خط ۷، یک متغیر از نوع float به نام “level” معرفی شده که سطح آب را نشان می دهد و در خط ۹ و ۱۰ دو متغیر از نوع integer به نام های “Hval” و “Lval” معرفی شده است. متغیر “Hval” بالاترین میزان سطح آب ( فاصله از سنسور آلتراسونیک) را و “Lval” کمترین میزان سطح آب را نشان می دهند. پس از آن پین های مربوط به بلندگو با نام “BUZZER” معرفی شده که به پین D10 در آردوینو متصل شده است.

در بخش setup، گیرنده RF با استفاده از عملکرد “mySwitch.enableReceiver(0)” که پین وقفه ۰ (INT0) یا همان پین D2 در آردوینو است، فعال می شود.

در خط ۱۶، LCD با استفاده از عملکرد “lcd.begin(16, 2)” شروع به کار می کند و در خط ۱۷ از “lcd.print” برای نمایش عبارت “WATER LEVEL INDI” در ردیف اول صفحه نمایش LCD استفاده شده است.

در خط ۱۹ با استفاده از “pinMode(BUZZER, OUTPUT)” پین مربوط به بلندگو به عنوان خروجی معرفی شده است.

در ابتدای بخش “void loop()” از “if (mySwitch.available())” استفاده شده که به این معنی است که اگر هر اطلاعاتی از گیرنده RF دریافت شد، برنامه وارد حلقه شود. در خط ۲۵، اطلاعات دریافت شده از گیرنده RF با استفاده از عملکرد “mySwitch.getRecivedValue” کد گشایی شده و در متغیر “level” که از نوع float است ذخیره می شود.

در خط ۲۷ و ۲۸ متغیر “level” با استفاده از عملیات های ریاضی پردازش شده و به درصد تبدیل می شود. در خط ۳۰، شرط if برای محدود کردن درصد استفاده می شود.

در خط ۳۲، ۳۳، ۳۴و ۳۵ سطح آب بر روی LCD نمایش داده شده و در خط ۳۷ از عملکرد “mySwitch.reset.Available()” برای دوباره به کار انداختن ماژول RF استفاده شده است. در خط پایانی کد برنامه، شرط if برای روشن کردن بلندگو استفاده شده است به گونه ای که اگر سطح آب از ۹۹ درصد بالاتر رود بلند گو روشن خواهد شد.

منبع

بیشتر بخوانید:

[ad_2]

لینک منبع

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


لینک منبع و پست :تشخیص دهنده سطح آب با استفاده از آردوینو و سنسور آلتراسونیک
http://mofidestan.ir/%d8%aa%d8%b4%d8%ae%db%8c%d8%b5-%d8%af%d9%87%d9%86%d8%af%d9%87-%d8%b3%d8%b7%d8%ad-%d8%a2%d8%a8-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d8%a2%d8%b1%d8%af%d9%88%db%8c%d9%86/
آخرین ویرایش: - -

 
دوشنبه 4 دی 1396 09:33 ق.ظ
عزیزم می دونی چرا بازدید وبلاگت کمه ؟
میخوای بازدیدت رو زیاد کنی؟
یه راه آسون و بدون هزینه واست دارم.
تبادل لینک کن
با وبلاگ من ( چون مخصوص تبادل لینک و افزایش بازدیده )
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر