Sistema de Riego Inteligente con Arduino: Diagrama de Circuito y Código para Agricultura Eficiente
Sistema de Riego Inteligente Basado en Arduino
India es un país donde el 70 % de la población depende de la agricultura. Hoy día, cualquier trabajo puede hacerse de forma más fácil usando máquinas. La automatización aumenta la productividad y ahorra mucho tiempo y esfuerzo. El riego es la parte más importante de la agricultura para obtener máximo beneficio de la inversión en el campo. Existen varias máquinas para uso agrícola, pero no son asequibles para los agricultores por su alto coste. Solo necesitan una máquina simple y de bajo coste para fines agrícolas.
En este artículo discutimos un sistema de riego simple e inteligente diseñado con materiales de bajo coste. El objetivo: detectar humedad en el suelo y activar la bomba de agua automáticamente.
Además de la agricultura, también necesitamos riego automatizado en casa para cuidar plantas en nuestra ausencia. Aquí discutiremos el diseño de un proyecto de riego inteligente que riega plantas automáticamente mientras usted está cómodamente en casa. Puede programar horarios y tiempos de riego con este dispositivo.
Alrededor del 50 % de pérdidas de agua se deben a ineficiencias de riego tradicional que causan riego excesivo. Para superarlo, diseñamos un sistema que comprueba humedad en el suelo y riega automáticamente. Cuando el circuito detecta humedad suficiente, apaga la bomba.
También usamos módulo GSM para informarle regularmente sobre humedad del suelo y estado de la bomba. Proyecto muy fiable y útil para eliminar mano de obra en riego de campos.
Como se dijo, usamos sensor de humedad de suelo. Antes de empezar, veamos los componentes principales para entender claramente el funcionamiento.
- Proyecto Relacionado: Sistema Automático de Riego de Plantas – Circuito, Código e Informe
Sensor de Humedad de Suelo
El sensor tiene dos sondas para medir contenido volumétrico de agua en el suelo. Permiten paso de corriente a través del suelo y obtienen el valor de humedad.
Con agua en el suelo, hay menos resistencia y el suelo conduce electricidad → sensor detecta humedad alta. Suelo seco es mal conductor; con poca agua conduce menos electricidad → mayor resistencia → humedad baja.

Especificaciones Técnicas:
- Voltaje de entrada – 3,3–5 V
- Voltaje de salida – 0–4,2 V
- Corriente de entrada – 35 mA
- Salida – Analógica/Digital
Pinout del Sensor de Humedad:
- Vcc – Alimentación
- A0 – Salida analógica
- D0 – Salida digital
- GND – Tierra
Proyecto Relacionado: Circuito Alarma de Lluvia – Detector de Nieve, Agua y Lluvia
El sensor consta de dos placas conductoras que funcionan como sondas. Primera placa a +5 V; segunda directamente a tierra. La salida se toma del primer terminal del sensor.
Funciona por principio de circuito abierto/cerrado: suelo seco = circuito abierto (sin corriente); suelo húmedo = circuito cerrado (corriente fluye entre terminales). Hemos interfazado el sensor con Arduino UNO. Discutiremos interfazado y código de simulación después.
- Proyecto Relacionado: Indicador de Nivel de Agua – Dos Proyectos Simples
Aplicaciones del Sensor de Humedad:
Uso en jardines y céspedes domésticos para eliminar riego manual. Uso en plantas de interior para riego regular.
La segunda parte clave es el módulo GSM usado con Arduino para comunicación.
Módulo GSM TTL SIM800:
Usamos módulo GSM SIM800 interfazado con Arduino para enviar/recibir mensajes. Un módulo GSM es básicamente un modem GSM conectado a PCB para obtener salidas. En nuestro proyecto, interfazamos GSM con Arduino y tomamos salida TTL. Este módulo cuadribanda trabaja en frecuencias GSM 850 MHz, EGSM 900 MHz, DCS 1800 MHz y PCS 1900 MHz. Módulos GSM son altamente compatibles con Arduino y microcontroladores. TTL SIM800 ensamblado en 24×24×3 mm para caber en casi cualquier dispositivo (smartphone, PDA, etc.).

