Automatización del riego con Raspberry Pi

Automatización del riego con Raspberry Pi

Introducción

El alcance de esta entrada se limita a la configuración y conexionado de la magnífica Raspberry Pi para poder accionar tanto local como remotamente una serie de relés que actuarán sobre unas electroválvulas. Aunque el proceso no es muy complicado puede resultar abrumador para quien se enfrenta a Linux por primera vez aunque intentaré explicar paso a paso tal y como lo he hecho yo hasta que ha funcionado todo correctamente. Aunque se plantea la automatización del riego de varias zonas de una casa podéis trasladar el ejemplo a cualquier proyecto que os venga a la cabeza, utilizando un software u otro acabareis dando con la solución.

Hardware utilizado

Raspberry Pi 3

Muchas son las bondades de esta placa y de sobra conocidas por tod@s. Entre los usos que le podemos dar destacan máquina recreativa, centro multimedia, servidor, autómata, pc de ofimática y seguro que me olvido de algún otro. Para este proyecto va a  hacer las veces de autómata y servidor web.

Raspberry Pi 3
Raspberry Pi 3

Placa de relés

Con el fin de simplificar y ya que su coste es ridículo, optaremos por una placa comercial de Keyes. En este caso una de 8 relés con bobinas de 12v y que soportan en sus contactos 220v y 10A.

Placa de 8 relés
Placa de 8 relés

Software utilizado

En resumen utilizaremos:

  • Raspbian como sistema operativo.
  • Apache como servidor web.
  • WiringPi como la libreria que gestiona el acceso al puerto de expansión GPIO.
  • Sprinklers Pi como el software para gestionar el riego.

Raspbian

Existen multitud de tutoriales por la red sobre como instalar Raspbian en una tarjeta microsd. Simplemente necesitareis una tarjeta microsd de al menos 8GB y un pc. Podéis ver un vídeo de como hacerlo aquí. El único requisito es que instaléis la versión Stretch with Desktop.

Apache

Una vez que arranque Raspbian por primera vez, veréis un escritorio que os recordará mucho a Windows pero con la barra de tareas y el menú en la parte superior. Abrimos la terminal (icono negro de la barra de tareas) e introducimos los siguientes comandos.

  • Actualizamos el sistema
sudo apt-get update
sudo apt-get upgrade
  • Instalamos Apache y PHP
sudo apt-get install apache2 –y
sudo apt-get install php 
  • Cambiamos el propietario del directorio html
cd /var/www/
sudo chown -R www-data:www-data html
sudo find html -type d -print -exec chmod 775
sudo find html -type f -print -exec chmod 664
  • Añadimos usuario al grupo
sudo usermod -a -G www-data pi
  • Reiniciamos el servidor
sudo /etc/init.d/apache2 restart

Podemos comprobar que todo funciona correctamente generando una página PHP y abriéndola desde el navegador

sudo nano /var/www/html/index.php

escribimos en el archivo <?php phpinfo(); ?> y guardamos.  Recuerda que para guardar y salir de NANO hay que pulsar Ctrl+O (F3) y Ctrl+X (F2). A continuación abrimos el navegador y al ejecutar la dirección http://localhost/index.php debemos ver información relativa a PHP.

Wiring Pi

  • Instalamos GIT
sudo apt-get install git-core
  • Instalamos Wiring Pi
git clone git://git.drogon.net/wiringPi
cd ~/wiringPi
git pull origin
./build
  • Comprobar que podemos leer los puertos
gpio -v
gpio readall

Como la conexión de los pines puede llegar a ser tediosa, os dejo aquí la relación de pines.

Relación de pines

Sprinklers Pi

Este programa nos permite gestionar de forma sencilla hasta 15 zonas y una salida común a todas las zonas llamada pump (bomba). El uso de la salida común es opcional, y como veréis al gestionar las zonas la podéis utilizar o no. Aunque en el programa hace referencia a una bomba, obviamente la podéis utilizar para lo que sea, por ejemplo, para una electroválvula general que de paso al agua de vuestro huerto.

En cuanto al funcionamiento, lo único que debemos tener en cuenta es que el riego se hace de forma secuencial activando las zonas una a una. Dicho de otro modo, si se riega una zona, se cierran todas las demás.

  • Clonar repositorio de Sprinklerspi (https://github.com/rszimm/sprinklers_pi.git) e instalar
git clone https://github.com/rszimm/sprinklers_pi.git
cd ~/sprinklers_pi
sudo make install
  • Iniciar Sprinklerspi
sudo /etc/init.d/sprinklers_pi start

Podemos comprobar que funciona correctamente accediendo mediante el navegador a la dirección http://localhost:8080.

Os dejo unas capturas.

Depende de la placa de relés que uséis deberéis de configurar la salida como directa positiva o directa negativa. Cuando realicéis el cableado y probéis los relés entenderéis de que hablo.

Configuración de los relés y del puerto.

Enlaces

Galería de imágenes

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

uno × 1 =