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
| Malzeme | Adet |
|---|---|
| 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 buzzer | 1 |
| Breadboard | 1 |
| Erkek-erkek ve erkek-dişi jumper kablo | ~10 |
| Saksı ve toprak | 1 |
| USB kablo | 1 |
Devre bağlantıları

| Bileşen | Bileşen pini | Arduino pini |
|---|---|---|
| Nem sensörü | VCC | D7 (sensörü sadece ölçüm sırasında beslemek için) |
| Nem sensörü | GND | GND |
| Nem sensörü | AO (analog çıkış) | A0 |
| Yeşil LED | Uzun bacak (220 Ω üzerinden) | D4 |
| Kırmızı LED | Uzun bacak (220 Ω üzerinden) | D5 |
| LED’ler | Kısa bacaklar | GND |
| 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ışı
- 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).
- 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.
- Buzzer’ı takın. Uzun bacağını D8’e, kısa bacağını GND’ye bağlayın.
- Kodu yükleyin. Kartınızı ve portu seçip Yükle‘ye basın.
- Kalibre edin. Seri Port Ekranı‘nı açın. Sensör havadayken görünen ham değeri
kuruDegeryerine, sensörü bir bardak suya (sadece çatal kısmı, modül ıslanmasın!) batırınca görünen değeriislakDegeryerine yazın. Kodu tekrar yükleyin. - Saksıya yerleştirin. Sensörü toprağa, çatal kısmı tamamen gömülecek şekilde batırın.
- 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.
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