আরডুইনো ব্যবহার করে স্বয়ংক্রিয় সেচ সার্কিট

আরডুইনো ব্যবহার করে স্বয়ংক্রিয় সেচ সার্কিট

এই পোস্টে আমরা ছোট বাগানের জন্য আরডুইনো এবং মাটির আর্দ্রতা সেন্সর ব্যবহার করে একটি স্বয়ংক্রিয় জল সেচ ব্যবস্থা তৈরি করতে যাচ্ছি।



ভূমিকা

প্রস্তাবিত সিস্টেম পারে মাটির আর্দ্রতা স্তর নিরীক্ষণ এবং যখন মাটির আর্দ্রতা পূর্ব নির্ধারিত মানের নিচে চলে যায়, 12V ডিসি পাম্প সময় নির্ধারিত সময়ের জন্য ট্রিগার করা হবে। মাটির আর্দ্রতা স্তরের অবস্থা এবং সিস্টেমের অন্যান্য ক্রিয়াকলাপগুলি বাস্তব সময়ে 16 x 2 এলসিডি প্রদর্শনের মাধ্যমে পর্যবেক্ষণ করা যেতে পারে।

এটি অনুমান করা হয় যে সারা পৃথিবীতে 3 ট্রিলিয়ন গাছ রয়েছে যা আমাদের বাড়ির মিল্কিওয়ে গ্যালাক্সির শুরুর সংখ্যার চেয়ে বেশি যা অনুমান করা হয় 100 বিলিয়ন। কিন্তু, আমরা মনুষ্যবৃন্দ বিলাসবহুল চাহিদাগুলির জন্য আমাদের মৌলিক চাহিদা পূরণের জন্য অগণিত গাছ কাটা।





মাদার প্রকৃতি একটি প্রতিক্রিয়া সিস্টেমের সাথে ডিজাইন করা হয়েছে, যখন কোনও প্রজাতি বিশাল অস্থিরতার পরিচয় দেয়, প্রকৃতি অস্তিত্ব থেকে প্রজাতি মুছে দেবে।

মানুষ বহু শতাব্দী ধরে অজান্তে প্রকৃতিকে বিরক্ত করছিল তবে বিজ্ঞান ও প্রযুক্তিতে দুর্দান্ত বিকাশের পরেও ব্যাঘাতের হার কমেনি।



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

মাটি আর্দ্রতা সেন্সর:

প্রকল্পের হৃদয় মাটির আর্দ্রতা সেন্সর যা মাটিতে আর্দ্রতা পরিমাণের পরিমাণ বুঝতে পারে। সেন্সর অ্যানালগ মান দেয় এবং একটি মাইক্রোকন্ট্রোলার সেই মানগুলি ব্যাখ্যা করে এবং আর্দ্রতার পরিমাণ প্রদর্শন করবে।

দুটি ইলেক্ট্রোড রয়েছে, যা মাটিতে .োকানো হবে। বৈদ্যুতিনগুলি তুলনামূলক আইসি, এলইডি, ট্রিমার রোধকারী ইনপুট এবং আউটপুট পিন সমন্বিত একটি সার্কিট বোর্ডের সাথে সংযুক্ত থাকে are

মাটির আর্দ্রতা সেন্সরের চিত্র:

মাটি আর্দ্রতা সেন্সর মডিউল

এটিতে 4 + 2 পিন, বৈদ্যুতিন সংযোগের জন্য 2 পিন রয়েছে এবং 4 টি পিনের মধ্যে রয়েছে ভিসি, জিএনডি, ডিজিটাল আউটপুট এবং অ্যানালগ আউটপুট। আমরা মাটির আর্দ্রতা সংবেদন করার জন্য কেবল অ্যানালগ আউটপুট পিন ব্যবহার করতে যাচ্ছি।
যেহেতু আমরা ডিজিটাল আউটপুট পিনটি ব্যবহার করছি না, তাই সেন্সরটি ক্যালিব্রেট করতে আমরা বোর্ডে ট্রিমার প্রতিরোধক ব্যবহার করব না।

