Piezas necesarias:
-Sensor de humedad suelo (dealextreme $3)
-Arduino de cualquier tipo (dealextreme $10)
-mini servo de cualquier tipo (gm 9 ~ $5)
-válvula de acuario
-Potenciómetro de 10 K
-pipa de agua (tipo acuario fina)
Primero sumergir completamente la horquilla del sensor de humedad al suelo... conectar sensor a A0 y 10K olla a A1 pines de Arduino. Conecte el servo al pin de D9. Encienda el sistema con lo que gustes... (Adaptador de pared o pila)... Cargar el sketch en arduino, para ajustar el bote y hay que ir... se puede ajustar el nivel de riego necesario en cualquier momento por el potenciómetro... eso es todo... Usted puede poner el sistema en una caja de pequeño proyecto impermeable de ninguna clase... puede hacer un sistema portátil de pilas y agregar a16x2 pantalla lcd para mostrar humedad y estado... por favor no dude en contactar conmigo para cualquier ayuda y no te olvides de votar por mí si te gusta... :) Mis otros proyectos están en mi sitio web... http://borsaci06.com
Este es el programa, copie y pegue en el IDE de Arduino y subir:
/ * Dincer Hepguler 2013
* http://borsaci06.com
* Leer valores analógicos de sensor de humedad sobre el puerto serial
* Comando un servo controlado sistema de riego
*
*/
const int numReadings = 20; número de lecturas para alisar
int lecturas [numReadings]; las lecturas de la entrada analógica
Índice de int = 0; el índice de la lectura actual
int total = 0; la corriente total
int val = 0; el medio de
#include
Servo myservo; crear objeto servo para controlar un servo
int sensorPin = A0; sensor de humedad en A0 (analog0)
int pos = 90; variable a la posición del servo de tienda y set servo al centro
int thresholdPin = A1; bote de umbral en A1
int val = analogRead(sensorPin);
umbral de int = analogRead(thresholdPin);
void setup() {}
Serial.Begin(9600);
myservo.Attach(9); se fija el servo en el pin 9
inicializar todas las lecturas a 0:
para (int thisReading = 0; thisReading < numReadings; thisReading ++)
lecturas [thisReading] = 0;
}
void loop() {}
Reste la lectura:
total = total - lecturas [índice];
lectura del sensor:
lecturas [índice] = analogRead(sensorPin);
Añadir la lectura al total:
total = total + lecturas [índice];
avanzar a la siguiente posición en la matriz:
index = index + 1;
Si estamos en el final de la matriz...
Si (Índice > = numReadings)
.. .wrap todo al principio:
índice = 0;
umbral de int = analogRead(thresholdPin);
Val = total / numReadings; calcular el promedio
Si (val > umbral) {pos = 180;} Abra la válvula si seco
Else {pos = 60 ;} Mantenga la válvula cerrada en caso contrario
myservo.Write(POS); ajusta la posición del servo según el valor de escala
Delay(15); espera a que el servo llegar
Serial.Print(THRESHOLD);
Serial.Print("");
Serial.Print(Val);
Serial.Print("");
Serial.println(POS);
Delay(10); retardo entre lecturas para la estabilidad
}
Nota: no pude gestionar añadir incluir declaración, TI dissappears durante copiar y pegar... así que no olvides agregar una biblioteca de #include servo...