Toprak Nem Sensörü: Arduino ile Otomatik Bitki Sulama
Toprak nem sensörü nasıl çalışır? Rezistif ve kapasitif sensör farkı, Arduino bağlantısı, kuru ve ıslak değerle kalibrasyon, paslanmayı önleme, röle ve pompa ile otomatik sulama, ESP32 ve Pico kullanımı.
Toprak nem sensörü, saksıdaki ya da bahçedeki toprağın ne kadar ıslak olduğunu ölçen basit bir sensördür. Bitkin susadığında haber veren bir uyarı ışığından, tatildeyken çiçeklerini kendiliğinden sulayan bir sisteme kadar birçok projenin temelidir. Ucuzdur, Arduino'ya üç kabloyla bağlanır ve bir röle ile küçük bir pompa eklediğinde gerçekten işe yarayan bir otomasyon kurarsın.

Toprak nem sensörü nasıl çalışır?
Toprağın içindeki su, toprağın elektriği iletme ve elektrik yükü depolama özelliklerini değiştirir. Rezistif sensörler toprağa batırılan iki metal uç arasındaki direnci ölçer: toprak ıslandıkça direnç düşer. Kapasitif sensörler ise kaplamalı bir elektrotun çevresindeki kapasitansı ölçer; metal uç toprağa hiç değmez. Çoğu modülde toprak kuruyken okunan değer yüksek, ıslakken düşüktür.
| Özellik | Rezistif (YL-69, FC-28) | Kapasitif (v1.2) |
|---|---|---|
| Ölçtüğü şey | İki metal uç arasındaki direnç | Elektrot çevresindeki kapasitans |
| Açıkta metal | Var | Yok (kaplamalı) |
| Paslanma | Sürekli beslenirse birkaç haftada aşınır | Çok dayanıklıdır |
| Çıkış | Analog (AO) ve dijital (DO) | Analog |
| Fiyat | Çok ucuz | Biraz daha pahalı |
| Önerilen kullanım | Kısa denemeler | Kalıcı saksı ve bahçe projeleri |
Pin bağlantısı
| Sensör pini | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| VCC | D7 (yalnızca ölçerken beslemek için) ya da 5V | GPIO 25 ya da 3V3 | GP15 ya da 3V3 |
| GND | GND | GND | GND |
| AO (AOUT) | A0 | GPIO 34 | GP26 |
| DO | D2 (isteğe bağlı) | İsteğe bağlı | İsteğe bağlı |
Arduino ile nem okumak ve kalibrasyon
Her sensörün ve her toprağın değerleri farklıdır, bu yüzden önce kendi sensörünü kalibre et: sensör havadayken (tamamen kuru) ve bir bardak suya batırılmışken (tamamen ıslak) okunan değerleri not al. Sonra map() ile bu aralığı 0–100 arası bir yüzdeye çevirirsin. Kodda DRY ve WET değerlerini kendi ölçümlerinle değiştir:
1const int SENSOR_PIN = A0;
2const int POWER_PIN = 7; // sensörü yalnızca ölçerken besle / power only while measuring
3const int DRY = 850; // havadayken okunan / reading in air (kendin ölç / measure yours)
4const int WET = 380; // sudayken okunan / reading in water (kendin ölç / measure yours)
5
6void setup() {
7 pinMode(POWER_PIN, OUTPUT);
8 Serial.begin(9600);
9}
10
11int readMoisture() {
12 digitalWrite(POWER_PIN, HIGH);
13 delay(10); // değerin oturmasını bekle / let it settle
14 int raw = analogRead(SENSOR_PIN);
15 digitalWrite(POWER_PIN, LOW);
16 return constrain(map(raw, DRY, WET, 0, 100), 0, 100); // % nem / % moisture
17}
18
19void loop() {
20 int moisture = readMoisture();
21 Serial.print("Toprak nemi / Soil moisture: %");
22 Serial.println(moisture);
23 delay(2000);
24}Otomatik sulama: röle ve pompa

