با آردوینو یک شاخص تعیین سطح مایعات بسازید!

فهرست مطالب

مقدمه

در این آموزش با نحوه اندازه گیری سطح مایعات به کمک آردینو آشنا می‌شویم و چگونگی کار با سنسور تعیین سطح را می‌آموزیم. در ابتدا به معرفی نحوه عملکرد آن می‌پردازیم. سپس نحوه راه اندازی و کار با این ماژول را خواهیم دید و در نهایت نیز چند مثال کاربری را ارائه خواهیم داد.

آنچه در این آموزش یاد می گیرید

سطح سنجی مایعات چیست و چگونه انجام میشود؟

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

سنسور تشخیص سطح مایعات چگونه کار میکند؟

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

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

خروجی این سنسور به صورت ولتاژ آنالوگ است. هرچه سطح مایع بیشتر باشد، ولتاژ خروجی افزایش می یابد.

معرفی پایه ها (Pinout) سنسور تشخیص سطح آب

سنسور تشخیص سطح آب دارای 3 پایه به شرح زیر است:

  •  +: تغذیه ماژول – 2 تا 5 ولت
  •  -: زمین
  •  S: خروجی ماژول به صورت ولتاژ آنالوگ

پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.

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

قطعات مورد نیاز

برد آردوینو UNO × 1
سنسور تشخیص سطح آب - سنسور رطوبت × 1
سنسور تشخیص سطح آب - سنسور رطوبت تولید YwRobot × 1
سنسور تشخیص سطح مایعات ساخت Waveshare × 1
سیم جامپر نری به نری × 1
بازر × 1

نرم افزارهای مورد نیاز

Arduino IDE

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

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

گام اول: سیم بندی

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

گام دوم: کد

کد زیر را روی برد خود آپلود کرده و پنجره serial monitor  را باز کنید. با قرار دادن ماژول در ظرف آب و تغییر ارتفاع آن می‌توانید درصد ارتفاع آب را در پنجره مشاهده کنید.
/* Water level sensor
 *  by Hanie Kiani
 *  https://electropeak.com/learn/   
 */
const int analogInPin = A0; 
int sensorValue = 0;

void setup() {
 Serial.begin(9600); 
}
 
void loop() {
 sensorValue = analogRead(analogInPin); 
 Serial.print("Sensor = " ); 
 Serial.print(sensorValue*100/1024); 
 Serial.println("%");
 delay(1000); 
}

تشخیص باران به کمک سنسور تعیین سطح مایعات

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

گام اول: سیم بندی

گام دوم: کد

/*  
   * Rain Detector with Water level sensor 
 *  by Hanie kiani 
 *  https://electropeak.com/learn/    
 */ 
const int sensorMin = 0;     // sensor minimum 
const int sensorMax = 1024;  // sensor maximum 
const int buzzer = 9; 

void setup() { 
  Serial.begin(9600);   
  pinMode(buzzer, OUTPUT); 
} 

void loop() { 
int sensorReading = analogRead(A0); 
int range = map(sensorReading, sensorMin, sensorMax, 0, 3); 

  // range value: 
  switch (range) { 

 case 0:    // Sensor is wet 
    Serial.println("ٌWet!"); 
    tone(buzzer, 5000);  
    break; 

 case 1:    // Sensor getting wet 
    Serial.println(" Warning"); 
     tone(buzzer, 1000 , 5);  
    break; 

 case 2:    // Sensor dry  
    Serial.println("Dry"); 
    noTone(buzzer);   
    break; 
  } 

  delay(10);  // delay between reads 
}
تابع map() محدوده‌‌‌ی اندازه گیری سنسور را که بین 0 تا 1024 می‌باشد را به 3 بازه کوچکتر تقسیم می‌کند.
tone(buzzer, 5000);

تابع tone() برای به صدا در آوردن بازر استفاده می‌شود. آرگومان اول پین مربوط به بازر است و آرگومان دوم فرکانس پالس اعمالی به آن را مشخص می‌کند.

