Intelligenta bevattningssystem med arduino...
Delar som behövs:
-Jord Fuktsensor (dealextreme $3)
-Arduino av något slag (dealextreme $10)
-mini servo av något slag (9gm ~ $5)
-akvarium ventil
-10K potentiometer
-vattenpipa (tunna akvarium typ)
Först doppa gaffeln på Fuktsensor för marken helt... Anslut sensorn till A0 och 10K pott till A1 stiften på Arduino. Anslut servo till D9 stift. Power upp systemet med vad du vill... (Väggen adapter eller batteri)... Ladda upp skissen till arduino, justera potten och sådär... du kan justera nivån på vattning behövs när som helst av potentiometer... det är alla... Du kan placera systemet i en liten vattentät projektet låda av något slag... du kan göra en batteridriven handhållna system och lägga a16x2 LCD-display för att Visa fukt och vattning status... Vänligen tveka inte att kontakta mig för all hjälp och glöm inte att rösta på mig om du gillar den... :) Mina andra projekt finns på min hemsida... http://borsaci06.com
Här är programmet, kopiera och klistra in den till Arduino IDE och ladda upp:
/ * Dincer Hepguler 2013
* http://borsaci06.com
* Läsa analoga värden från Fuktsensor över den seriella porten
* Kommando en servo kontrollerad bevattningssystem
*
*/
CONST int numReadings = 20; antal läsningar för utjämning
int avläsningar [numReadings]; avläsningar från analog ingång
heltal index = 0; index för den aktuella behandlingen
int totala = 0; den löpande summan
int val = 0; Genomsnittligt
#include
Servo myservo; skapa objekt för att styra en servo servo
int sensorPin = A0; Fuktsensor på A0 (analog0)
int pos = 90. variabel till store servo position och sätta servo till mitten
int thresholdPin = A1; tröskel potten vid A1
int val = analogRead(sensorPin);
int tröskel = analogRead(thresholdPin);
void setup() {
Serial.BEGIN(9600);
myservo.attach(9); fäster servo på pin 9
initiera alla avläsningar till 0:
för (int thisReading = 0; thisReading < numReadings; thisReading ++)
avläsningar [thisReading] = 0;
}
void loop() {
subtrahera den sista behandlingen:
totalt = totalt - avläsningar [index];
Läs från sensorn:
avläsningar [index] = analogRead(sensorPin);
Lägg till läsningen av totala:
totalt = totalt + avläsningar [index];
avancera till nästa position i matrisen:
index = index + 1.
om vi är i slutet av kedjan...
om (index > = numReadings)
.. .wrap runt till början:
index = 0;
int tröskel = analogRead(thresholdPin);
val = totalt / numReadings; beräkna medelvärdet
om (val > tröskel) {pos = 180;} //open ventilen om torr
annat {pos = 60 ;} //keep ventilen stängd annars
myservo.write(POS); anger servo skalad värde
Delay(15); väntar på servo att komma dit
Serial.Print(Threshold);
Serial.Print("");
Serial.Print(val);
Serial.Print("");
Serial.println(POS);
Delay(10); dröjsmål i mellan läser för stabilitet
}
Obs: jag kunde inte hantera att lägga till text, it försvinner under kopiera och klistra in... så inte Glöm att lägga till en #include servo bibliotek...