Sé que hay bastantes instructables sobre cómo automatizar el riego de sus plantas. Generalmente esto se hace alrededor de un Arduino. He decidido sin embargo con un poco de una solución más barata con uno de los hermanitos de Arduino, el Attiny45, pero probablemente trabajaría con un Attiny13 así. (confirmado, lo hace)
El circuito es bastante simple. Un sensor de humedad conectado entre Vcc y el Pin 3 (= analógica pin2) forma un divisor de tensión. Si el suelo es seco, la resistencia del sensor aumenta y disminuye la tensión en el pin3.
Si cae por debajo del nivel del nivel ajustado con P1, el Attiny sabe el suelo es demasiado seco y hace pin 7 alto. PIN 7 alimenta un relé de estado sólido - 39MF22 - que activa una bomba que está sumergida en un depósito de agua.
He escogido el 39MF22 por ninguna otra razón de que era muy barato.
Zenerdiode D1 está ahí para proteger el chip. Si hay una línea larga que viene desde el sensor de humedad, picos de voltaje pueden ser llevado sobre él, por lo tanto el zenerdiode. Más adelante discutiré la jumperblock
Hasta hasta el Attiny no ha hecho nada más que actuar como un comparador y de hecho podría ser reemplazado por un 741 (si te olvides de campatibility pin), pero que es un microcontrolador, puede hacer unas cuantas cosas más. (si desea hacerlo con un amplificador 741 operacional, ver aquí)
Bombas sumergibles generalmente no les gusta dejarse correr seca, así el Attiny comprueba el nivel del agua por medio de un interruptor (S1) que en mi caso es una caña interruptor en el exterior del contenedor con un imán en un dispositivo flotante en el envase. También se podría utilizar una inclinación switchor un interruptor mecánico activado por un dispositivo flotante. La forma más simple que he visto fue un flotante ducky de goma atado a una marca del interruptor a través de una cadena. Si el nivel del agua llegó demasiado bajo, el patito tire del interruptor.
Si usted tiene bastante fantasía, podría por ejemplo agregado una LDR o un NTC entre Pin 1 y la tierra y que el riego sólo se haga por la noche, en la mañana, durante el medio día o cuando fue el momento más caliente del día.
Cuadro 2 muestra el montaje de los componentes en una PCB. Como rápidamente quiso probar el circuito, había no montara alguno de los componentes todavía. Tiene componentes un poco más en la imagen anterior y eso es porque he añadido un powersupply 7805 base estándar
Cuadro 3 muestra el PCB (Descargar) tiene algunas cositas rojo sobre ella, y voy a llegar a ésos más adelante. Ten en cuenta que este PCB es visto desde el lado del componente y por lo tanto es directamente utilizable para transferencia de calor: en definitiva: imprimir en papel brillante, puesto que en la copperside de un trozo de PCB limpio y desengrasado y que transferir con una plancha caliente. Grabado en ácido clorhídrico y H2O2 (mi método preferido)
Cuadro 4 muestra el sensor de humedad que utilizo. Hay mucha discusión sobre los sensores de humedad, pero generalmente viene a 2 puntas galvanizadas o un sensor de yeso. He usado ambos y prefiero a las púas galvanizadas. Fácil de hacer, fácil de usar. sí pero ¿qué acerca de la corrosión?
Sí hay corrosión, especialmente cuando una corriente fluye a través de los picos (apesar de es muy poco). y que es donde la jumperblock en el circuito. Por simplicidad estoy alimentación los picos de la línea principal, así que hay una tensión continua y una corriente continua y sí que acelera la corrosión.
Usted podría elegir sin embargo para alimentar los picos de una E/S digitales por ejemplo pin Pin 5. Pude haber poner esa opción en el diseño de PCB con un puente de 3 terminales, pero que parecía un poco tonto, ya decidí que solo iba a utilizar la línea principal, pero si usted quiere alimentar de 5 Pin y luego echa un vistazo al diseño de PCB. Se trata de interrumpir un rastro de cobre y correr un cable. Eso es todo allí está a él. El software ya se abastece para él. Los cambios están indicados en rojo en el diseño de PCB
Sólo un poco más sobre el sensor y el resistor R1. Idealmente, la R1 tiene el mismo valor ya que su sensor tiene sobre su resistencia 'a mojar bastante, podría utilizar algo de agua'. Por lo tanto, cuando usted haya hecho su sensor, pegarlo en el suelo en un momento que es jcould usar algo de agua. Así que no cuando su suelo es hueso seco, pero en un momento piensas, bueno, hoy pude regar, pero tal vez llevará a cabo hasta tomoro.
En el sensor y medir su resistencia. Escogió como resistencia para su R1. En mi caso fue 10 k, pero depende mucho del tipo de suelo, sino también en la distancia entre las puntas. Tenerlas juntas pero se podría optar para ponerlas en los extremos opuestos de la cama de la planta...
Software:
------
/ * Jardín 3
de abril de 2012
Sensores:
-Spike humedad en analógica pin2
*
*----------------------Humid------------------------------
* Esquema:
* [Tierra] - [-almohadilla-resistencia de 10k]--| --[Puntas]--[Vcc]
*
* Analog Pin 2
*
*
ATTiny pins
Física Analoog Digital
1 0 5 reset, interrupción de PinChange
2 3 3 INT0, 3
3 2 4 INT0, 4
4 tierra
5 INT0 0, 0
1 6 INT0, 1
7 1 2 INT0, 2
8 Vcc
*/
PIN definities
levelPin byte const = 3; análogo de Pin3 -> pin2 física establecer nivel
humidPin byte const = 2; analógica Pin2 -> sensor de humedad física pin3
pumpPin byte const = 2; Pin2 digital -> física pin7 bomba
emptyPin byte const = 1; Pin1 digital -> nivel físico Pin6 del agua
spikePin byte const = 0; Pin0 digital -> Pin5 física Extra para cambiar intermitente de espiga
Ajuste variable
húmedo de int = 0; flotador no es necesario
riego de int = 0; nivel de riego
nivel de byte = 0;
La siguiente función, "setup", siempre debe estar presente
void setup()
{
pinMode(levelPin,INPUT); establecer nivel
pinMode(humidPin,INPUT); mide humedad
pinMode(emptyPin,INPUT); depósito de medidas
pinMode(spikePin,OUTPUT); para alternativa de suministro a los puntos
pinMode(pumpPin,OUTPUT); Salida de relé
digitalWrite (pumpPin, bajo);
digitalWrite (spikePin, bajo);
}
void loop() //This función siempre debe estar presente
{
nivel = digitalRead(emptyPin);
/*
En primer lugar leer el nivel conjunto con P1 en la levelPin y guarde en 'regar'
*/
Irrigate=sample(levelPin);
/*
Luego se lee el sensor de humedad.
Primero tendremos que configurar el spikePin a alto, en caso de se utiliza para alimentar el sensor. Después de la lectura ponerlo nuevo) si el valor leído ('húmedo') es menor que lo que se considera seco (regar) y luego la bomba se debe encender por un tiempo específico. Esto se hace indicando un umbral más alto para apagar la bomba
*/
digitalWrite (spikePin, HIGH);
Moist=sample(humidPin); leer humiditySensor
digitalWrite (spikePin, bajo);
nivel = digitalRead(emptyPin);
Si (húmedo < = regar) digitalWrite (pumpPin, nivel);
Si (húmedo > = regar + 5) digitalWrite (pumpPin, bajo); previene variación
bucle final
}
int muestras (int z)
/ * Esta función se lea la 'z' de perno 5 veces y tomar un promedio.
Luego se asignarse al dividir por 4
Así: dividir por 20
*/
{
byte me;
sval int = 0;
para (i = 0; i < 5; i ++) {sval sval = analogRead(z); / / sensor en el pin analógico 'z'
}
sval = sval / 5; promedio
sval = sval / 4; escala a 8 bits (0 - 255)
sval = sval/20;
volver sval;
}
El software es bastante sencillo y no necesita mucha explicación. La medición se realiza con la función 'sample' ('robó' un pero recuerdo donde así que el crédito no es mina de todos). Cada vez antes de llama a la función, el 'spikePin' está situado en caso de usar para alimentar los picos. Si sólo se alimenta desde la línea de 5V, instrucción puede omitirse.
Como es, el software continuamente medidas, así que realmente no hacer tanta diferencia donde alimenta a los picos de. Si opta por alimentar los picos de lo pin I/O digital, sería sensato a construir también un retraso en la medición, como una vez cada hora, o dos veces al día. Como el circuito no tiene un reloj, es más fácil hacer ese retraso con las instrucciones de uno o más 'retardo'.
Obtener el software en el Attiny
Hay un montón de instrucciones en eso y no es objeto de este tutorial. Usted podría utilizar un programador dedicado, otro arduino o incluso su puerto serial o paralelo.
Pero en Resumen tienes que instalar un núcleo Attiny85 y seleccionar cuando compilación y programación. Vaya aquí para los corazones y la explicación.
Extra:
Pin 1 de lo Attiny es tirado alta porque normalmente es el pin de reset y uno no quiere cuelgue suelto. Si uno reemplazaría R4 con una resistencia de 1 k en serie con un LED, puede utilizarse para funciones de señal como 'Yo estoy midiendo ahora' o 'el nivel de agua es insuficiente'. Sin embargo, usted necesita programar eso perno como un pin Digital ordinario y por lo tanto pierde su función de reset. Eso significa que la reprogramación no es posible sin un programador de alta tensión.
Nota:
Si usted está haciendo el PCB, es sabio hacer los cojines donde las conenctors ir un pelín más grandes con por ejemplo un rotulador o algún esmalte, así que cuando usted la soldadura en los conectores puede conseguir buen agarre.