Şimdi ölçümü gerçek bir işe çevirelim: toprak nemi yüzde 30'un altına düşünce pompa 4 saniye çalışsın, sonra suyun toprağa yayılması için 1 dakika beklensin ve ancak ondan sonra yeniden ölçülsün. Bu bekleme, sensörün henüz ıslanmadığı için pompanın durmadan çalışıp saksıyı taşırmasını önler. Pompa Arduino pininden doğrudan beslenemez; bir röle ya da MOSFET üzerinden sürülür. Röle bağlantısı için Röle Modülü Nedir? yazısına bakabilirsin.
1const int SENSOR_PIN = A0, POWER_PIN = 7, PUMP_PIN = 8; // PUMP_PIN → röle IN / relay IN
2const int DRY = 850, WET = 380;
3const int START_BELOW = 30; // %30'un altında sula / water below 30%
4const unsigned long PUMP_MS = 4000; // her seferde 4 sn / 4 s per run
5const unsigned long SOAK_MS = 60000; // suyun yayılması için bekle / wait for the water to soak in
6
7int readMoisture() {
8 digitalWrite(POWER_PIN, HIGH);
9 delay(10);
10 int raw = analogRead(SENSOR_PIN);
11 digitalWrite(POWER_PIN, LOW);
12 return constrain(map(raw, DRY, WET, 0, 100), 0, 100);
13}
14
15void setup() {
16 pinMode(POWER_PIN, OUTPUT);
17 pinMode(PUMP_PIN, OUTPUT);
18 digitalWrite(PUMP_PIN, HIGH); // aktif LOW röle: kapalı başla / active-LOW relay: start off
19}
20
21void loop() {
22 if (readMoisture() < START_BELOW) {
23 digitalWrite(PUMP_PIN, LOW); // pompayı çalıştır / pump on
24 delay(PUMP_MS);
25 digitalWrite(PUMP_PIN, HIGH); // pompayı durdur / pump off
26 delay(SOAK_MS); // tekrar ölçmeden önce bekle / wait before measuring again
27 }
28 delay(5000);
29}ESP32 ve Raspberry Pi Pico ile toprak nemi
ESP32'de sensörü Wi-Fi açıkken de çalışan ADC1 pinlerinden birine (GPIO 32–39) bağla; değerler 0–4095 arasında olacağı için kalibrasyonu yeniden yap. ESP32 ile nemi telefonuna bildirim olarak gönderebilir, derin uyku moduyla saatte bir ölçüm yapıp pille aylarca çalışan bir saksı sensörü kurabilirsin. Pico'da MicroPython ile okuma şöyledir:
1from machine import ADC, Pin
2import time
3
4sensor = ADC(26) # GP26 → AOUT
5power = Pin(15, Pin.OUT) # sensörü yalnızca ölçerken besle / power only while measuring
6DRY, WET = 52000, 24000 # kendi değerlerinle değiştir / replace with your readings
7
8def moisture():
9 power.value(1)
10 time.sleep_ms(10)
11 raw = sensor.read_u16()
12 power.value(0)
13 pct = (DRY - raw) * 100 // (DRY - WET)
14 return max(0, min(100, pct))
15
16while True:
17 print("Toprak nemi / Soil moisture: %", moisture())
18 time.sleep(2)Toprak nemi kaç olmalı?
| Bitki türü | Yaklaşık hedef nem |
|---|---|
| Kaktüs ve sukulentler | %10–30 |
| Çoğu ev bitkisi | %40–60 |
| Domates, biber ve sebzeler | %60–80 |
| Eğrelti otu ve nem seven bitkiler | %70–90 |
Bu yüzdeler sensörünün kendi kuru-ıslak aralığına göredir, bilimsel anlamda toprağın su içeriği değildir. En doğru eşik, bitkin sulanmaya ihtiyaç duyduğunda sensörün gösterdiği değeri birkaç gün gözlemleyerek bulunur.
Toprak nem sensörü ile proje fikirleri
- Otomatik saksı sulama: Tatile gittiğinde bile çiçeklerini kendiliğinden sulayan bir sistem.
- "Susadım" uyarısı: Toprak kuruyunca yanan bir LED ya da öten bir buzzer.
- Telefona bildirim: ESP32 ile nem düşünce Telegram'dan mesaj gönder.
- Çok saksılı sulama: Her saksıya bir sensör ve küçük bir valf ekleyerek bitkileri ayrı ayrı sula.
- Mini sera istasyonu: DHT11 ile hava nemini, LDR ile ışığı da ölçüp hepsini bir ekranda topla.
- Akıllı bahçe: Yağmur sensörü yağış algıladığında sulamayı otomatik olarak atla.
Sık yapılan hatalar ve çözümleri
- Değer hep 1023 ya da hep 0: AO yerine DO pini okunuyor, besleme yok ya da sensör kartına giden kablo kopmuş.
- Uçlar paslandı ve değerler saçmaladı: Rezistif sensör sürekli beslenmiş; sensörü pinden besle ya da kapasitif modele geç.
- Değerler zamanla kayıyor: Toprak sıkışınca ya da gübrelenince iletkenlik değişir; ara sıra yeniden kalibre et.
- Pompa durmuyor: Röle aktif LOW ve kodda HIGH/LOW ters ya da ıslanma beklenmeden yeniden ölçülüyor; ölçümler arasına bekleme ekle.
- Kapasitif sensör garip değerler veriyor: Üst kısmındaki elektronik ıslanmış; kartı su geçirmez hale getir.
- ESP32'de Wi-Fi açılınca okuma bozuluyor: Sensör ADC2 pinine bağlı; GPIO 32–39 arasındaki bir pine taşı.
Toprak nem sensörü, ölçmekten bir adım öteye geçip gerçek dünyada bir şeyi değiştiren ilk projen olabilir. BlueGrays uygulamasında akıllı sulama istasyonu ve ESP32 ile akıllı bitki sulama sistemi projelerini devre şemaları ve kodlarıyla adım adım bulabilirsin.
Sıkça sorulan sorular
Kapasitif mi rezistif toprak nem sensörü mü almalıyım?
Birkaç günlük denemeler için rezistif sensör yeterlidir. Saksıda aylarca kalacak bir projede kapasitif sensör seç; metal ucu açıkta olmadığı için paslanmaz ve değerleri zamanla daha az kayar.
Toprak nem sensörü ne kadar dayanır?
Sürekli beslenen bir rezistif sensörün uçları birkaç haftada belirgin şekilde aşınır. Yalnızca ölçüm anında beslenirse aylarca kullanılabilir. Kapasitif sensörler ise elektroniği sudan korunduğu sürece yıllarca çalışabilir.
Neden toprak kuruyken değer yüksek, ıslakken düşük?
Çoğu modül sensörü bir gerilim bölücünün parçası olarak bağlar; toprak ıslandıkça direnç ya da kapasitans değişir ve analog pindeki gerilim düşer. Bu yüzden kodda map(raw, KURU, ISLAK, 0, 100) ile aralığı ters çevirerek yüzde elde edilir.
Toprak nem sensörü ne kadar derine gömülmeli?
Sensörü bitkinin köklerinin bulunduğu bölgeye, saksı kenarından uzağa yerleştir. Kapasitif sensörlerde üzerindeki çizgiye kadar gömmek yeterlidir; elektronik kısmın toprağa ya da suya değmemesi gerekir.
Su pompası doğrudan Arduino'ya bağlanabilir mi?
Hayır. Küçük pompalar bile 100–300 mA çeker ve Arduino pini bunu veremez. Pompayı bir röle modülüyle ya da bir MOSFET ve ters gerilim diyotuyla sür; pompayı ayrı bir güç kaynağından besle ve GND'leri birleştir.
Bir Arduino ile kaç saksı izleyebilirim?
Arduino Uno'nun 6 analog girişi olduğu için 6 sensör doğrudan okunabilir. Daha fazlası için CD74HC4067 gibi 16 kanallı bir analog çoklayıcı ya da ADS1115 gibi ek bir ADC modülü kullanılabilir.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
Akıllı Sulama İstasyonu
İki adet 18650 pil ve LM2596 regülatör ile Arduino'yu yormadan 7/24 çalışan otonom bitki sulama sistemi. Toprak nemini sürekli ölçerek su motorunu otomatik yönetir ve sistemin anlık durumunu üzerindek

