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.
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.
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
- 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/wiringPisudo git clone https://github.com/wiringpi/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. Como aclaración, en la imagen se pueden ver dos numeraciones pero en realidad hay tres, los pines del 1 al 40, los «GPIOs» y la numeración Wiring PI. Los pines se refieren a los pines físicos de la Raspi, los GPIOs se corresponden con la numeración BCM y la numeración wPi que va por libre y podéis obviarla.
Ejemplo: Zona de riego 1 == Pin físico 12 == GPIO 18 == wPi 1
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.
Enlaces
Galería de imágenes
Raspberry Pi 3 Placa de 8 relés
2 comentarios en «Automatización del riego con Raspberry Pi»
El repositorio de Wiring PI ahora se encuentra en https://github.com/wiringpi/wiringpi por lo que el comando apropiado sería:
sudo git clone https://github.com/wiringpi/wiringpi
Hola, acabo de instalar en mi raspberry el software de control de riego, pero no me queda claro como conectar la placa de relés, alimentación, la bomba y los diferentes solenoides.
Donde puedo ver las fotos mas grandes??
Gracias