Water pump controller with arduino | ওয়াটার পাম্প কন্ট্রোলার

পানির অপর নাম জীবন। পৃথিবীর তিন ভাগই পানি হওয়া সত্বেও পানযোগ্য পানির পরিমাণ সীমিত। তাই পানির অপচয় রোধ জীবনের সবক্ষেত্রেই করা প্রয়োজন। পানির  অপচয়রোধে সময়মতো পাম্প চালানো এবং বন্ধ করা খুবই জরুরি। এই কাজটিকে সহজ করতেই ব্যবহার করা হয় ওয়াটার পাম্প কন্ট্রোলার। ওয়াটার পাম্প কন্ট্রোলারের কাজ হচ্ছে ট্যাঙ্ক পূর্ণ হয়ে গেলে পাম্পের মোটর বন্ধ করা এবং ট্যাঙ্ক খালি হবার প্রাক্কালেই মোটর চালু করা। এই এক্সপেরিমেন্টে আমরা দেখব আরডুইনো ব্যবহার করে কিভাবে একটি ওয়াটার পাম্প কন্ট্রোলার তৈরী করা হয়। আগেই বলে নিচ্ছি এই প্রজেক্টটি বাস্তবেই কোনো পানির ট্যাঙ্ক ও মোটরে প্রয়োগ করতে চাইলে এর হার্ডওয়্যারে যথেষ্ট পরিবর্তন আনতে হবে। কিন্তু মূলনীতিটা একই থাকবে।

প্রয়োজনীয় যন্ত্রপাতিঃ প্রজেক্টটি করতে যে যন্ত্রপাতিগুলো ব্যবহার করা হয়েছে তার একটি তালিকা নিচে দেওয়া হল।
প্রয়োজনীয় যন্ত্রপাতি পরিমাণ প্রডাক্ট লিংক
Arduino Uno R3 1 এখানে ক্লিক করুন
Liquid level sensor 1 এখানে ক্লিক করুন
Motor 1 এখানে ক্লিক করুন
L293D dual DC motor driver 1 এখানে ক্লিক করুন
DC socket breakout board 1 এখানে ক্লিক করুন
12V,2A Adapter 1 এখানে ক্লিক করুন
Male to male jumpers 4 এখানে ক্লিক করুন
Male to female jumpers 7 এখানে ক্লিক করুন
কার্যপ্রনালীঃ

প্রজেক্টটি করতে আমরা ব্যবহার করেছি ওয়েভশেয়ারের লিকুইড লেভেল সেন্সর। লিকুইড লেভেল সেন্সরটি পানিতে ডোবানো থাকবে। পানির গভীরতার সাথে সাথে সেন্সরের Aout পিনের অ্যানালগ আউটপুট পরিবর্তিত হয়। এই পিনটিকে আরডুইনোর কোনো একটি অ্যানালগ পিনে কানেক্ট করে পিনের ভ্যালু রিড করলেই তরলের গভীরতা বোঝা সম্ভব। আমাদের এক্সপেরিমেন্টে Aout এর মান সিরিয়াল মনিটরে দেখা যাবে। পানিপূর্ণ পাত্রটি যখন শূন্য বা প্রায় শূন্য, তখন মোটরটি ফুল স্পিডে ঘুরবে, যখন  মোটামুটি পরিপূর্ন, তখন মোটরটি আস্তে ঘুরবে, যখন প্রায় পরিপূর্ন হবার কাছাকাছি তখন থেমে যাবে। আমরা এখানে ব্যবহার করেছি ডিসি গিয়ার মোটর। মোটর ও মাইক্রোকন্ট্রোলারের মধ্যে ইন্টারফেস হিসেবে ব্যবহার করা হয়েছে L293D dual DC motor controller.

সার্কিটঃ আরডুইনো এবং সেন্সরের মধ্যে নিচের কানেকশনটি সম্পন্ন করি।
Arduino Uno R3 Liquid level sensor
5V VCC
GND GND
A3 Aout
আরডুইনো এবং L293D dual DC motor controller এর মধ্যে নিচের কানেকশনটি সম্পন্ন করি।
Arduino Uno R3 L293D dual DC motor controller
10 ENA
GND GND
8 In1
9 In2

মোটরের দুই মাথার সাথে দুটি Male to male jumper সল্ডার করি । মোটরকে মোটর কন্ট্রোলার মডিউলের MOTOR A চিহ্নিত কানেকটরে যুক্ত করি।

ডিসি সকেট ব্রেকআউট বোর্ড ও L293D dual DC motor controller এর মধ্যে নিচের কানেকশনটি সম্পন্ন করি।
DC socket breakout board L293D dual DC motor controller
VCC VCC
GND GND

ডিসি সকেটে  12V অ্যাডাপটারের জ্যাক প্রবেশ করাই  এবং একে ২২০ ভোল্ট এসি লাইনের সাথে যুক্ত করি। আমাদের সার্কিট তৈরী। এইখানে অ্যাডাপ্টারটি ব্যবহার করা হয়েছে শুধুমাত্র মোটরে পাওয়ার দেবার জন্যই। আপনারা চাইলে উপযুক্ত ভোল্টেজের ব্যাটারিও ব্যবহার করতে পারেন।

