Arduino का उपयोग करके स्वचालित सिंचाई सर्किट

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





इस पोस्ट में हम Arduino और मिट्टी की नमी सेंसर का उपयोग करके छोटे बगीचे के लिए एक स्वचालित जल सिंचाई प्रणाली का निर्माण करने जा रहे हैं।

परिचय

प्रस्तावित प्रणाली कर सकते हैं मिट्टी की नमी के स्तर की निगरानी करें और जब मिट्टी की नमी पूर्व निर्धारित मूल्य से कम हो जाती है, तो 12 वी डीसी पंप को पूर्व निर्धारित समय के लिए चालू किया जाएगा। मिट्टी की नमी के स्तर और सिस्टम के अन्य कार्यों की स्थिति की वास्तविक समय में 16 x 2 एलसीडी डिस्प्ले के माध्यम से निगरानी की जा सकती है।



यह अनुमान है कि दुनिया भर में 3 ट्रिलियन पेड़ हैं जो हमारे घर मिल्की वे आकाशगंगा में शुरू होने की संख्या से अधिक है जो 100 अरब होने का अनुमान है। लेकिन, हम इंसान अपनी बुनियादी जरूरतों को विलासिता की जरूरतों को पूरा करने के लिए अनगिनत संख्या में पेड़ काटते हैं।

मदर नेचर को एक फीडबैक सिस्टम के साथ डिजाइन किया गया है, जब एक प्रजाति भारी गड़बड़ी का परिचय देती है, तो प्रकृति प्रजातियों को अस्तित्व से मिटा देगी।



मानव सदियों से अनजाने में प्रकृति को परेशान कर रहा था, लेकिन विज्ञान और प्रौद्योगिकी में महान विकास के बाद भी अशांति की दर कम नहीं हुई है।

जलवायु परिवर्तन इसका एक उदाहरण है, जब यह काफी हद तक कठोर हो जाता है जब हमारी प्रजाति लंबे समय तक नहीं चलती है।
यह परियोजना प्रकृति को संरक्षित करने के लिए एक बच्चे को आगे ले जाती है, यह आपके प्यारे छोटे बगीचे को बिना किसी मानव संपर्क के सिंचित कर सकती है। अब परियोजना के तकनीकी विवरणों पर ध्यान दें।

मिट्टी नमी सेंसर:

प्रोजेक्ट का दिल है मिट्टी की नमी सेंसर जो मिट्टी में नमी की मात्रा को महसूस कर सकता है। सेंसर एनालॉग मूल्य देता है और एक माइक्रोकंट्रोलर उन मूल्यों की व्याख्या करेगा और नमी सामग्री प्रदर्शित करेगा।

दो इलेक्ट्रोड हैं, जिन्हें मिट्टी में डाला जाएगा। इलेक्ट्रोड एक सर्किट बोर्ड से जुड़े होते हैं जिसमें तुलनित्र आईसी, एलईडी, ट्रिमर प्रतिरोधक इनपुट और आउटपुट पिन होते हैं।

मृदा नमी सेंसर का चित्रण:

मिट्टी नमी सेंसर मॉड्यूल

इसमें 4 + 2 पिन, इलेक्ट्रोड कनेक्शन के लिए 2 पिन और बाकी 4 पिन Vcc, GND, डिजिटल आउटपुट और एनालॉग आउटपुट हैं। हम मिट्टी की नमी को सेंस करने के लिए केवल एनालॉग आउटपुट पिन का उपयोग करने जा रहे हैं।
चूंकि हम डिजिटल आउटपुट पिन का उपयोग नहीं कर रहे हैं, हम सेंसर को कैलिब्रेट करने के लिए ऑन-बोर्ड ट्रिमर रेसिस्टर का उपयोग नहीं करेंगे।

अब, यह मिट्टी की नमी सेंसर का निष्कर्ष निकालती है।

योजनाबद्ध आरेख:

सर्किट को काफी सरल और शुरुआती अनुकूल रखा गया है। परियोजना को दोहराते समय भ्रम को कम करने के लिए योजनाबद्ध को एक ही परियोजना के दो भागों में विभाजित किया गया है।

स्वचालित सिंचाई प्रणाली के लिए एलसीडी वायरिंग आरेख

उपरोक्त योजनाबद्ध है Arduino के लिए एलसीडी वायरिंग। एलसीडी डिस्प्ले के विपरीत को समायोजित करने के लिए 10K पोटेंशियोमीटर प्रदान किया गया है।

माइक्रोकंट्रोलर आधारित स्वचालित सिंचाई प्रणाली

यहाँ मिट्टी नमी सेंसर, 12V डीसी पंप, एक अंशांकन पुश बटन और 12V (1 - 2 amp) बिजली की आपूर्ति से मिलकर योजनाबद्ध बाकी है। कृपया 12V DC पंप की वर्तमान रेटिंग के कम से कम 500mA से अधिक बिजली की आपूर्ति का उपयोग करें।

MOSFET IRF540N (या किसी भी समतुल्य एन-चैनल) का उपयोग BJTs के बजाय सिस्टम की समग्र बिजली दक्षता में सुधार करने के लिए किया जाता है।

पंप आपको छोटे बगीचे में पानी देगा, सुनिश्चित करें कि आपके पास हमेशा पर्याप्त मात्रा में पानी उपलब्ध है।

कार्यक्रम कोड:

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

इस स्वचालित सिंचाई प्रणाली को कैसे जांचना है:

• पूर्ण हार्डवेयर के साथ, मिट्टी पर इलेक्ट्रोड डालें, कहीं पानी के प्रवाह के रास्ते पर।
• अब कार्यक्रम में दो मानों को बदलें 1) सभी पौधों को पानी में समय लगेगा (मिनटों में)। 2) थ्रेसहोल्ड स्तर जिसके नीचे आर्डिनो पंप को चलाता है। आप केवल 80, 70, 60, 50, 40, 30, 20 प्रतिशत मान सेट कर सकते हैं।

int Time = 5 // मिनटों में समय निर्धारित करें
int थ्रेशोल्ड = 30 // सेट थ्रेसहोल्ड 80, 70, 60, 50, 40, 30, 20 केवल में।

कार्यक्रम में मूल्यों को बदलें।

• कोड को Arduino पर अपलोड करें और सर्किट को पावर करें। यह 'पानी डालो और प्रेस अंशांकन' प्रदर्शित करेगा। अब आपको अपने बगीचे को मैन्युअल रूप से पर्याप्त स्तर तक पानी देना होगा।
• बगीचे को पानी देने के बाद, कैलिब्रेट बटन दबाएं। यह पूरी तरह से नमी मिट्टी में बिजली के प्रवाहकत्त्व का निर्धारण करेगा और संदर्भ मूल्य को शूट करेगा।
• अब सिस्टम आपके छोटे बगीचे की सेवा के लिए तैयार है। कृपया इस प्रोजेक्ट के लिए पावर बैकअप जोड़ने का प्रयास करें। जब शक्ति विफल हो जाती है तो संदर्भ को कैलिब्रेटेड मान मेमोरी से मिटा दिया जाएगा और आपको सिस्टम को फिर से कैलिब्रेट करना होगा।

लेखक का प्रोटोटाइप:

Arduino आधारित स्वचालित सिंचाई प्रोटोटाइप छवि

मिट्टी की नमी के स्तर का संकेत:

एक बार पंप चालू हो जाने के बाद, यह बंद होने का समय (सेकंड में) प्रदर्शित करेगा।




पिछला: 3 स्मार्ट लेजर अलार्म सुरक्षा सर्किट अगला: OCL एम्पलीफायर समझाया