এখন, এটি মাটির আর্দ্রতা সেন্সরটিকে শেষ করে।

পরিকল্পিত ডায়াগ্রাম:

সার্কিটটি মোটামুটি সহজ এবং প্রারম্ভিক বন্ধুত্বপূর্ণ রাখা হয়েছে। প্রকল্পটি নকল করার সময় বিভ্রান্তি হ্রাস করার জন্য পরিকল্পনাটি একই প্রকল্পের দুটি অংশে বিভক্ত।

স্বয়ংক্রিয় সেচ সিস্টেমের জন্য এলসিডি তারের ডায়াগ্রাম

উপরোক্ত পরিকল্পনাটি হ'ল আরডুইনো থেকে এলসিডি তারের এলসিডি ডিসপ্লেটির বিপরীতে সামঞ্জস্য করার জন্য একটি 10 ​​কে পোটেনিওমিটার সরবরাহ করা হয়।

মাইক্রোকন্ট্রোলার ভিত্তিক স্বয়ংক্রিয় সেচ ব্যবস্থা

এখানে মাটির আর্দ্রতা সেন্সর, 12 ভিসি ডিসি পাম্প, একটি ক্যালিব্রেট পুশ বোতাম এবং 12 ভি (1 - 2 অ্যাম্প) বিদ্যুৎ সরবরাহ সমন্বিত বাকী স্কিম্যাটিক রয়েছে। দয়া করে 12V ডিসি পাম্পের বর্তমান রেটিংয়ের কমপক্ষে 500mA এর চেয়ে বেশি পাওয়ার সাপ্লাই ব্যবহার করুন।

সিস্টেমের সামগ্রিক শক্তি দক্ষতার উন্নতি করতে বিজেটিগুলির পরিবর্তে মোসফেট আইআরএফ ৫৪০ এন (বা কোনও সমমানের এন-চ্যানেল) ব্যবহৃত হয় is

পাম্প আপনাকে ছোট বাগানে জল দেবে, আপনার সর্বদা পর্যাপ্ত পরিমাণে জল পাওয়া যায় তা নিশ্চিত করুন।

প্রোগ্রাম কোড:

