Sistema de Riego Inteligente con Arduino

Categoría: Arduino Creado: Miércoles, 14 Junio 2017 Publicado: Jueves, 15 Junio 2017 Escrito por Francisco Javier Sánchez Gragera

No hace falta decir que este mes de Junio de 2017 está siendo especialmente caluroso aquí en España, y con estas altas temperaturas he recordado un proyecto que realicé hace un año. Se trata de un Sistema de Riego Inteligente con Arduino, sensores y mando a distancia para controlar y configurar el riego.

Lo que hace el sistema, básicamente, es comprobar periódicamente la humedad del suelo y la luz ambiente, para regar si es necesario. Regaremos de noche puesto que de esta forma se evapora menos agua y empapa mejor la tierra. Tendremos la opción de configurar el intervalo de tiempo entre comprobaciones, y la duración del riego cada vez que se produzca.

 

Sistema de Riego Inteligente

 

Componentes necesarios para el proyecto:

  • Arduino Uno R3: Original o compatible. Es la base del proyecto y contendrá el código que orquestará el funcionamiento de todo el sistema. A través de sus entradas analógicas recibirá los datos de luz ambiente y humedad del suelo. Esperará órdenes a través de un mando a distancia, esperando códigos por una entrada digital; y hará que se abra el caudal del agua mandando señales a un relé, que activará una bomba de agua o electroválvula.

  • Arduino Uno Shield Protoboard: Se trata de un accesorio que se coloca sobre Arduino Uno R3. El shield se conencta a todas las entradas/salidas analógicas y digitales, y las reproduce en su superficie para no perder conectividad. Su parte central es una protoboard taladrada, sobre la que podemos realizar nuestros proyectos siendo muy sencilla la colocación de los componentes.

  • Higrómetro: Se trata de un sensor de humedad del suelo. Consiste en un par de palas insertadas en la tierra que miden la conductividad de la electricidad entre ellas, cuanto más húmeda esté la tierra menor resistencia a la conductividad existe entre las dos palas. Este valor se lee a través de una entrada analógica de arduino y varía entre 0, que sería la total humedad, y 1023 que indica que las palas están al aire. Debemos encontrar el lugar ideal dónde hundir el sensor para que las lecturas sean significativas. La patilla GND la llevamos a tirra en el arduino, y la patilla de alimentación la conectaremos a la salida digital 5, usándola como alimentación del sensor de arduino, y encendiéndo el sensor sólo cuando vayamos a medir. La señal la conectamos a la entrada analógica 2.

  • Sensor Luz LDR: Se trata de una resistencia variable, cuyo valor varía según la luz que incida sobre el sensor. Se conecta a una entrada analógica de Arduino, de forma que a más luz menor es la resistencia, y más alto es el valor. Sería por tanto 0 oscuridad absoluta y 1023 la máxima luminosidad. De nuevo usamos una salida digital para alimentar el sensor, y encenderlo cuando sea necesario. La patilla gnd va a tierra y la señal a la entrada analógica 3

  • Módulo Relé Arduino: Existen para Arduino módulos con relé incorporado, muy fáciles de utilizar. Tienen una entrada de alimentación de 5v, otra conexión de tierra, y una tercera patilla que recibirá una señal digital de arduino, encargada de indicar al módulo que hay que activar el relé. Esto es así porque la señal digital de 5 voltios de arduino no es suficiente para poder excitar el relé. Usaremos la salida digital 13 para excitar el relé, y de paso conseguiremos que el led vinculado a la salida 13 se encienda y se indique de esta forma que está activo el riego.

  • Pantalla LCD i2c 16x2: Para mantenernos informados de la situación del sistema, o del estado de humedad del suelo, viene bien tener una pequeña pantalla. Será necesario además para interactuar con el programa de arduino y poder alterar los valores de configuración. Usamos una pantalla serie con el protocolo i2c por ser mucho más sencillo de cablear, aunque necesitaremos utilizar las librerías Wire.h, LCD.h y LiquidCrystal_I2C.h. Las conexiones de las pantallas LCD se hacen siempre a 5v, GND, SDA a patilla analógica 4 y SCL a patilla analógica 5

  • Receptor Infrarrojos y Mando a Distancia: Para controlar el funcionamiento y poder configurar el sistema de riego, utilizaremos un receptor de infrarrojos que espere las órdenes del mando. Como mando a distancia podemos usar el de algún dispositivo que esté averiado o vayamos a desechar, o podemos comprarlo por poco dinero. Como receptor encontramos el típico con tres conexiones: vcc, gnd y datos, conectándose ésta última a una entrada digital del arduino, poniendo por medio una resistencia de 220 ohm. Receptor e infrarrojos funcionan con el protocolo NEC, siendo necesario utilizar la librería NECIRrcv.h. Conectaremos la patilla de señal a la patilla digital 7.

  • Electrobomba o Electroválvula de Agua: Dependiendo el contexto de nuestro proyecto podemos usar una electroválvula o una electrobomba. En interior, si queremos regar unas pocas macetas, podemos usar un cubo de agua con una electrobomba de acuario que riegue a través de tubos flexibles las macetas. Si se trata de un proyecto de exterior y tenemos un grifo próximo al césped o arriate que queremos regar, podemos usar una electroválvula que controle el flujo del grifo (que deberemos dejar abierto), y conectar al grifo el microtubo de riego por goteo o aspersores. Ambos mecanismos suelen funcionar a 12v, aunque también los podemos encontrar a 24v.

  • Regulador de Tensión L7809CV: En nuestro proyecto tenemos que trabajar con dos voltajes. Por un lado Arduino funciona con 9v por su conector jack; y por otro lado tenemos la electroválvula / bomba de agua funcionando a 12v o 24v. Podemos usar dos transformadores de corriente distintos, o podemos usar únicamente el transformador de 12v / 24v y sacar una derivación que reduciremos a 9v usando L7809CV. Este regulador tiene la capacidad de aceptar voltajes hasta 35v y reducirlos a 9v.

  • Fuente de Alimentación 12v o 24v: Tal y como se vio con anterioridad, deberemos escoger una fuente de alimentación acorde a la electrobomba o electroválvula que vayamos a utilizar. Deberá funcionar al mismo voltaje, y tener una intensidad máxima un poco mayor a lo que necesite, ya que de esta fuente de alimentación extraemos también una derivación a 9v para Arduino.

