Στο άρθρο αυτό θα σας δείξω πως να φτιάξετε και εσείς το δικό σας σύστημα αυτόματου ποτίσματος χρησιμοποιώντας το Arduino. Το σύστημα αυτό έχει σχεδιαστεί αποκλείστηκα για να ποτίζει το μικρό λουλούδι ή φυτό που έχουμε πάνω στο γραφείο μας ή μια μικρή γλαστρούλα. Σε καμία περίπτωση δε μπορεί να τοποθετηθεί σε κήπο καθώς ο αισθητήρας υγρασίας χώματος που θα χρησιμοποιήσουμε είναι αρκετά μικρός.
Η κατασκευή αυτή δεν θα σας πάρει πάνω απο 30 λεπτά για να την ολοκληρώσετε, μετά μπορείτε να το τοποθετήσετε στο λουλούδι-φυτό σας και αν το βάλετε και μέσα σε μια βάση-καφάσι όπως έκανα εγώ, το αποτέλεσμα είναι πολύ ικανοποιητικό.
Τα υλικά που θα χρειαστούμε
- Arduino board - όποιο θέλετε, εγω χρησιμοποίησα το Adafruit Trinkte Pro
- Soil hygrometer module - είναι ο αισθητήρας υγρασίας χώματος μαζί με μια μικρή πλακέτα
- Air pump motor (6V) - Είναι το μοτέρ μας που θα κάνει την δουλειά του ποτίσματος
- 2 κομμάτια εύκαμπτου σωλήνα
- NPN TR 2222A
- Diode (e.g. IN4001)
- Small/Tiny breadboard
- Some breadboard wires
Θα χρειαστείτε επίσης θερμοσιλικόνη για να κλείσετε αεροστεγώς τις τρύπες που θα ανοίξετε στο καπάκι του μπουκαλιού, θα καταλάβετε στην συνέχεια.
Το μπουκάλι και οι σωλήνες
Θα ξεκινήσουμε την κατασκευή μας με την κατασκευή του "συστήματος άρδευσης". Πάρτε ένα μπουκάλι, πλαστικό ή γυάλινο, του οποίου όμως το καπάκι να βιδώνει. Η λογική είναι απλή, το ένα σωληνάκι θα "φυσάει" αέρα μέσα στο μπουκάλι με την βοήθεια του ειδικού μοτέρ μας, και το άλλο θα "πετάει" το νερό στο φυτό μας. Το μυστικό όπως καταλάβατε είναι στην πίεση που ασκεί ο αέρας που εισέρχεται στο μπουκάλι πάνω στο νερό.
Ανοίξτε δυο τρύπες στο καπάκι έτσι ώστε να μπορούν σε αυτές να χωρέσουν τα σωληνάκια μας. Ξεκινήστε με το σωληνάκι που θα διοχετεύει τον αέρα στο μπουκάλι μας, όπως βλέπετε και στην παραπάνω εικόνα, θα πρέπει να τοποθετηθεί στο πάνω μέρος του μπουκαλιού. Η άλλη άκρη του θα πηγαίνει στο μοτέρ. Το δεύτερο σωληνάκι θα πρέπει να ακουμπάει το κάτω μέρος του μπουκαλιού, ενώ η άλλη άκρη του θα πρέπει να φτάνει στο φυτό μας. Τέλος κολλήστε τα με θερμή σιλικόνη έτσι ώστε όλη η κατασκευή να είναι αεροστεγώς κλειστή.
Ας το δοκιμάσουμε! Γεμίστε με νερό το μπουκάλι σας και δοκιμάστε να φυσήξετε με το στόμα μέσα απ΄το σωληνάκι που διοχετεύει τον αέρα στο μπουκάλι. Θα δείτε πως το νερό τρέχει απ' το άλλο σωληνάκι. Αν όχι σημαίνει πως δεν είναι αεροστεγώς κλειστό, ίσως να πρέπει να ρίξετε λίγη παραπάνω θερμή σιλικόνη. Να θυμάστε πως εδώ το κλειδί είναι η πίεση.
Το κύκλωμα
Το κύκλωμα
Ήρθε η ώρα να φτιάξουμε το κύκλωμα μας με το Arduino. Η παραπάνω εικόνα δείχνει όλες τις συνδέσεις, είναι αρκετά απλές.
Στο δικό μου κύκλωμα χρησιμοποίησα μερικά συρματάκια αντί για καλώδια για να το κάνω λίγο πιο όμορφο.
Στο δικό μου κύκλωμα χρησιμοποίησα μερικά συρματάκια αντί για καλώδια για να το κάνω λίγο πιο όμορφο.
Μόλις το υλοποιήσετε πάνω στο breadboard μπορείτε να προχωρήσετε στο επόμενο βήμα
Ο κώδικας
Ο κώδικας
Εδώ θα βρείτε τον κώδικα με την χρήση του Codebender!
Για όσους δεν ξέρουν τι είναι το Codebender, πρόκειται για το online Arduino IDE το οποίο σας δίνει την δυνατότητα να προγραμματίσετε το Arduino σας μέσα απ' τον browser σας! Πίο εύκολο δεν γίνεται! Δοκιμάστε το πατώντας το πράσινο κουμπί "Run on Arduino"! Μπορείτε επίσης να κάνετε αλλαγές πατώντας το κουμπί "Edit".
Ο κώδικας περιέχει όλα τα σχόλια που χρειάζονται για την κατανόηση του.
/* Arduino Automatic Watering System for your desk flower
Dev: Michalis Vasilakis // Date: 16/04/2016 // www.ardumotive.com */
//Constants
const int airPump = 9; //Air pump motor with npn transistor at pin 9 of Arduino
const int hygrometer = A0; //Hygrometer sensor analog pin output at pin A0 of Arduino
//Variables
int value;
void setup()
{
pinMode(airPump,OUTPUT);
}
void loop()
{
// When the plant is watered well the sensor will read a value 380~400, I will keep the 400
// value but if you want you can change it below.
value = analogRead(hygrometer); //Read analog value
value = constrain(value,400,1023); //Keep the ranges!
value = map(value,400,1023,100,0); //Map value : 400 will be 100 and 1023 will be 0
//Start the watering if humidity decrease down of 20%
if (value < 20){
digitalWrite(airPump,HIGH);
}
else {
digitalWrite(airPump,LOW);
}
delay(150); //small delay
}
Δεν υπάρχουν σχόλια:
Δεν επιτρέπονται νέα σχόλια.