این تابع میتواند آرگومان دیگری نیز داشته باشد که مدت زمان اعمال ولتاژ مشخص شده به بازر را مشخص می‌کند.

یک گام جلوتر

  • سعی کنید با استفاده از ماژول های ارسال پیامک (مانند sim800) به سیستم تشخیص باران این قابلیت را اضافه کنید که بارش باران را با ارسال پیامک به شما اطلاع دهد.

از این مطلب خوشتان آمد؟

آخرین مطالت و آموزش ها را در ایمیلتان دریافت کنید:

مطالب بیشتر

Comments (6)

  • علیرضا Reply

    سلام مشکل این سنسور اینه بعد از چند روز سطح مسیش اکسید میشه ، ایا روشی هست که این مشکلو حل کرد؟؟ !

    سپتامبر 30, 2020 at 1:40 ب.ظ
    • علی Reply

      سلام نمیشه یک لایه ی قطع روشه .

      نوامبر 26, 2020 at 9:07 ب.ظ
  • مهسا دهقان Reply

    برای سنجش سطح یک ظرف حاوی الکل هم میشه از این سنسور استفاده کرد؟؟؟

    فوریه 7, 2022 at 2:18 ق.ظ
    • مهران ملکی Reply

      سلام.
      از این سنسور میشه برای مایعاتی که رسانایی داشته باشند استفاده کرد. و از اونجایی که الکل هم بسیار رسانایی بالایی داره، میشه برای الکل هم استفاده کرد. اما نکته‌ای که وجود داره امکان آسیب به سنسور پس از مدتی استفاده هست، چون الکل خاصیت خورندگی داره. برای مایعاتی مثل الکل که میتونن تو برخورد مستقیم با سنسورها و قطعات به اونها آسیب برسونن، یه گزینه جایگزین میتونه سنسورهای تعیین سطح غیر تماسی باشه. در آموزش زیر میتونید یک نمونه از نحوه کار با یک سنسور تعیین سطح مایع غیرتماسی رو ببینید.
      https://thecaferobot.com/learn/interfacing-xkc-y26-v-non-contact-water-liquid-level-sensor-with-arduino/

      فوریه 7, 2022 at 9:03 ق.ظ
  • محبوب ربانی شیرآباد Reply

    باسلام این سنسور می تواند در مخزن های خیلی کوچک استفاده شود ولی برای مخزن های مثلا ۳ضربدر ۴ وگودی ۳ متر از چه چیزی می توان استفاده کرد ؟ لطفا راهنمایی فرمایید ..

    جولای 20, 2023 at 4:19 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      در مخزن های بزرگ بیشتر خالی و پر شدن مخزن مد نظر می باشد از این رو شما میتوانید از این سنسور آموزش راه اندازی سنسور تشخیص سطح آب (سوئیچ شناور) با آردوینو استفاده کنید
      به این صورت که یکی از این سنسور ها را در بالای مخزن قرار میدهید و دیگری را در پایین مخزن ( با لوله ای در پایین مخزن نگه دارید) قرار میدهید و با توجه به زمان های قطع و وصل شدن این 2 سنسور می توانید تشخیص بدهید که مخزن شما در چه شرایطی قرار دارد.
      نگران سنسور هم نباشید کاملا ضد آب می باشد
      در صورتی که نیاز دارید به صورت دقیق ارتفاع آب را در هر لحظه داشته باشید. برای این مورد نیز چندین روش وجود دارد اما تقریبا روش ساده استفاده از فشار آب پشت مخزن می باشد یعنی یک سنسور فشار آب را در خروجی پایین مخزن قرار میدهید و با توجه به فشاری که اندازه گیری میکنید میزان مایع که در داخل مخزن وجود دارد را اندازه گیری میکنید.

      جولای 22, 2023 at 10:38 ق.ظ

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

نشانی ایمیل شما منتشر نخواهد شد.