🌱 Proyecto escolar · Grupo 10B · Armenia
AguaCafé 10B

Un sistema de riego automático con Arduino UNO, sensor de humedad, motobomba, relé, pantalla LCD y alimentación portátil. Esta versión de la web fue mejorada para la exposición con una estética más cinematográfica, interacción real y una simulación automática del funcionamiento.

5bloques del sistema: sensor, Arduino, relé, bomba y LCD
A0 · D2 · D7pines clave de lectura, botón manual y control
0x27dirección I2C de la pantalla LCD
Logo del proyecto AguaCafé 10B
Identidad del proyecto

Agua, café, naturaleza y tecnología

El nombre y la imagen representan el cuidado de las plantas, el ahorro del agua y el uso de tecnología para resolver problemas reales.

Fundanza Grupo 10B Tonos tierra + agua Arduino UNO
Experiencia interactiva

Simulador cinematográfico y automático

Puedes mover el sensor manualmente o activar el modo demo para que el sistema simule una exposición real: la humedad sube y baja, Arduino toma decisiones, la LCD cambia y la motobomba se enciende automáticamente cuando la tierra está seca.

HUMEDAD: 560
ESTADO: SECA
Arduino UNO
CPU
Lee A0, D2 y controla D7.
Relé 5V
Estado
Activa la bomba.
Motobomba
Bomba
Riego automático.
Panel de control
Lectura560
EstadoSECA
Próximo riegoAhora
Límite seco configurado: 550
Historial

Lecturas recientes

Contexto

Importancia del proyecto

Ahorro de agua

El sistema solo riega cuando detecta sequedad, evitando desperdicios y promoviendo el uso responsable del agua.

Aprendizaje STEAM

Integra electrónica, programación, sostenibilidad y resolución de problemas en un solo proyecto práctico.

Aplicación real

Puede adaptarse a huertas, jardines, semilleros o cultivos pequeños, siendo útil más allá del aula.

Fundamentación

Misión, visión y objetivos

Misión

Diseñar y presentar un sistema de riego automático que ayude al cuidado de las plantas mediante sensores, programación y uso responsable del agua.

Visión

Convertirse en un prototipo escolar mejorable para huertas, jardines y cultivos pequeños, incorporando en el futuro energía solar e internet de las cosas.

Objetivo general

Automatizar el riego de una planta a partir de la medición de humedad del suelo, activando la motobomba solo cuando se detecta sequedad.

Objetivos específicos

  • Medir humedad del suelo con un sensor capacitivo.
  • Activar una motobomba mediante un relé.
  • Mostrar datos en una pantalla LCD.
  • Permitir riego manual con un pulsador.
  • Explicar ahorro de agua y sostenibilidad.
Electrónica

Planos electrónicos y pines exactos

Aquí se resume la conexión del prototipo con una vista visual del Arduino y una lista exacta de los pines. La protoboard se usa como distribuidor de 5V y GND.

UNO
D2 → Pulsador
D7 → IN del relé
A0 → AOUT del sensor
A4/SDA → LCD SDA
A5/SCL → LCD SCL
5V → Sensor / Relé / LCD
GND común
A0
Sensor capacitivo
AOUT del sensor → A0 del Arduino. VCC → 5V. GND → GND.
D7
Relé 1 canal
IN del relé → D7. VCC → 5V. GND → GND. En el relé, COM y NO controlan la motobomba.
D2
Pulsador manual
Un lado del pulsador → D2. El otro lado → GND. En el código se usa INPUT_PULLUP.
A4 / A5
Pantalla LCD I2C
SDA → A4, SCL → A5, VCC → 5V, GND → GND. Dirección detectada: 0x27.
COM / NO
Motobomba
La línea positiva de la fuente pasa por COM y NO del relé. El negativo va directo a la bomba. Al activarse el relé, se energiza la bomba.
Hardware real

Arduino UNO utilizado

Se mantiene la imagen del Arduino real del proyecto para que, durante la exposición, se relacione lo que se ve en el plano con el montaje físico.

  • Es el cerebro del sistema: recibe información y toma decisiones.
  • Lee la humedad del suelo por el pin A0.
  • Activa el relé por el pin D7.
  • Lee el pulsador manual por el pin D2.
  • Se comunica con la pantalla por A4/SDA y A5/SCL.
Arduino UNO del proyecto
Explorador de piezas

Componentes y función

Sensor

Sensor de humedad

Detecta si la tierra está seca o húmeda.

Control

Arduino UNO

Procesa la lectura y ejecuta la lógica.

