Arduino ఉపయోగించి ఆటోమేటిక్ ఇరిగేషన్ సర్క్యూట్

సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి





ఈ పోస్ట్‌లో మేము ఆర్డునో మరియు నేల తేమ సెన్సార్ ఉపయోగించి చిన్న తోట కోసం ఆటోమేటెడ్ వాటర్ ఇరిగేషన్ సిస్టమ్‌ను నిర్మించబోతున్నాం.

పరిచయం

ప్రతిపాదిత వ్యవస్థ చేయవచ్చు నేల తేమ స్థాయిని పర్యవేక్షించండి మరియు నేల తేమ ముందుగానే నిర్ణయించిన విలువ కంటే తక్కువగా ఉన్నప్పుడు, 12V DC పంప్ ముందుగా నిర్ణయించిన కాలానికి ప్రేరేపించబడుతుంది. నేల తేమ స్థాయి మరియు వ్యవస్థ యొక్క ఇతర విధులను 16 x 2 ఎల్‌సిడి డిస్‌ప్లే ద్వారా నిజ సమయంలో పర్యవేక్షించవచ్చు.



ప్రపంచవ్యాప్తంగా 3 ట్రిలియన్ చెట్లు ఉన్నాయని అంచనా, ఇది మన ఇంటి పాలపుంత గెలాక్సీలో ప్రారంభ సంఖ్య కంటే 100 బిలియన్లు. కానీ, మనం మానవులు విలాసవంతమైన అవసరాలకు మన ప్రాథమిక అవసరాలను తీర్చడానికి లెక్కలేనన్ని చెట్లను నరికివేస్తాము.

ప్రకృతి ప్రకృతి ఒక అభిప్రాయ వ్యవస్థతో రూపొందించబడింది, ఒక జాతి భారీ ఆటంకాలను ప్రవేశపెట్టినప్పుడు, ప్రకృతి జాతులను ఉనికి నుండి తుడిచివేస్తుంది.



మానవులు శతాబ్దాలుగా తెలియకుండానే ప్రకృతిని కలవరపెడుతున్నారు, అయితే, సైన్స్ అండ్ టెక్నాలజీలో గొప్ప అభివృద్ధి తరువాత కూడా భంగం రేటు తగ్గలేదు.

వాతావరణ మార్పు ఒక ఉదాహరణ, ఇది తగినంతగా ఉన్నప్పుడు మా జాతులు ఎక్కువ కాలం ఉండవు.
ఈ ప్రాజెక్ట్ ప్రకృతిని కాపాడటానికి ఒక బిడ్డ అడుగు ముందుకు వేస్తుంది, ఇది మీ మనోహరమైన చిన్న తోటను ఎటువంటి మానవ సంకర్షణ లేకుండా సేద్యం చేస్తుంది. ఇప్పుడు ప్రాజెక్ట్ యొక్క సాంకేతిక వివరాలను తెలుసుకుందాం.

నేల తేమ సెన్సార్:

ప్రాజెక్ట్ యొక్క గుండె నేల తేమ సెన్సార్ ఇది మట్టిలోని తేమ మొత్తాన్ని గ్రహించగలదు. సెన్సార్ అనలాగ్ విలువను ఇస్తుంది మరియు మైక్రోకంట్రోలర్ ఆ విలువలను అర్థం చేసుకుంటుంది మరియు తేమను ప్రదర్శిస్తుంది.

రెండు ఎలక్ట్రోడ్లు ఉన్నాయి, ఇవి మట్టిలో చేర్చబడతాయి. ఎలక్ట్రోడ్లు కంపారిటర్ ఐసి, ఎల్ఇడి, ట్రిమ్మర్ రెసిస్టర్ ఇన్పుట్ మరియు అవుట్పుట్ పిన్నులతో కూడిన సర్క్యూట్ బోర్డ్కు అనుసంధానించబడి ఉన్నాయి.

నేల తేమ సెన్సార్ యొక్క ఉదాహరణ:

నేల తేమ సెన్సార్ మాడ్యూల్

ఇది 4 + 2 పిన్స్, ఎలక్ట్రోడ్ కనెక్షన్ కోసం 2 పిన్స్ మరియు మిగిలిన 4 పిన్స్ Vcc, GND, డిజిటల్ అవుట్పుట్ మరియు అనలాగ్ అవుట్పుట్. నేల తేమను గ్రహించడానికి మేము అనలాగ్ అవుట్పుట్ పిన్ను మాత్రమే ఉపయోగించబోతున్నాము.
మేము డిజిటల్ అవుట్పుట్ పిన్ను ఉపయోగించడం లేదు కాబట్టి, సెన్సార్‌ను క్రమాంకనం చేయడానికి మేము ఆన్-బోర్డ్ ట్రిమ్మర్ రెసిస్టర్‌ను ఉపయోగించము.

ఇప్పుడు, అది నేల తేమ సెన్సార్‌ను ముగించింది.

బొమ్మ నమునా:

సర్క్యూట్ చాలా సరళంగా మరియు బిగినర్స్ ఫ్రెండ్లీగా ఉంచబడుతుంది. ప్రాజెక్ట్ను నకిలీ చేసేటప్పుడు గందరగోళాన్ని తగ్గించడానికి స్కీమాటిక్ ఒకే ప్రాజెక్ట్ యొక్క రెండు భాగాలుగా విభజించబడింది.

