Como construir um sistema de rega automática para plantas usando Arduino

Cómo construir un sistema de riego automático para plantas usando Arduino

La jardinería es el pasatiempo favorito de muchos y, además, saludable. De hecho, un estudio reciente encontró que incluso un pequeño huerto ofrece cualidades para mejorar el estado de ánimo similares a las que proporciona el ejercicio físico.

Sin embargo, una de las principales preocupaciones de muchos jardineros nuevos o novatos es con qué frecuencia y cuánto deben regar sus plantas. Es posible que otros necesiten dejar su jardín desatendido durante un período de tiempo y necesiten ayuda para regarlo. Entonces, ¿y si fuera posible asegurar que las plantas se rieguen automáticamente y al mismo tiempo garantizar la cantidad ideal, en el momento ideal?

Bueno… con el sistema adecuado, esto es posible.

El siguiente proyecto funciona regando las plantas automáticamente cuando es necesario. El circuito se construye utilizando un sensor de humedad del suelo y Arduino. Como su nombre indica, este sensor rastrea el contenido de humedad del suelo y, a través de Arduino, se controla una bomba que suministra agua a las plantas.

Para evitar un riego excesivo o insuficiente, la tierra nunca está completamente seca ni completamente mojada. Por el contrario, el nivel de humedad se mantiene en un nivel razonable. Personalmente, he construido y utilizado con éxito este sistema en mi huerto, que tiene algunas plantas en macetas.

Se colocan sensores de humedad del suelo en las macetas y una mini bomba de agua sumergible (12 V) se coloca dentro de un tanque de agua. Su salida de agua se realiza al interior de las macetas a través de una boquilla que dispone de riego por goteo. Cuando la tierra de cualquiera de las macetas comienza a secarse, la bomba se enciende automáticamente y la planta se riega suavemente.

Tan pronto como el suelo recibe un nivel adecuado de humedad, la bomba se apaga automáticamente. ¡Este sistema aseguró que todas mis plantas fueran regadas adecuadamente, siempre que fuera necesario y sin mi ayuda!

Si desea un sistema similar para su huerto, simplemente siga las instrucciones a continuación. Primero, deberá recolectar los elementos necesarios para comenzar.

Que es necesario…

1.Arduino NANO

2. Un sensor de humedad del suelo

3. Un módulo de relé Arduino

4. Una batería de 12 V – 1 AH o más

5. Una mini bomba de agua sumergible

Diagrama de circuito

Como se muestra en el diagrama anterior, este circuito requiere solo unos pocos componentes. Los principales incluyen la placa Arduino NANO, un sensor de humedad del suelo, una mini bomba de agua y la batería.

Ahora bien, así es como funciona...

  • El sensor de humedad proporciona una salida de voltaje analógico, por lo tanto, debe conectarse a los pines de entrada analógica A0 y A1 del Arduino, que reciben alimentación de 5 V Vcc de la placa.
  • El relé se utiliza para encender/apagar la bomba de agua. Está conectado entre el terminal “NO” (normalmente abierto) y la tierra del circuito.
  • El Arduino activa el relé a través del transistor NPN BC547. El pin digital D2 de Arduino se utiliza para encender/apagar el relé mediante el transistor. (El transistor está conectado en la configuración del interruptor).
  • El relé y la bomba de agua funcionan con 12 V, que es suministrado por la batería.
  • La batería también suministra el pin VIN de 12 V del Arduino.

Nota: En el diagrama solo se muestran dos sensores, pero es posible conectar ocho sensores a ocho pines de entrada analógica de Arduino (A0 – A7).