ESP 32 Akıllı Bitki Sulama Sistemi
Bu projede ESP32 ve toprak nem sensörü kullanılarak otomatik bitki sulama sistemi geliştirilmiştir. Sensör toprağın nem seviyesini sürekli ölçer. Nem belirlenen seviyenin altına düştüğünde ESP32 röleyi aktif ederek su pompasını çalıştırır ve bitkiyi sular. Toprak yeterince nemli olduğunda pompa otomatik olarak durur. Bu proje sayesinde bitkiler düzenli olarak sulanabilir ve su tasarrufu sağlanabilir. _______________________________ Bağlantılar Nem Sensörü Sensör ESP32 VCC 3.3V GND GND AO GPIO34

DHT11 İle Sıcaklık Ve Nem
DHT11 sensörü ile ortam sıcaklığı ve nem değerini ölçerek I2C LCD ekranda gösteren proje. Dijital sıcaklık/nem sensörü kullanımını öğretir.

ESP32 DHT22 Sıcaklık ve Nem (LCD Ekranlı)
DHT22 sensörü ile ortam sıcaklığını ve nem oranını ölçüp 16x2 I2C LCD ekranda gerçek zamanlı olarak gösteren bir projedir. Adafruit DHT kütüphanesi kullanılarak tek kablo (one-wire) protokolü ile sensörden veri okunur. Bu proje, IoT hava istasyonu, akıllı ev otomasyonu veya seralarda ortam takip sistemlerinin temelini oluşturur. ESP32'nin GPIO 4 pini üzerinden DHT22 ile haberleşme sağlanır.