Potencia

Relé 5V

Actúa como interruptor controlado.

Interfaz

Pantalla LCD

Muestra humedad, estado y riego.

Programación

Código final del proyecto

Este código usa la librería LiquidCrystal_PCF8574, que fue la que permitió mostrar correctamente caracteres en la pantalla LCD del montaje.

#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>

LiquidCrystal_PCF8574 lcd(0x27);

const int sensorHumedad = A0;
const int releBomba = 7;
const int botonManual = 2;

int limiteSeco = 550;

unsigned long intervaloEntreRiegos = 30000; // Exposición: 30 segundos
unsigned long intervaloLectura = 2000;
unsigned long duracionRiego = 3000;

unsigned long tiempoAnteriorLectura = 0;
unsigned long tiempoUltimoRiego = 0;

bool primerRiegoAutomatico = true;

void setup() {
  Serial.begin(9600);
  Wire.begin();

  pinMode(releBomba, OUTPUT);
  pinMode(botonManual, INPUT_PULLUP);

  digitalWrite(releBomba, HIGH);

  lcd.begin(16, 2);
  lcd.setBacklight(255);
  lcd.display();
  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("SISTEMA RIEGO");
  lcd.setCursor(0, 1);
  lcd.print("INICIANDO...");
  delay(2000);
  lcd.clear();
}

void loop() {
  unsigned long tiempoActual = millis();

  if (digitalRead(botonManual) == LOW) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("RIEGO MANUAL");
    lcd.setCursor(0, 1);
    lcd.print("BOMBA ACTIVA");

    regar();

    tiempoUltimoRiego = tiempoActual;
    primerRiegoAutomatico = false;
    delay(1000);
  }

  if (tiempoActual - tiempoAnteriorLectura >= intervaloLectura) {
    tiempoAnteriorLectura = tiempoActual;

    int humedad = analogRead(sensorHumedad);

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("HUMEDAD:");
    lcd.print(humedad);

    if (humedad > limiteSeco) {
      lcd.setCursor(0, 1);
      lcd.print("ESTADO: SECO");

      if (primerRiegoAutomatico || tiempoActual - tiempoUltimoRiego >= intervaloEntreRiegos) {
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("TIERRA SECA");
        lcd.setCursor(0, 1);
        lcd.print("REGANDO...");

        regar();

        tiempoUltimoRiego = tiempoActual;
        primerRiegoAutomatico = false;
      }
    } else {
      lcd.setCursor(0, 1);
      lcd.print("ESTADO: HUMEDA");
    }
  }
}

void regar() {
  digitalWrite(releBomba, LOW);
  delay(duracionRiego);
  digitalWrite(releBomba, HIGH);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("RIEGO");
  lcd.setCursor(0, 1);
  lcd.print("FINALIZADO");
  delay(1200);
}
Energía

Alimentación portátil y solar

El proyecto funciona con un power bank conectado por USB al Arduino. Esto lo hace portátil, seguro y práctico para presentar en una feria o exposición.

Como mejora futura, puede usarse un panel solar USB de 5V para recargar el power bank y hacerlo más sostenible.

Sostenibilidad

¿Por qué es valioso?

  • Promueve el cuidado de las plantas.
  • Reduce el desperdicio de agua.
  • Demuestra el uso responsable de la tecnología.
  • Puede crecer hacia IoT o automatización agrícola escolar.
Presentación oral

Guion de exposición

1
Saludo e introducción
Buenos días. Nuestro proyecto se llama AguaCafé 10B y consiste en un sistema de riego automático que ayuda a cuidar una planta usando sensores, programación y una motobomba.
2
Problema
Muchas veces las plantas no se riegan a tiempo o se riegan en exceso. Por eso diseñamos un sistema que detecta cuándo la tierra está seca y solo entonces activa el riego.
3
Funcionamiento
El sensor capacitivo mide la humedad del suelo, Arduino analiza el valor, el relé actúa como interruptor y la motobomba riega cuando se necesita. La pantalla LCD muestra el estado del sistema.
4
Demostración
Durante la demostración podemos mover el valor del sensor o activar el modo demo. Cuando el valor supera el límite, la LCD muestra “tierra seca” y el sistema riega automáticamente.
5
Impacto
Este proyecto enseña electrónica y programación, pero también promueve el cuidado del agua y la sostenibilidad. Gracias.
Práctica final

Mini quiz para ensayar

1. ¿Qué pin usa el sensor capacitivo?
2. ¿Para qué sirve el relé?
3. ¿Qué significa tierra seca en este proyecto?