Bu yazıyı Türkçe okuyun · Read in English
¿Qué hace este proyecto?
Construimos un sistema que mide la humedad de la tierra de una maceta y te avisa cuando se seca. Si la tierra está bastante húmeda, se enciende el LED verde. Cuando se seca, se enciende el LED rojo y el zumbador pita cada pocos segundos para decir “riégame”. El nivel de humedad también se muestra como porcentaje en el Monitor Serie.
- Edad: a partir de 10 años
- Nivel: Principiante
- Tiempo: unos 40 minutos
- Qué aprenderás: leer un sensor analógico, calibrar un sensor, convertir un valor bruto en porcentaje, encender el sensor solo cuando hace falta para que dure más
Lista de materiales
| Material | Cant. |
|---|---|
| Arduino Uno (o compatible) | 1 |
| Módulo sensor de humedad del suelo (YL-69 / FC-28 o capacitivo) | 1 |
| LED (1 verde, 1 rojo) | 2 |
| Resistencia de 220 Ω | 2 |
| Zumbador pasivo | 1 |
| Protoboard | 1 |
| Cables puente macho-macho y macho-hembra | ~10 |
| Maceta con tierra | 1 |
| Cable USB | 1 |
Conexiones

| Componente | Pin del componente | Pin de Arduino |
|---|---|---|
| Sensor de humedad | VCC | D7 (alimenta el sensor solo mientras mide) |
| Sensor de humedad | GND | GND |
| Sensor de humedad | AO (salida analógica) | A0 |
| LED verde | Pata larga (a través de 220 Ω) | D4 |
| LED rojo | Pata larga (a través de 220 Ω) | D5 |
| LED | Patas cortas | GND |
| Zumbador | + (pata larga) | D8 |
| Zumbador | – | GND |
Conectamos el VCC del sensor a D7 en lugar de a 5V. Así el sensor solo recibe alimentación mientras mide, y sus sondas metálicas se corroen mucho más despacio en la tierra.
Código
// Alarma para plantas con Arduino - ozandamci.com
const int sensorPin = A0;
const int sensorPower = 7;
const int greenLed = 4;
const int redLed = 5;
const int buzzerPin = 8;
// Calibración: mide con tu propio sensor y cambia estos valores
const int dryValue = 850; // sensor al aire / en tierra seca
const int wetValue = 400; // sensor sumergido en agua
const int waterLimit = 30; // avisa si la humedad baja del 30 %
void setup() {
pinMode(sensorPower, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(redLed, OUTPUT);
pinMode(buzzerPin, OUTPUT);
digitalWrite(sensorPower, LOW);
Serial.begin(9600);
}
int readMoisture() {
digitalWrite(sensorPower, HIGH); // enciende el sensor
delay(100); // espera a que el valor se estabilice
int value = analogRead(sensorPin);
digitalWrite(sensorPower, LOW); // apaga el sensor
Serial.print("Valor bruto: ");
Serial.print(value);
int percent = map(value, dryValue, wetValue, 0, 100);
return constrain(percent, 0, 100);
}
void loop() {
int moisture = readMoisture();
Serial.print(" Humedad: ");
Serial.print(moisture);
Serial.println(" %");
if (moisture < waterLimit) {
digitalWrite(greenLed, LOW);
digitalWrite(redLed, HIGH);
tone(buzzerPin, 1200, 150);
delay(250);
tone(buzzerPin, 1200, 150);
} else {
digitalWrite(greenLed, HIGH);
digitalWrite(redLed, LOW);
}
delay(5000); // mide cada 5 segundos
}
Paso a paso
- Conecta el sensor. Conecta la sonda en forma de horquilla al módulo pequeño. Conecta el VCC del módulo a D7, GND a GND y el pin AO a A0 (el pin DO no se usa).
- Coloca los LED. Conecta el LED verde a D4 y el rojo a D5, cada uno a través de una resistencia de 220 Ω; conecta las patas cortas a GND.
- Coloca el zumbador. Conecta su pata larga a D8 y su pata corta a GND.
- Sube el código. Elige tu placa y tu puerto y haz clic en Subir.
- Calibra. Abre el Monitor Serie. Pon en
dryValueel valor bruto que ves con el sensor al aire, y enwetValueel que ves al sumergir el sensor en un vaso de agua (solo la horquilla: ¡no mojes el módulo!). Sube el código de nuevo. - Ponlo en la maceta. Clava el sensor en la tierra de modo que la horquilla quede totalmente enterrada.
- Pruébalo. Con la tierra seca, debería encenderse el LED rojo y pitar el zumbador; unos segundos después de regar, debería encenderse el LED verde.
Solución de problemas
- La humedad siempre marca 0 % o 100 %: Los valores de calibración no coinciden con tu sensor; repite el paso 5.
- Los valores van al revés (bajan con la humedad): En algunos sensores el valor baja con la humedad y en otros sube. Si pones los valores medidos en su sitio durante la calibración, el código funciona en ambos casos.
Pruébalo tú mismo
- Añade una LDR para que el zumbador solo avise de día y calle por la noche.
- Conviértelo en un sistema que riegue la planta solo, con una pequeña bomba de agua de 5V y un relé.

Birisi “Alarma “riégame” para plantas con Arduino y sensor de humedad del suelo (materiales y código)” üzerinde düşündü