En Asia, la mayoría de operadores móviles operan en banda 900 MHz. Módulos GSM se fabrican conectando un modem GSM a PCB y proporcionando salida RS232. Verifique requerimientos de alimentación del GSM en su proyecto antes de elegir módulo adecuado. Elija siempre pines con salida TTL para interfaz directo con Arduino sin inconvenientes.
- Proyecto Relacionado: Sistema de Domótica Inteligente – Circuito y Código Fuente
Especificaciones Técnicas:
- Cuadribanda
- Voltaje requerido: 9–12 V DC
- Alimentación: regulator switching
- Potencia requerida: 1 mA
- Temperatura operación: -40 a +85 °C
Características del Módulo GSM 800:
- Esquema codificación: CS-1, CS-2, CS-3, CS-4 Tx power
- Bajo consumo
- Canales de audio: entrada micrófono y salida receptor
Ahora tiene buen conocimiento del sensor de humedad y módulo GSM. Siguiente paso: interfazar ambos con microcontrolador Arduino.
- Artículo Relacionado: Interruptor Automático (Circuit Breaker) Inteligente WiFi – Construcción, Instalación y Funcionamiento
Placa Arduino UNO
Antes de detallar Arduino UNO, hay varias versiones en mercado: Arduino Mega, Arduino Due, etc. Usamos Arduino UNO por ser el más barato y fácil de interfazar. Tiene 14 pines digitales I/O y 6 analógicos. Soporta comunicación serie por pines TX/RX. Gran ventaja: puede optimizar y modificar software y placa según sus necesidades.
Interfazado Sensor Humedad y Módulo GSM con Arduino
El interfazado es simple. Siga el diagrama de circuito.
- Conecte pin analógico del sensor de humedad al pin analógico A1 de Arduino. VCC y GND del sensor a 5 V y GND de Arduino.
- Inserte tarjeta SIM en el módulo. Conecte módulo GSM a alimentación: usamos módulo 12 V (si tiene 5 V, aliméntelo directo del 5 V de Arduino). Conecte fuente 12 V como en diagrama. GND del módulo a GND de Arduino. Pin ST del módulo a pin digital 9 de Arduino; pin SR a pin digital 10. También conectamos LCD para mostrar humedad. Conecte LCD como en diagrama y potenciómetro para contraste.
- Conecte relé y transistor usando diagrama de driver de relé.
Componentes necesarios:
- Placa Arduino UNO
- Módulo GSM
- Cables de conexión
- Transistores
- Display LCD 16×2
- Fuente de alimentación
- Relé
- Bomba de agua
- Sensor de humedad de suelo
- Resistencias
- Conector terminal
- Regulador de voltaje

