Sistema de Riego Automático para Plantas con Raspberry Pi y Panel Web
Crea un sistema de autorriego que monitoriza la humedad del suelo y riega tu planta de interior automáticamente, todo controlado desde una interfaz web.
Resumen
Esta guía te lleva paso a paso —desde la selección de componentes hasta el cableado, programación y lanzamiento de un panel web con Flask. El resultado es una solución de riego fiable y de bajo mantenimiento que funciona en una Raspberry Pi.
Materiales
- Raspberry Pi 3 (cualquier Pi 2/4 funciona con pequeños cambios de pines)
- Sensor de Humedad de Suelo (salida analógica)
- Módulo Relé 5 V (un canal)
- Bomba Sumergible Mini 3–6 V (≤ 200 mL/min)
- Manguera flexible (1 pulgada o menor)
- Cables jumper Dupont (juego multicolor, 120 uds)
- Fuente de Alimentación 5 V (cable USB + cargador de pared o adaptador 5 V)
- Opcional: Pequeño potenciómetro para calibración del sensor
Configuración de Alimentación
Usa un cable USB como fuente de 5 V. Pela el cable, suelda cables de mayor calibre a los conductores rojo (+) y negro (–), y conéctalos a un cargador de pared 5 V. Verifica el voltaje con un multímetro antes de conectar a la Pi.
Cableado GPIO (Pi 3)
- Sensor de Suelo: Positivo al pin 2 (5 V), Negativo al pin 6 (GND), Señal (amarillo) al pin 8 (GPIO 14).
- Relé: Pin IN al pin 7 (GPIO 4), VCC al pin 2, GND al pin 5.
- Bomba: Conecta la alimentación de la bomba al contacto Normalmente Abierto (NO) del relé; tierra al contacto Común (COM). Cuando la Pi pone el pin 1 (GPIO 5) a LOW, el relé cierra y activa la bomba.
Conecta la manguera a la salida de la bomba y sitúa el otro extremo cerca del suelo de la planta. Llena el depósito de la manguera con agua.
Montaje del Hardware
Asegura la manguera a la bomba con cinta aislante para evitar fugas. Asegúrate de que todas las conexiones están aisladas y la Pi se alimenta por separado de la bomba para evitar ruido eléctrico.
Resumen del Software
El proyecto comprende cuatro scripts Python y una interfaz web Flask:
- water.py – Abstracción GPIO para lectura del sensor y control de la bomba.
- auto_water.py – Lógica de riego programado.
- web_plants.py – App Flask que expone estado del sensor y controles manuales.
- main.html – Plantilla simple de panel.
Instalación de Dependencias
En la Pi, ejecuta:
$ python3 -m pip install RPi.GPIO flask psutil
Script de Control GPIO (water.py)
El script expone dos funciones clave: get_status() devuelve una cadena "wet"/"dry", y pump_on() activa la bomba durante un segundo. Prúebalo interactivamente:
$ python3 >>> import water >>> water.get_status() 'Dry' >>> water.pump_on() Bomba activada por 1 s.
Si el sensor reporta incorrectamente, ajusta el pequeño potenciómetro del módulo hasta que el segundo LED se encienda cuando el suelo está húmedo.
Ejecutar el Panel Flask
Coloca web_plants.py en la misma carpeta que water.py y crea un subdirectorio templates con main.html. Luego inicia el servidor:
$ sudo python3 web_plants.py
Navega a la IP de la Pi en un navegador; verás un panel con estado de humedad en tiempo real y un botón manual "Regar Ahora". Esta página funciona con Flask y se comunica con la capa GPIO mediante los scripts auxiliares.
Automatizar Inicio con Cron
Para que el servidor web inicie automáticamente tras reinicio, edita el crontab de root:
$ sudo crontab -e
Añade la línea siguiente, reemplazando /home/pi/project con tu ruta real:
@reboot cd /home/pi/project && sudo python3 web_plants.py
Reinicia la Pi y confirma que el panel carga automáticamente.
Próximos Pasos
Con el sistema operativo, puedes mejorarlo añadiendo:
- Múltiples módulos de planta y un único panel.
- Registro de niveles de humedad en CSV o base de datos.
- Notificaciones por email o push cuando se riega.
Para profundizar, consulta tutoriales de GPIO en Raspberry Pi y guías de integración Flask-GPIO.
Proceso de manufactura
- Cómo leer temperatura con un DS18B20 en Raspberry Pi 2
- Sistema de acuaponía controlado por Raspberry Pi: guía de construcción y código
- Medición de temperatura en Raspberry Pi con sensores 1-Wire Maxim y puente I2C DS2482
- Centro de Energía Doméstica: Monitorización de paneles solares fotovoltaicos, térmicos y temperaturas con Raspberry Pi y Moteino
- Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
- Cómo conectar un sensor de temperatura DS1820 One‑Wire a Raspberry Pi usando GPIO
- Conexión del sensor ultrasónico HC‑SR04 a Raspberry Pi 3 – Guía completa
- Sensor de seguimiento de línea con Raspberry Pi – Detector simple KY‑033 para puerta/línea
- Detección de Rayos con Raspberry Pi y AS3935: Guía Práctica
- Mida Sensores Analógicos en Raspberry Pi sin ADC Nativo
- Construya una Alarma de Agua Headless para Raspberry Pi 2 con Adafruit T‑Cobbler Plus