//-------------Program Developed By R.Girish-------------//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int Time = 5 // Set time in minutes
int threshold = 30 // set threshold in percentage 80, 70, 60, 50, 40, 30, 20 only.
int i
int x
int y
int z
int start
int calibrateValue
const int calibrateBTN = A1
const int input = A0
const int motor = 7
boolean calibration = false
boolean rescue = false
void setup()
{
Serial.begin(9600)
pinMode(input, INPUT)
pinMode(calibrateBTN, INPUT)
pinMode(motor, OUTPUT)
digitalWrite(calibrateBTN, HIGH)
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('Pour water and')
lcd.setCursor(0,1)
lcd.print('press calibrate')
while(!calibration)
{
if(digitalRead(calibrateBTN)==LOW)
{
calibrateValue = analogRead(input)
x = 1023 - calibrateValue
x = x/10
Serial.print('Difference = ')
Serial.println(x)
Serial.print('Calibration Value = ')
Serial.println(calibrateValue)
delay(500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Calibration done')
lcd.setCursor(0,1)
lcd.print('successfully !!!')
calibration = true
delay(2000)
}
}
}
void loop()
{
if(analogRead(input)<= calibrateValue)
{
delay(500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 100%')
}
if(analogRead(input) > calibrateValue && analogRead(input) <= calibrateValue+x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 90 to 99%')
}
if(analogRead(input) > calibrateValue+x && analogRead(input) <= calibrateValue+2*x )
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 80 to 90%')
start = 80
}
if(analogRead(input) > calibrateValue+2*x && analogRead(input) <= calibrateValue+3*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 70 to 80%')
start = 70
}
if(analogRead(input) > calibrateValue+3*x && analogRead(input) <= calibrateValue+4*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 60 to 70%')
start = 60
}
if(analogRead(input) > calibrateValue+4*x && analogRead(input) <= calibrateValue+5*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 50 to 60%')
start = 50
}
if(analogRead(input) > calibrateValue+5*x && analogRead(input) <= calibrateValue+6*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 40 to 50%')
start = 40
}
if(analogRead(input) > calibrateValue+6*x && analogRead(input) <= calibrateValue+7*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 30 to 40%')
start = 30
}
if(analogRead(input) > calibrateValue+7*x && analogRead(input) <= calibrateValue+8*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 20 to 30%')
start = 20
}
if(analogRead(input) > calibrateValue+8*x && analogRead(input) <= calibrateValue+9*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: 10 to 20%')
start = 10
}
if(analogRead(input) > calibrateValue+9*x && analogRead(input) <= calibrateValue+10*x)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Soil Moisture')
lcd.setCursor(0,1)
lcd.print('Level: <10%')
rescue = true
}
if(start == threshold || rescue)
{
y = Time
digitalWrite(motor, HIGH)
Time = Time*60
z = Time
for(i=0 i

এই স্বয়ংক্রিয় সেচ ব্যবস্থা কীভাবে ক্যালিব্রেট করা যায়:

Completed সম্পূর্ণ হার্ডওয়্যার সহ, কোথাও জলের প্রবাহের পথে মাটিতে ইলেক্ট্রোড .োকান।
• এখন প্রোগ্রামে দুটি মান পরিবর্তন করুন 1) সময়ের পরিমাণ সমস্ত গাছগুলিকে (মিনিটের মধ্যে) জলে নেবে। 2) প্রান্তিক স্তর যার নীচে আরডুইনো পাম্পটিকে ট্রিগার করে। আপনি শুধুমাত্র 80, 70, 60, 50, 40, 30, 20 শতাংশ শতাংশ নির্ধারণ করতে পারেন।

int সময় = 5 // মিনিটের মধ্যে সময় নির্ধারণ করুন
int থ্রেশহোল্ড = 30 // মাত্র 80, 70, 60, 50, 40, 30, 20 শতাংশে থ্রেশহোল্ড সেট করুন।

প্রোগ্রামের মানগুলি পরিবর্তন করুন।

Ar কোডটি আরডুইনোতে আপলোড করুন এবং সার্কিটকে শক্তি দিন। এটি 'জল andালা এবং ক্যালিব্রেট টিপুন' প্রদর্শিত হবে। এখন আপনাকে আপনার বাগানে পর্যাপ্ত পর্যায়ে ম্যানুয়ালি জল দিতে হবে।
Garden বাগানে জল দেওয়ার পরে ক্যালিব্রেট বোতামটি টিপুন। এটি সম্পূর্ণ আর্দ্রতা মাটিতে বিদ্যুতের চালন নির্ধারণ করবে এবং রেফারেন্স মানটি স্ন্যাপ করবে।
• এখন সিস্টেমটি আপনার ছোট বাগানের পরিবেশন করতে প্রস্তুত। এই প্রকল্পের জন্য দয়া করে একটি পাওয়ার ব্যাকআপ যুক্ত করার চেষ্টা করুন। যখন শক্তি ব্যর্থ হয় তখন রেফারেন্সের ক্যালিব্রেটেড মানটি মেমরি থেকে মুছে ফেলা হবে এবং আপনাকে আবার সিস্টেমটি ক্রমাঙ্কণ করতে হবে।

লেখকের প্রোটোটাইপ:

আরডুইনো ভিত্তিক স্বয়ংক্রিয় সেচ প্রোটোটাইপ চিত্র

মাটির আর্দ্রতা স্তরের ইঙ্গিত:

একবার পাম্পটি চালু হয়ে গেলে, এটি বন্ধ হওয়ার জন্য অবশিষ্ট সময় প্রদর্শন করবে (সেকেন্ডে)।




পূর্ববর্তী: 3 স্মার্ট লেজার অ্যালার্ম সুরক্ষা সার্কিট পরবর্তী: ওসিএল পরিবর্ধক ব্যাখ্যা করা হয়েছে