ఆటోమేటిక్ ఇరిగేషన్ సిస్టమ్ కోసం ఎల్‌సిడి వైరింగ్ రేఖాచిత్రం

పై స్కీమాటిక్ ఎల్‌సిడి టు ఆర్డునో వైరింగ్. ఎల్‌సిడి డిస్‌ప్లేకు విరుద్ధంగా సర్దుబాటు చేయడానికి 10 కె పొటెన్షియోమీటర్ అందించబడుతుంది.

మైక్రోకంట్రోలర్ ఆధారిత ఆటోమేటిక్ ఇరిగేషన్ సిస్టమ్

నేల తేమ సెన్సార్, 12 వి డిసి పంప్, కాలిబ్రేట్ పుష్ బటన్ మరియు 12 వి (1 - 2 ఆంపి) విద్యుత్ సరఫరాతో కూడిన మిగిలిన స్కీమాటిక్ ఇక్కడ ఉంది. దయచేసి 12V DC పంప్ యొక్క ప్రస్తుత రేటింగ్‌లో కనీసం 500mA కన్నా ఎక్కువ విద్యుత్ సరఫరాను ఉపయోగించండి.

వ్యవస్థ యొక్క మొత్తం శక్తి సామర్థ్యాన్ని మెరుగుపరచడానికి BJT లకు బదులుగా MOSFET IRF540N (లేదా ఏదైనా సమానమైన N- ఛానల్) ఉపయోగించబడుతుంది.

పంప్ మీకు చిన్న తోటకి నీరు ఇస్తుంది, మీకు ఎల్లప్పుడూ తగినంత నీరు అందుబాటులో ఉందని నిర్ధారించుకోండి.

ప్రోగ్రామ్ కోడ్:

//-------------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

ఈ ఆటోమేటిక్ ఇరిగేషన్ వ్యవస్థను ఎలా క్రమాంకనం చేయాలి:

Hardware పూర్తయిన హార్డ్‌వేర్‌తో, నీటి ప్రవాహ మార్గంలో ఎక్కడో ఎలక్ట్రోడ్‌ను మట్టిపై చొప్పించండి.
• ఇప్పుడు ప్రోగ్రామ్‌లోని రెండు విలువలను మార్చండి 1) అన్ని మొక్కలకు (నిమిషాల్లో) నీరు పెట్టడానికి సమయం పడుతుంది. 2) ఆర్డునో పంపును ప్రేరేపించే థ్రెషోల్డ్ స్థాయి. మీరు శాతం విలువలను 80, 70, 60, 50, 40, 30, 20 మాత్రమే సెట్ చేయవచ్చు.

int సమయం = 5 // నిమిషాల్లో సమయాన్ని సెట్ చేయండి
int ప్రవేశ = 30 // సెట్ ప్రవేశ 80, 70, 60, 50, 40, 30, 20 మాత్రమే.

ప్రోగ్రామ్‌లోని విలువలను మార్చండి.

Ar కోడ్‌ను ఆర్డునోకు అప్‌లోడ్ చేయండి మరియు సర్క్యూట్‌కు శక్తినివ్వండి. ఇది “నీరు పోసి కాలిబ్రేట్ నొక్కండి” ప్రదర్శిస్తుంది. ఇప్పుడు మీరు మీ తోటను తగినంత స్థాయికి మానవీయంగా నీరు పెట్టాలి.
The తోటకి నీళ్ళు పోసిన తరువాత, క్రమాంకనం బటన్‌ను నొక్కండి. ఇది పూర్తిగా తేమతో కూడిన మట్టిలో విద్యుత్ ప్రసరణను నిర్ణయిస్తుంది మరియు సూచన విలువను స్నాప్ షాట్ చేస్తుంది.
• ఇప్పుడు మీ చిన్న తోటకు సేవ చేయడానికి సిస్టమ్ సిద్ధంగా ఉంది. దయచేసి ఈ ప్రాజెక్ట్ కోసం పవర్ బ్యాకప్‌ను జోడించడానికి ప్రయత్నించండి. శక్తి విఫలమైనప్పుడు రిఫరెన్స్ క్రమాంకనం చేసిన విలువ మెమరీ నుండి తుడిచివేయబడుతుంది మరియు మీరు సిస్టమ్‌ను మళ్లీ క్రమాంకనం చేయాలి.

రచయిత యొక్క నమూనా:

ఆర్డునో ఆధారిత ఆటోమేటిక్ ఇరిగేషన్ ప్రోటోటైప్ ఇమేజ్

నేల తేమ స్థాయి యొక్క సూచన:

పంప్ ఆన్ చేసిన తర్వాత, అది ఆపివేయడానికి మిగిలిన సమయాన్ని ప్రదర్శిస్తుంది (సెకన్లలో).




మునుపటి: 3 స్మార్ట్ లేజర్ అలారం ప్రొటెక్షన్ సర్క్యూట్లు తర్వాత: OCL యాంప్లిఫైయర్ వివరించబడింది