Operación del circuito
El funcionamiento del circuito es bastante sencillo: cuando la tierra empieza a secarse, el sensor lo envía a la placa Arduino, que enciende la bomba de agua. Una vez que el suelo está adecuadamente regado, Arduino apaga la bomba de agua. Es eso.

  • El sensor de humedad del suelo tiene resistencia variable. Esto significa que su resistencia varía según los cambios de conductividad entre las dos varillas sensoras. Cuando estas varillas se insertan en el suelo, su conductividad cambia según el contenido de humedad del suelo. Si el suelo está seco, la conductividad es menor (y la resistencia es alta). Por otro lado, si el suelo está bastante húmedo, la conductividad es alta (y la resistencia es baja). Así, la resistencia del sensor cambia de mayor a menor, o de “máxima” a “mínima”, dependiendo de la humedad del suelo (una proporcionalidad inversa). Este cambio en la resistencia se convierte en una salida de voltaje analógico y, a medida que aumenta la humedad del suelo, el voltaje de salida analógico disminuye y viceversa.
  • El voltaje de salida del sensor se suministra al Arduino como entrada analógica. Luego, la placa Arduino lo convertirá en un valor digital y medirá el nivel de humedad del suelo (de 0 a 100%).
  • Si el nivel de humedad es inferior al nivel de umbral establecido (digamos 10 o 20%), encenderá el relé a través del transistor, encendiendo la bomba.
  • A medida que la bomba fluye, el suelo comienza a humedecerse. El Arduino leerá continuamente el nivel de humedad del suelo de ambos sensores.
  • Cuando se alcanza un nivel de humedad establecido (digamos 90 o 95%) en ambas varillas del sensor, Arduino apaga el relé, lo que apaga la bomba.
  • Este ciclo es continuo, por lo que la planta se riega cuando el suelo se seca.

Para este proyecto, sólo utilicé dos sensores. Pero puedes utilizar un máximo de ocho en diferentes macetas.

Este circuito funciona porque el programa se descarga (o integra) en el microcontrolador Arduino.

Aquí está el programa Arduino C, que está escrito y compilado en el software Arduino IDE.

Programa de software

#definir pecado1 A0
#definir pecado2 A1
int led1=3,led2=4,led3=5, pump_rly=2;
configuración nula
{
// pon tu código de configuración aquí, para ejecutarlo una vez:
pinMode(led1,SALIDA);
pinMode(led2,SALIDA);
pinMode(led3,SALIDA);
pinMode(pump_rly,SALIDA);
escritura digital (led1, BAJO);
escritura digital (led2, BAJO);
escritura digital (led3, BAJO);
escritura digital(pump_rly,BAJO);
Serie.begin(9600);
Serial.println(“sistema de riego automático mediante arduino”);
}

bucle vacío
{
//pon tu código principal aquí, para ejecutarlo repetidamente:
int valor_sen1, valor_sen2, nivel_humedad_suelo_1, nivel_humedad_suelo_2;
sen1_value = analogRead(sen1);
sen2_value = analogRead(sen2);
nivel_humedad_suelo_1 = mapa(valor_sen1,200,1020,100,1);
nivel_humedad_suelo_2 = mapa(valor_sen2,200,1020,100,1);
Serial.print(“Nivel de humedad del suelo en POT 1: “);
Serie.print(soil_moisture_level_1);
Serial.println('%');
Serial.print(“Nivel de humedad del suelo en POT 2: “);
Serie.print(soil_moisture_level_2);
Serial.println('%');

si(nivel_humedad_suelo_1<10)
{
escritura digital (led1, ALTO);
Serial.println(“el nivel de humedad en POT 1 es bajo”);
}
de lo contrario si (nivel_humedad_suelo_1>90)
{
escritura digital (led1, BAJO);
Serial.println(“el nivel de humedad en POT 1 es adecuado”);
}

si(nivel_humedad_suelo_2<10)
{
escritura digital (led2, ALTO);
Serial.println(“el nivel de humedad en el POT 2 es bajo”);
}
de lo contrario si (nivel_humedad_suelo_2>90)
{
escritura digital (led2, BAJO);
Serial.println(“el nivel de humedad en POT 2 es adecuado”);
}

/* si(sin3_valor>500)
{
escritura digital (led3, ALTO);
Serial.println(“el nivel de humedad en POT 3 es bajo”);
}
de lo contrario si (sin3_valor <50)
{
escritura digital (led3, BAJO);
Serial.println(“el nivel de humedad en POT 3 es adecuado”);
}*/

if((nivel_humedad_suelo_1<10) (nivel_humedad_suelo_2<10))
{
Serial.println(“BOMBA ENCENDIDA”);
escritura digital (pump_rly, ALTA);
}

if((nivel_humedad_suelo_1>94) && (nivel_humedad_suelo_2>94))
{
Serial.println(“BOMBA APAGADA”);
escritura digital(pump_rly,BAJO);
}
retraso(3000);
}

(tagsToTranslate)Arduino

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.