El proyecto se construye tomando como base un Arduino Uno R3, sobre el que colocamos el shield de protoboard y los componentes adicionales. Tendremos de esta forma la Placa Arduino R3 por un lado, conteniendo el código fuente de nuestro sistema; y el Arduino Shield con todos los sensores y componentes soldados, la parte hardware del proyecto. Es muy fácil de esta forma sustituir la placa arduino si se avería, o separar el protoshield para sustituir un sensor cómodamente.

 

Sistema de Riego Inteligente

 

El esquema de conexión, tal y como hemos descrito anteriormente, sería el siguiente:

 

Esquema Sistema de Riego Inteligente

 

Con el protoshield es muy cómodo realizar las conexiones y soldaduras:

 

Soldaduras Sensores

 

En cuanto al código, aquí cada uno es libre de aplicar su lógica. Os dejo un enlace al código fuente de mi sistema de riego que es bastante extenso y no quiero incrustar en el artículo. Si tenéis problemas con el uso de algún componentes, hay numerosas páginas con tutoriales individuales para cada uno de los elementos que aquí usamos. Tres buenas páginas son Drouiz, https://www.prometec.net/ y https://geekytheory.com


Las principales características de mi programa son:

  • El sistema evalúa las condiciones de luz y humedad periódicamente, y regará si es necesario.
  • También podremos regar manualmente de forma ajena al automatismo, y cancelar el riego en curso. Usaremos el mando a distancia para este propósito.
  • El sistema de riego contiene cuatro variables de configuración: Umbral de oscuridad para activar riego, umbral de humedad para considerar seco, tiempo en minutos entre comprobaciones y tiempo de riego una vez activado. Se mostrará un menú de configuración en el LCD que operaremos con el mando a distancia.
  • Los valores de configuración se graban en la EEPROM interna de arduino para conservarlos si desconectamos la corriente. Si es la primera vez que usamos el sistema y no hay valores guardados, cargaremos unos valores iniciales predeterminados.
  • La pantalla LCD emite una luz azul muy intensa. Me pareció apropiado apagar la luz de fondo cuando el sistema esté en reposo, encendiéndola cuando esté realizando las comprobaciones, informando de los valores de humedad o regando.
  • Comprobaréis por vosotros mismos que los valores del sensor de humedad tienen un margen de precisión grande, dependiendo también de la calidad del producto. En mi código realizo tres lecturas de humedad por cada ciclo de comprobación, y obtengo matemáticamente la media de estas lecturas.
  • Si por algún motivo se desconecta el cableado del higrómetro, o si lo sacamos de la tierra y se olvida ponerlo de nuevo, el sensor de humedad pensará que el suelo estará muy seco, y regara en cada ciclo desperdiciando agua y encharcando el cultivo. Como el valor analógico leído con las patillas en el aire es cercano a 1023, y es imposible que la tierra esté tan seca, habrá que considerar estos valores como lecturas erróneas, y mostraremos un mensaje en el LCD de "Error Sensor de Humedad Tierra"

Posibles ampliaciones del sistema:

  • Si usamos una bomba de agua sumergida en un depósito o pozo, podemos incluir un sensor de nivel del agua a nuestro arduino, para no hacer funcionar la bomba en vacío y evitando que se averíe. Sensor de nivel de agua en Aliexpress
  • Si queremos ampliar la conectividad de nuestro sistema, podemos agregar un módulo wifi para que el sistema de riego informe del estado del jardín, y de posibles errores. Modulo Wifi en Aliexpress
  • Si el riego lo estamos realizando en un cortijo y no disponemos de wifi, se puede usar un módulo de telefonía GSM para que mande sms de alerta. Shield GSM GPRS en Aliexpress
  • Si queremos controlar rigurosamente el gasto de agua, existen sensores de caudal de agua, que nos puede indicar los litros consumidos al día, a la semana, en cada riego....Sensor Caudal de Agua en Aliexpress

Espero que os haya resultado interesante y útil, realicé este proyecto hace tiempo y le doy bastante uso, aunque hay que realizar varias pruebas hasta que se da con la configuración adecuada para cada tipo de tierra y sistema de riego. ¡Un saludo makers!

Visto: 1690

Escribir un comentario


Código de seguridad
Refescar