Αυτόματο κύκλωμα άρδευσης χρησιμοποιώντας το Arduino

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Σε αυτήν την ανάρτηση πρόκειται να κατασκευάσουμε ένα αυτοματοποιημένο σύστημα άρδευσης νερού για μικρό κήπο χρησιμοποιώντας αισθητήρα υγρασίας arduino και εδάφους.

Εισαγωγή

Το προτεινόμενο σύστημα μπορεί παρακολουθείτε το επίπεδο υγρασίας του εδάφους και όταν η υγρασία του εδάφους πέσει κάτω από την προκαθορισμένη τιμή, η αντλία 12V DC θα ενεργοποιηθεί για προκαθορισμένη χρονική περίοδο. Η κατάσταση του επιπέδου υγρασίας του εδάφους και άλλες λειτουργίες του συστήματος μπορούν να παρακολουθούνται μέσω οθόνης LCD 16 x 2 σε πραγματικό χρόνο.



Εκτιμάται ότι υπάρχουν 3 τρισεκατομμύρια δέντρα σε ολόκληρο τον κόσμο που είναι μεγαλύτερος από τον αριθμό εκκίνησης στον γαλαξία μας στο γαλαξία μας, ο οποίος εκτιμάται ότι είναι 100 δισεκατομμύρια. Όμως, εμείς οι άνθρωποι κόβουμε αμέτρητα δέντρα για να ικανοποιήσουμε τις βασικές μας ανάγκες σε πολυτελείς ανάγκες.

Το Mother Nature έχει σχεδιαστεί με ένα σύστημα ανατροφοδότησης, όταν ένα είδος προκαλεί τεράστιες διαταραχές, η φύση θα εξαφανίσει το είδος από την ύπαρξη.



Τα ανθρώπινα όντα ενοχλούσαν άγνωστα τη φύση για αιώνες, αλλά, ακόμη και μετά από μεγάλη ανάπτυξη στην επιστήμη και την τεχνολογία, το ποσοστό διαταραχής δεν έχει μειωθεί.

Η αλλαγή του κλίματος είναι ένα από τα παραδείγματα, όταν γίνεται αρκετά δραστική, το είδος μας δεν θα διαρκέσει πολύ.
Αυτό το έργο κάνει ένα μωρό μπροστά για να διατηρήσει τη φύση, μπορεί να ποτίσει τον υπέροχο μικρό κήπο σας χωρίς καμία ανθρώπινη αλληλεπίδραση. Τώρα ας δούμε τεχνικές λεπτομέρειες του έργου.

Αισθητήρας υγρασίας εδάφους:

Η καρδιά του έργου είναι αισθητήρας υγρασίας εδάφους που μπορεί να αισθανθεί την ποσότητα υγρασίας στο έδαφος. Ο αισθητήρας δίνει αναλογική τιμή και ένας μικροελεγκτής θα ερμηνεύει αυτές τις τιμές και θα εμφανίζει το περιεχόμενο υγρασίας.

Υπάρχουν δύο ηλεκτρόδια, τα οποία θα εισαχθούν στο έδαφος. Τα ηλεκτρόδια συνδέονται σε μια πλακέτα κυκλώματος που αποτελείται από συγκριτικό IC, LED, αντίσταση κοπής εισόδου και εξόδου.

Απεικόνιση του αισθητήρα υγρασίας εδάφους:

μονάδα αισθητήρα υγρασίας εδάφους

Διαθέτει 4 + 2 ακίδες, 2 ακίδες για σύνδεση ηλεκτροδίου και οι υπόλοιποι 4 ακίδες είναι Vcc, GND, ψηφιακή έξοδος και αναλογική έξοδος. Θα χρησιμοποιήσουμε μόνο τον αναλογικό πείρο εξόδου για την ανίχνευση της υγρασίας του εδάφους.
Δεδομένου ότι δεν χρησιμοποιούμε ψηφιακό πείρο εξόδου, δεν θα χρησιμοποιούμε ενσωματωμένη αντίσταση ψαλιδιού για τη βαθμονόμηση του αισθητήρα.

Τώρα, αυτό καταλήγει στον αισθητήρα υγρασίας του εδάφους.

Σχηματικό διάγραμμα:

Το κύκλωμα διατηρείται αρκετά απλό και φιλικό για αρχάριους. Το σχηματικό χωρίζεται σε δύο μέρη του ίδιου έργου για να μειώσει τη σύγχυση ενώ αντιγράφει το έργο.

Διάγραμμα καλωδίωσης LCD για αυτόματο σύστημα άρδευσης

Το παραπάνω σχηματικό είναι το LCD σε arduino καλωδίωση. Παρέχεται ποτενσιόμετρο 10Κ για τη ρύθμιση της αντίθεσης της οθόνης LCD.

Αυτόματο σύστημα άρδευσης με βάση μικροελεγκτή

Εδώ είναι το υπόλοιπο σχηματικό που αποτελείται από αισθητήρα υγρασίας εδάφους, αντλία 12V DC, ένα κουμπί βαθμονόμησης και τροφοδοτικό 12V (1-2 amp). Χρησιμοποιήστε ένα τροφοδοτικό τουλάχιστον μεγαλύτερο από 500mA της τρέχουσας βαθμολογίας της αντλίας DC 12V.

Το MOSFET IRF540N (ή οποιοδήποτε ισοδύναμο N-κανάλι) χρησιμοποιείται αντί των 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) Επίπεδο κατωφλίου κάτω από το οποίο το arduino ενεργοποιεί την αντλία. Μπορείτε να ορίσετε μόνο τις ποσοστιαίες τιμές 80, 70, 60, 50, 40, 30, 20.

int Time = 5 // Ρυθμίστε την ώρα σε λεπτά
int threshold = 30 // ορίστε το όριο σε ποσοστό 80, 70, 60, 50, 40, 30, 20 μόνο.

Αλλάξτε τις τιμές στο πρόγραμμα.

• Ανεβάστε τον κωδικό στο arduino και ενεργοποιήστε το κύκλωμα. Θα εμφανιστεί «ρίξτε νερό και πατήστε βαθμονόμηση». Τώρα πρέπει να ποτίζετε χειροκίνητα τον κήπο σας σε επαρκές επίπεδο.
• Αφού ποτίσετε τον κήπο, πατήστε το κουμπί βαθμονόμησης. Αυτό θα καθορίσει την αγωγή ηλεκτρικής ενέργειας σε έδαφος με πλήρη υγρασία και θα πυροβολήσει την τιμή αναφοράς.
• Τώρα το σύστημα είναι έτοιμο να εξυπηρετήσει τον μικρό κήπο σας. Προσπαθήστε να προσθέσετε ένα αντίγραφο ασφαλείας ισχύος για αυτό το έργο. Όταν η τροφοδοσία αποτύχει, η βαθμονομημένη τιμή αναφοράς θα διαγραφεί από τη μνήμη και θα πρέπει να βαθμονομήσετε ξανά το σύστημα.

Πρωτότυπο συγγραφέα:

Αυτόματη πρωτότυπη εικόνα άρδευσης με βάση το Arduino

Ένδειξη του επιπέδου υγρασίας του εδάφους:

Μόλις η αντλία είναι ΕΝΕΡΓΟΠΟΙΗΣΗ, θα εμφανιστεί ο χρόνος που απομένει για απενεργοποίηση (σε δευτερόλεπτα).




Προηγούμενο: 3 κυκλώματα προστασίας συναγερμού λέιζερ Smart Επόμενο: Επεξήγηση ενισχυτή OCL