Arduino ile “Beni Sula” Diyen Bitki Uyarıcı – Toprak Nem Sensörü (Malzemeler ve Kodlar)

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

Read in English · Leer en español

Proje ne yapıyor?

Saksıdaki toprağın nemini ölçen ve toprak kuruyunca sizi uyaran bir sistem yapıyoruz. Toprak yeterince nemliyse yeşil LED yanar. Toprak kuruduğunda kırmızı LED yanar ve buzzer belli aralıklarla öterek “beni sula” der. Nem oranı yüzde olarak Seri Port Ekranı’nda da görünür.

  • Yaş grubu: 10 yaş ve üzeri
  • Seviye: Başlangıç
  • Süre: Yaklaşık 40 dakika
  • Bu projede öğrenecekleriniz: Analog sensör okumak, sensör kalibrasyonu, ham değeri yüzdeye çevirmek, sensör ömrünü uzatmak için güç kontrolü

Malzeme listesi

MalzemeAdet
Arduino Uno (veya muadili)1
Toprak nem sensörü modülü (YL-69 / FC-28 veya kapasitif)1
LED (1 yeşil, 1 kırmızı)2
220 Ω direnç2
Pasif buzzer1
Breadboard1
Erkek-erkek ve erkek-dişi jumper kablo~10
Saksı ve toprak1
USB kablo1

Devre bağlantıları

Arduino ile
BileşenBileşen piniArduino pini
Nem sensörüVCCD7 (sensörü sadece ölçüm sırasında beslemek için)
Nem sensörüGNDGND
Nem sensörüAO (analog çıkış)A0
Yeşil LEDUzun bacak (220 Ω üzerinden)D4
Kırmızı LEDUzun bacak (220 Ω üzerinden)D5
LED’lerKısa bacaklarGND
Buzzer+ (uzun bacak)D8
Buzzer–GND

Sensörün VCC’sini 5V yerine D7’ye bağlıyoruz. Böylece sensör sadece ölçüm yaparken elektrik alır ve metal uçları toprakta çok daha geç paslanır.

Kodlar

// Arduino Bitki Uyarıcı - ozandamci.com

const int sensorPin = A0;
const int sensorGuc = 7;
const int yesilLed = 4;
const int kirmiziLed = 5;
const int buzzerPin = 8;

// Kalibrasyon: kendi sensörünüzle ölçüp değiştirin
const int kuruDeger = 850;   // sensör havadayken / kuru topraktayken
const int islakDeger = 400;  // sensör suya batırılmışken
const int sulamaSiniri = 30; // nem %30'un altına düşünce uyar

void setup() {
  pinMode(sensorGuc, OUTPUT);
  pinMode(yesilLed, OUTPUT);
  pinMode(kirmiziLed, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  digitalWrite(sensorGuc, LOW);
  Serial.begin(9600);
}

int nemOlc() {
  digitalWrite(sensorGuc, HIGH); // sensörü aç
  delay(100);                    // değerin oturmasını bekle
  int deger = analogRead(sensorPin);
  digitalWrite(sensorGuc, LOW);  // sensörü kapat

  Serial.print("Ham deger: ");
  Serial.print(deger);

  int yuzde = map(deger, kuruDeger, islakDeger, 0, 100);
  return constrain(yuzde, 0, 100);
}

void loop() {
  int nem = nemOlc();
  Serial.print("  Nem: %");
  Serial.println(nem);

  if (nem < sulamaSiniri) {
    digitalWrite(yesilLed, LOW);
    digitalWrite(kirmiziLed, HIGH);
    tone(buzzerPin, 1200, 150);
    delay(250);
    tone(buzzerPin, 1200, 150);
  } else {
    digitalWrite(yesilLed, HIGH);
    digitalWrite(kirmiziLed, LOW);
  }

  delay(5000); // 5 saniyede bir ölç
}

Adım adım yapılışı

  1. Sensörü bağlayın. Sensörün çatal kısmını küçük modüle bağlayın. Modülün VCC’sini D7’ye, GND’sini GND’ye, AO pinini A0’a bağlayın (DO pinini kullanmıyoruz).
  2. LED’leri takın. Yeşil LED’i 220 Ω üzerinden D4’e, kırmızı LED’i D5’e bağlayın; kısa bacakları GND’ye götürün.
  3. Buzzer’ı takın. Uzun bacağını D8’e, kısa bacağını GND’ye bağlayın.
  4. Kodu yükleyin. Kartınızı ve portu seçip Yükle‘ye basın.
  5. Kalibre edin. Seri Port Ekranı‘nı açın. Sensör havadayken görünen ham değeri kuruDeger yerine, sensörü bir bardak suya (sadece çatal kısmı, modül ıslanmasın!) batırınca görünen değeri islakDeger yerine yazın. Kodu tekrar yükleyin.
  6. Saksıya yerleştirin. Sensörü toprağa, çatal kısmı tamamen gömülecek şekilde batırın.
  7. Test edin. Kuru toprakta kırmızı LED yanıp buzzer ötmeli; toprağı suladıktan birkaç saniye sonra yeşil LED yanmalı.

Sorun giderme

  • Nem hep %0 veya %100 gösteriyor: Kalibrasyon değerleri sensörünüze uymuyor; 5. adımı tekrarlayın.
  • Değerler ters çalışıyor (ıslakken düşük): Bazı sensörlerde ıslakken değer düşer, bazılarında yükselir. Kalibrasyonda ölçtüğünüz değerleri doğru yerlere yazdığınızda kod iki durumda da çalışır.

Kendiniz deneyin

  • Buzzer’ın gece ötmemesi için bir LDR ekleyip sadece aydınlıkta uyarı versin.
  • Küçük bir 5V su pompası ve röle ile toprak kuruyunca kendiliğinden sulayan bir sisteme dönüştürün.

Videolu anlatım

Projenin yapılışını adım adım videodan da izleyebilirsiniz. Diğer projeler için Arduino Projeleri oynatma listesine göz atın, yeni videolardan haberdar olmak için YouTube kanalıma abone olabilirsiniz.

Videolu anlatım: Arduino ile “Beni Sula” Diyen Bitki Uyarıcı

Bir önceki proje: Arduino ile Reaksiyon Süresi Ölçme Oyunu

Daha fazla proje için: Bu ve benzeri projeleri adım adım anlattığım Arduino Projeleri kitabıma göz atabilirsiniz.

“Arduino ile “Beni Sula” Diyen Bitki Uyarıcı – Toprak Nem Sensörü (Malzemeler ve Kodlar)” için 3 yorum

Bir Cevap Yazın