কোডঃ

আরডুইনো আইডিইতে নিচের কোডটি লিখে কম্পাইল করি এবং আপলোড করি। সিরিয়াল মনিটরে Aout পিনের অ্যানালগ ভ্যালু দেখা যাবে। সেন্সরটি একটি পানিপূর্ণ পাত্রে ডুবানো থাকবে। পাত্রে পানির উচ্চতার হ্রাস-বৃদ্ধির সাথে সাথে অ্যানালাগ ভ্যালু পরিবর্তিত হবে। আমাদের কোড অনুযায়ী   অ্যানালগ  ভ্যালু ২০০ এর কম হলে মোটর ফুল স্পিডে ঘুরবে, ২০০ থেকে ৫৯৯ এর ভেতর হলে একটু কম স্পিডে ঘুরবে, ৬০০ বা তার বেশি হলে মোটর থেমে যাবে। মনে রাখতে হবে, এই যে  মোটর চালু হওয়া, বন্ধ হওয়ার জন্য  অ্যানালগ ভ্যালুর বিভিন্ন মান আমরা ঠিক করে দিয়েছি এগুলো অ্যাপ্লিকেশনভেদে পরিবর্তন করতে হতে পারে। আপনি যে পাত্রে পানি রাখবেন ঐ পাত্র খালি থাকা অবস্থায় Aout এর মান কত, পূর্ণ থাকা অবস্থায় কত সেটা সিরিয়াল মনিটরে দেখেই আপনাকে এই ভ্যালুগুলো সেট করে নিতে হবে।

int water_ain = A3 ; //Attached to sensor's Aout pin 
int in1 = 8 ; //Attached to motor driver's IN1 pin 
int in2 = 9 ; //Attached to  motor driver's IN2 pin 
int enable = 10 ; //Attached to  motor driver's ENA pin 
int ad_value = 0 ;
void setup ( )
{
  Serial. begin ( 9600 ) ;
  pinMode ( in1,OUTPUT ) ;
  pinMode ( in2,OUTPUT ) ;
  pinMode ( enable,OUTPUT ) ;
  digitalWrite ( in1,HIGH ) ;
  digitalWrite ( in2,LOW ) ;
}
void loop ( )
{
  ad_value = analogRead ( water_ain ) ;
  if ( ad_value > 200 && ad_value <= 600 )
  {
    
    Serial. println ( "Medium water level" ) ;
    delay ( 2000 ) ;
    analogWrite ( enable, 50 ) ;
  }
  else if ( ad_value > 600 )
  {
    
    Serial. println ( "High water level" ) ;
    delay ( 2000 ) ;
    analogWrite ( enable, 0 ) ;
  }
  else
  {
    
    Serial. println ( "Low water level" ) ;
    delay ( 2000 ) ;
    analogWrite ( enable, 100 ) ;
  }
  delay ( 1000 ) ;
  Serial. println ( ad_value ) ;
  
}
]]>

A. R
A. R

5 Comments

  1. বাস্তবে করতে চাইলে কি কি পরিবর্তন করতে হবে ? অগ্রিম ধন্যবাদ

  2. স্যার আম‌ি বাস্তব‌ে আমাদ‌ের বাসার ওয়াটার পাম্প কন্ট্র‌োল করত‌ে চাই । তাহল‌ে আমাক‌ে মোট ক‌ি ক‌ি product teachshop থ‌েকে ক‌িনত‌ে হব‌ে । আর ক‌িভাব‌ে এই Project ট‌ি আম‌ি সম্পূর্ন করব‌ো ।একটু ব‌িস্তার‌িত জানাব‌েন প্ল‌িজ।

  3. ভাই আপনার দ‌েয়া https://techshopbd.com/product-categories/modules-98775/3121/automatic-water-pump-controller-techshop-bangladesh
    এই ল‌িংক থ‌েকে Product ট‌ি কিন‌ে connection দ‌িল‌েই ক‌ি এট‌ি আম‌ি বাস্তব‌ে ব্যাবহার করত‌ে পারব‌ো নাক‌ি Code ও পর‌িবর্তন করত‌ে হব‌ে।
    আর water pump চলাকাল‌িন buzzer শব্দ করব‌ে এমন ক‌িছু ক‌ি arduino ত‌ে add করা যাবে।

    • “Automatic Water Pump Controller” প্রোডাক্টটি ব্যবহারের জন্য কোন ধরণের প্রোগ্রামিং এর প্রয়োজন নেই । এটি নিয়ে সরাসরি সংযোগ দিলেই চলবে । তবে maximum durability এর জন্য এর সাথে একটি Magnetic Contactor ব্যবহারের জন্য আমরা পরামর্শ দিয়ে থাকি । এ বিষয়ে বিস্তারিত জানতে Product Page এর Documents ট্যাব-এর User Manual টি মনোযোগ দিয়ে পড়ুন । Manual এ চিত্রসহ সব সংযোগ সম্পর্কে বিস্তারিত ভাবে বলা হয়েছে ।
      এটি যেহেতু একটি finished product তাই এটিতে buzzer বা অন্যকিছু যোগ করার কোন সুযোগ নেই ।

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.