Sistema de riego Arduino paso a paso

Un sistema de riego Arduino tiene muchas ventajas, es económico, flexible, te permite un control absoluto sobre como quieres regar tus plantas, pudiendo adaptarlo a las necesidades de cada una.
En este artículo te voy a contar como montarlo de dos formas, con agua del grifo y una electrovalvula o con deposito y una bomba, ambos usaran el riego por goteo.
Existen otras muchas posibilidades formas, para montar un riego automatizado Arduino, tanto para el método con el que llevar el agua a las plantas como para regar, por ejemplo podríamos cambiar el riego por goteo por cualquier otro sistema de riego

Índice

Sistema de riego Arduino usando agua corriente y electroválvula

Que harémos, muy simple conectamos sistema de riego a un grifo y entre esté y nuestras plantas situaremos la electrovalvula o valvula selenoide que se encargará de dejar pasar o no el agua cuando le indiquemos (nivel de humedad, intervalor horario)

Componentes necesarios

Lista de componentes y materiales que vamos a necesitar para llevarlo a cabo.

  • Arduino
  • Podemos usar el que nos apetezca, arduino uno, arduino nano, adruino mega….

  • Electrovalcula o válvula solenoide
  • Yo he usado esta pero puedes usar cualquier otra sólo teines que tener en cuenta el voltaje para alimentarla y si es normalmente cerrada o abierta, mejor cerrada que no se nos escape el agua si falla algo.

  • Un rele, como este
  • Alimentación
  • Si nuestra eletrovalvula es de 12V necesitamos o pilas como estas o una batería como estas

  • Cables conexión
  • Podemos sacarlos de cualquier cable que tengamos por casa (usb, red,audio) o podemos comprarlo

Esquema de conexiones

Para conectar electrovalvula a arduino vamos a hacerlo a través de un relé, aquí tienes las diferentes conexiones
Las conexiones que van del Arduino al Relé
Cable Rojo: De una salida de 5V (puede ser la del arduino) a la patilla de VCC del rele
Cable Negro: De tierra (GND del arduino) a la patilla de GND del rele
Cable Verde: De una entrada digital arduino (D7 en este caso) a la patilla IN del rele
Las conexiones que van del Relé a la electrovalvula y batería
Cable Rojo: Del positivo de la batería al COM (Comun) del rele y del NOC (Normalmente cerrado) de este al negativo de la electrovalvula
Cable Negro: De negativo de la batería al positivo de la electrovalvula
Una imagen vale más que mil palabras.

Funcionamiento

El funcionamiento es bastante sencillo, conectamos una tubería desde nuestro grifo a nuestra valvula solenoide o electrovalvula y de ahí a nuestro sistema de riego (en mi caso usé goteo)
Dejamos el grifo abierto y cando queremos que pase el agua enviamos un HIGH al pin digiatal donde conectes el rele (en este caso el D7) esto hará que se active la valvula y deje pasar el agua, si queremos cortar enviamos un LOW y se cerrará.

Código

El código es sencillísimo, la complegidad está lo que queramos hacer en la función que decide si encender el riego o pararlo encenderRiego si esta devuelve enviamos un HIGH (1) al pin del rele D7 y enciendo la electrovalvula, si devolve false enviamos LOW (0) y para la electrovalvula
La chicha del programa estará en hacer que la función encenderRiego lea la humedad del suelo y si es menor que un número encienda el riego y sino lo apague.

//Pin que nos da el nivel
int pinRele = 7;
//Tiempo que debe esperar para la siguiente iteración del bucle
int tiempoEspera = 2000;//2 segundo
boolean estadoRiego = false;

void setup()
{
//Iniciamos el pin el pin que nos da el nivel
pinMode(pinRele, OUTPUT);
//Nicializa el serial
Serial.begin(9600);
}
//Esta funcion debería decidir cuando queremos o no encender el riego
// Por ejemplo cuando la tierra esta seca
boolean encenderRiego(){
boolean salida = false;
if (estadoRiego){
salida = false;
}else{
salida = true;
}
return salida;
}

void loop()
{
// Leermos el pin que nos da el nivel
estadoRiego = encenderRiego();
//Dependiendo del estado del riegoestado muestra un mensaje u otro.
if (estadoRiego) {
Serial.println(“Se enciende el riego”);
digitalWrite(pinRele, HIGH);
} else {
Serial.println(“Se apaga el riego.”);
digitalWrite(pinRele, LOW);
}
delay(tiempoEspera); //Espera el tiempo indicado
}

Conclusiones

Con esto tendremos un sistema sencillo que enciende y apaga el riego, pero para hacerlo bien hay que tenga sentido, necesitamos encender el riego de forma eficiente, por ejemplo cuando baja el nivel de humedad, te recomiendo leer el artículo sobre como detectar el nivel de humedad del suelo

Deposito y bomba

Estoy terminando de redactarlo y probarlo, en unos días estará listo.