220V Ampülü Buton(Push) İle Yakma
Röle modülü kullanarak 220V ampulü butonla anlık (push) olarak kontrol eden proje. Röle ile yüksek gerilim anahtarlama temellerini öğretir.

ESP32 Akıllı Aydınlatma (PIR + LDR + Röle + OLED)
ESP32, PIR hareket sensörü, LDR ışık sensörü ve röle modülü ile evinin koridorunu, tuvaletini veya kilerini akıllı aydınlatmaya dönüştürüyoruz. Klasik "karanlıkta hareket algılanınca ışık yansın" senaryosunu inşa ediyoruz — ortam aydınlıksa hareket olsa bile ışık yanmaz, böylece gündüz gereksiz yere yanmaz ve enerji tasarrufu sağlanır. Işık 30 saniye yanık kalır; hareket devam ederse timer otomatik sıfırlanır ve süre uzar. SSD1306 OLED ekranda büyük fontlarla durum (AÇIK / GÜNDÜZ / BEKLE), geri

ESP32 Sıcaklık Loglayıcı (DHT22 + DS1307 RTC + microSD + OLED)
ESP32 ile zamanlı sıcaklık ve nem kayıt sistemi kur! Bu projede DHT22 sensörü ile her 10 saniyede sıcaklık/nem okuyup DS1307 RTC modülünden aldığın gerçek zaman etiketiyle microSD karta CSV formatında kaydediyoruz. OLED ekranda büyük font ile son sıcaklık değeri, nem yüzdesi, timestamp ve toplam kayıt sayısı canlı gösterilir. SD kart üzerindeki `/temp_log.csv` dosyası Excel/Google Sheets/Python pandas ile açılıp analiz edilebilir — sera monitörü, ev/oda sıcaklık takibi, laboratuvar veri toplama,

ESP32 HTTPClient + Hava Durumu API (LCD Ekranlı)
Bu projede ESP32 ile internet üzerinden hava durumu API'sine (wttr.in) `HTTPClient.h` kullanarak REST API çağrısı yapıyoruz. ArduinoJson v7 ile dönen JSON cevabını parse edip şehir, sıcaklık, nem, hava durumu ve rüzgar bilgilerini I2C LCD ekranda hem Türkçe hem İngilizce gösteriyoruz. wttr.in ücretsizdir, API key gerektirmez — herhangi bir şehir ismini yazarak o şehrin anlık hava durumunu çekebilirsiniz. 30 dakikada bir otomatik güncelleme, LED ile her ekran için farklı görsel feedback ve eksiks
Diğer yazılar
Toprak nem sensörünün türlerini, Arduino'ya bağlamayı, ölçümü yüzdeye çevirmeyi, paslanmayı önlemeyi ve bitkilerini kendiliğinden sulayan bir sistemi adım adım öğren.