Explicación del Código de Programación
La parte de programación es muy fácil. Primero, definimos librerías para LCD y sensor de humedad. Luego definimos pines transmisor y receptor del sensor conectados a pines digitales 9 y 10:
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(9,10);
Definimos variables para usar en lugar de números de pin:
int M_Sensor = A0;
int W_led = 7;
int P_led = 13;
Definimos pines LCD conectados a Arduino:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
En setup(), inicializamos LCD con lcd.begin() y sensor con mySerial.begin(). Pasamos 16,2 porque LCD tiene 16 columnas y 2 filas (usamos todo el LCD). Inicializamos y definimos modo de pin digital 13 como salida (LED estado bomba y relé) y pin 7 como entrada (LED nivel agua).
void setup() {
lcd.begin(16, 2);
mySerial.begin(9600);
pinMode(7, INPUT);
pinMode(13, OUTPUT);
}
En loop(), limpiamos LCD. Leemos valor del sensor y guardamos en variable Moist:
void loop() {
lcd.clear();
int Moist = analogRead(M_Sensor);
Condiciones para suelo seco, húmedo y encharcado:
if (Moist > 700) { // suelo seco
lcd.setCursor(11,0); lcd.print("DRY");
lcd.setCursor(11,1); lcd.print("SOIL");
if (digitalRead(W_led) == 1) { // hay agua en depósito
digitalWrite(13, HIGH);
lcd.setCursor(0,1); lcd.print("PUMP:ON");
mySerial.println("AT+CMGF=1"); delay(1000);
mySerial.println("AT+CMGS=\"NUMERO\"\r"); delay(1000);
mySerial.println("PUMP:ON"); delay(100);
mySerial.println((char)26); delay(1000);
} else {
digitalWrite(13, LOW);
lcd.setCursor(0,1); lcd.print("PUMP:OFF");
mySerial.println("AT+CMGF=1"); delay(1000);
mySerial.println("AT+CMGS=\"NUMERO\"\r"); delay(1000);
mySerial.println("PUMP:OFF"); delay(100);
mySerial.println((char)26); delay(1000);
}
}
if (Moist >= 300 && Moist <= 700) { // suelo húmedo
lcd.setCursor(11,0); lcd.print("MOIST");
lcd.setCursor(11,1); lcd.print("SOIL");
digitalWrite(13, LOW);
lcd.setCursor(0,1); lcd.print("PUMP:OFF");
mySerial.println("AT+CMGF=1"); delay(1000);
mySerial.println("AT+CMGS=\"NUMERO\"\r"); delay(1000);
mySerial.println("PUMP:OFF"); delay(100);
mySerial.println((char)26); delay(1000);
}
if (Moist < 300) { // suelo encharcado
lcd.setCursor(11,0); lcd.print("SOGGY");
lcd.setCursor(11,1); lcd.print("SOIL");
digitalWrite(13, LOW);
lcd.setCursor(0,1); lcd.print("PUMP:OFF");
mySerial.println("AT+CMGF=1"); delay(1000);
mySerial.println("AT+CMGS=\"NUMERO\"\r"); delay(1000);
mySerial.println("PUMP:OFF"); delay(100);
mySerial.println((char)26); delay(1000);
}
delay(1000);
}
- Artículo Relacionado: Fuente de Alimentación Variable con Arduino UNO – Circuito y Código
Funcionamiento del Sistema de Riego Automático
Arduino controla todo el circuito. Sin humedad en suelo, hay conducción entre sondas del sensor → transistor permanece ON, pin 13 de Arduino LOW. Arduino envía mensaje: "Humedad normal. Bomba APAGADA". Bomba en OFF.
Sin humedad en suelo, transistor Q2 OFF, pin D7 HIGH. Arduino arranca bomba y envía mensaje: "Baja humedad detectada. Bomba ENCENDIDA". Bomba se apaga automáticamente cuando sensor detecta humedad suficiente.
- Proyecto Relacionado: Interruptor Automático de Luz de Baño – Diagrama y Funcionamiento
Características del Sistema de Riego Inteligente
- Se adapta fácilmente a condiciones climáticas y detecta humedad para operar bomba.
- Sensor detecta alto flujo de agua por humedad en suelo y apaga/enciende automáticamente.
- Gestión remota del flujo de agua sin ir al campo.
- LCD muestra datos de humedad regularmente para registro histórico.
Proyecto Relacionado: Timbre Automático con Detección de Objetos por Arduino
Conclusión
El sistema de riego inteligente es de gran utilidad en productividad y fiabilidad. Fácil de diseñar y ensamblar con componentes electrónicos accesibles. Arduino es muy popular y fácil de interfazar. Usamos sensor de humedad para detectar humedad en suelo.
Módulo GSM informa al usuario enviando mensajes al móvil. Hemos descrito funcionamiento y método de interfazado de todos los componentes con Arduino. Esperamos que ahora pueda diseñar este sistema de riego inteligente de bajo coste para ahorrar agua en su vida diaria.
Proyectos Relacionados:
- Cómo Hacer un Circuito Triplicador de Voltaje
- Ideas de Proyectos Finales de Electrónica
- Ideas de Proyectos de Ingeniería Electrónica
- Ideas de Mini Proyectos Electrónicos Simples para Principiantes
- Más Proyectos de Ingeniería Eléctrica y Electrónica
Tecnología Industrial
- Purificador de aire inteligente con Arduino Yun y Sharp Plasmacluster (IoT AWS)
- Sensor Inalámbrico de Humedad de Suelo con Helium y DFRobot – Cuidado de Plantas en Tiempo Real
- Dominar el Análisis de Circuitos RLC en Serie: De la Impedancia a la LKT
- Circuitos Temporizadores con 555 para Intervalos de 1-15 Minutos: Diseño, Construcción y Aplicaciones
- Sistema Automático de Riego para Plantas: Diseño de Circuito, Código y Reporte de Proyecto
- Sensor Láser de Distancia VL53L0X: Pinout, Circuito, Especificaciones y Aplicaciones Prácticas
- Sensor Digital de Humedad y Temperatura HDC2080: Diagrama, Especificaciones y Aplicaciones
- Sensores de Humedad de Suelo: Funcionamiento y Aplicaciones Prácticas
- Transductores Piezoeléctricos Explicados: Principios, Diseño de Circuito y Aplicaciones Prácticas
- Cámaras digitales mejoradas con IA revolucionan la monitorización de humedad del suelo
- Sistema de Caracterización de Circuitos Microstrip y Materiales de Precisión para Películas Superconductoras