Benötigten Teile:
-Boden-feuchte-Sensor (Dealextreme $3)
-Arduino jeglicher Art (Dealextreme $10)
-Mini Servo jeglicher Art (9gm ~ $5)
-Aquarium-Ventil
-10K-potentiometer
-Wasserleitung (dünne Aquarium Typ)
Zuerst eintauchen die Gabel des Feuchtesensors Boden vollständig... Sensor A0 und 10K Pot A1 Pins des Arduino anschließen. verbinden Sie Servo mit D9 Pin. Schalten Sie das System mit was du willst... (Wand-Adapter oder Batterien)... Laden Sie die Skizze auf Arduino, stellen Sie den Topf und los gehts... können Sie einstellen, das Niveau der Bewässerung nötig jederzeit durch das Potentiometer... das ist alles... Kann man das System in einer wasserdichten Kleinprojekte Box jeglicher Art... können Sie machen ein batteriebetriebene Handheld-System und fügen a16x2 LCD-Anzeige, um Feuchtigkeit zu zeigen und Bewässerung Status... bitte nicht kontaktieren Sie mich für jede Hilfe und vergessen Sie nicht, für mich zu stimmen, wenn es Ihnen gefällt... :) Meine anderen Projekte sind auf meiner Website... http://borsaci06.com
Hier ist das Programm kopieren und fügen Sie ihn in Arduino IDE und hochladen:
/ * Dincer Hepguler 2013
* http://borsaci06.com
* Lesen Sie analoge Werte aus Feuchtesensor über den seriellen port
* Befehl ein Servo gesteuerten Bewässerungsanlage
*
*/
const Int NumReadings = 20; Anzahl der Messungen für die Glättung
Int Lesungen [NumReadings]; die Lesungen aus den analogen Eingang
Int Index = 0; der Index des aktuellen Messwert
Int Summe = 0; die laufende Summe
Int Val = 0; die durchschnittliche
#include
Servo Myservo; Erstellen Sie Servo-Objekt um ein Servo Steuern
Int SensorPin = A0; Feuchtesensor bei A0 (analog0)
Int pos = 90; Variable Speicher Servoposition und Set Servo zentrieren
Int ThresholdPin = A1; Schwelle Topf bei A1
Int Val = analogRead(sensorPin);
Int-Schwelle = analogRead(thresholdPin);
void setup() {}
Serial.Begin(9600);
myservo.Attach(9); legt das Servo auf Pin 9
alle Werte auf 0 zu initialisieren:
für (Int ThisReading = 0; ThisReading < NumReadings; ThisReading ++)
Messwerte [ThisReading] = 0;
}
void loop() {}
ziehen Sie die letzte Lesung:
Total = Gesamt - Messwerte [Index];
vom Sensor zu lesen:
Messwerte [Index] = analogRead(sensorPin);
die Summe die Lesung hinzufügen:
Summe = Summe + Messwerte [Index];
gelangen Sie zur nächsten Position im Array:
Index = Index + 1;
Wenn wir am Ende des Arrays sind...
Wenn (Index > = NumReadings)
... .wrap um an den Anfang:
Index = 0;
Int-Schwelle = analogRead(thresholdPin);
Val = Total / NumReadings; berechnen Sie den Mittelwert
Wenn (Val > Schwellenwert) {pos = 180;} Öffnen Sie Ventil, wenn Sie trocken
Else {pos = 60 ;} halten Sie Ventil geschlossen, ansonsten
myservo.Write(POS); die Servoposition entsprechend dem skalierten Wert festgelegt
Delay(15); wartet, bis das Servo um dorthin zu gelangen
Serial.Print(Threshold);
Serial.Print("");
Serial.Print(Val);
Serial.Print("");
Serial.println(POS);
Delay(10); Verzögerung bei liest zwischen für Stabilität
}
Hinweis: Ich konnte nicht verwalten hinzufügen include-Anweisung, It Traumpaar beim Kopieren und einfügen... also vergessen Sie keine #include-Servo-Bibliothek hinzufügen...