Alarma “riégame” para plantas con Arduino y sensor de humedad del suelo (materiales y código)

Arduino ile "Beni Sula" Diyen Bitki Uyarıcı – Toprak Nem Sensörü projesi kapak görseli

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

MaterialCant.
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 pasivo1
Protoboard1
Cables puente macho-macho y macho-hembra~10
Maceta con tierra1
Cable USB1

Conexiones

Esquema de conexiones de la alarma para plantas con Arduino y sensor de humedad del suelo
ComponentePin del componentePin de Arduino
Sensor de humedadVCCD7 (alimenta el sensor solo mientras mide)
Sensor de humedadGNDGND
Sensor de humedadAO (salida analógica)A0
LED verdePata larga (a través de 220 Ω)D4
LED rojoPata larga (a través de 220 Ω)D5
LEDPatas cortasGND
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

  1. 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).
  2. 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.
  3. Coloca el zumbador. Conecta su pata larga a D8 y su pata corta a GND.
  4. Sube el código. Elige tu placa y tu puerto y haz clic en Subir.
  5. Calibra. Abre el Monitor Serie. Pon en dryValue el valor bruto que ves con el sensor al aire, y en wetValue el 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.
  6. Ponlo en la maceta. Clava el sensor en la tierra de modo que la horquilla quede totalmente enterrada.
  7. 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é.

Vídeo

La narración está en turco. Hay subtítulos en español: pulsa CC en el vídeo.

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

Bir Cevap Yazın