Arduino Toprak Nem Alarmı Projesi: Toprak Nem Sensörü ve Aktif Buzzer Kullanımı
Arduino Toprak Nem Alarmı, toprağın nem durumunu analog olarak ölçen ve toprak kuruduğunda buzzer ile sesli uyarı veren basit ama öğretici bir Arduino projesidir. Bu proje, özellikle bitki sulama takibi, sera otomasyonu, akıllı saksı uygulamaları ve temel sensör okuma mantığını öğrenmek için uygundur.
Bu uygulamada Arduino Toprak Nem Sensörü ile topraktan analog değer okunur. Okunan değer belirlenen eşik değerinin üzerine çıktığında sistem toprağı kuru kabul eder ve buzzer üzerinden uyarı verir. Böylece kullanıcı, bitkinin sulanması gerektiğini kolayca anlayabilir.
Projenin Amacı
Bu projenin amacı, topraktaki nem miktarını Arduino ile okuyarak toprağın kuru veya nemli olduğunu tespit etmektir. Toprak kuruduğunda buzzer çalışır ve kullanıcıya sesli uyarı verir. Toprak yeterince nemliyse buzzer susar.
Toprak Nem Sensörü Nasıl Çalışır?
Toprak nem sensörü, prob uçları arasındaki iletkenlik değişimini kullanarak topraktaki nem durumunu algılar. Toprak nemliyken elektriksel iletkenlik artar, toprak kuruyken iletkenlik azalır. Arduino, sensörün analog çıkışından gelen değeri analogRead() fonksiyonu ile okur.
Arduino Uno’da analog okuma değeri genellikle 0 ile 1023 arasında değişir. Kullanılan sensör tipine, toprağın yapısına, su miktarına ve bağlantı şekline göre değerler değişebilir. Bu yüzden projede kullanılan dryThreshold değeri mutlaka test edilerek ayarlanmalıdır.
| Durum | Sensör Değeri | Sistem Tepkisi |
|---|---|---|
| Toprak nemli | Eşik değerin altında olabilir | Buzzer kapalı |
| Toprak kuru | Eşik değerin üzerine çıkabilir | Buzzer çalışır |
Aktif Buzzer ile Pasif Buzzer Arasındaki Fark
Bu projede aktif buzzer kullanılabilir. Aktif buzzer, içine osilatör devresi entegre edilmiş buzzer türüdür. Arduino’dan sadece HIGH veya LOW sinyali alarak çalışır. Bu nedenle aktif buzzer kullanımında tone() fonksiyonuna gerek yoktur.
Aktif buzzer ise ses üretmek için Arduino’dan frekans sinyali bekler. Bu yüzden aktif buzzer ile genellikle tone(buzzerPin, 1000) gibi komutlar kullanılır. Aktif buzzerda ise digitalWrite() yeterlidir.
| Buzzer Türü | Kod Kullanımı | Açıklama |
|---|---|---|
| Aktif Buzzer | digitalWrite() |
Sabit ses üretir, frekans ayarı gerekmez. |
| Aktif Buzzer | tone() / noTone() |
Arduino’dan frekans sinyali alarak ses üretir. |
Kullanım Videosu
Devre bağlantısı, eşik değeri ayarlama, sensör testi ve buzzer alarmının çalışma mantığını aşağıdaki uygulama videosundan izleyebilirsiniz:
Gerekli Malzemeler
| Gerekli Malzeme | Ürün Linki |
|---|---|
| Arduino UNO R3 Klon + USB Kablo | Arduino UNO R3 Klon + USB Kablo |
| Arduino Toprak Nem Sensörü | Arduino Toprak Nem Sensörü |
| Aktif Buzzer | Aktif Buzzer |
| Breadboard | Büyük Breadboard 830 Pin |
| Jumper Kablo | 40 Adet Erkek-Dişi Jumper Kablo 20cm |
Devre Bağlantıları
Toprak nem sensörünün analog çıkışı Arduino’nun A0 pinine bağlanır. Aktif buzzer ise D8 pininden kontrol edilir. Buzzerın eksi ucu GND hattına bağlanır.
| Parça | Bağlantı |
|---|---|
| Toprak Nem Sensörü VCC | Arduino 5V |
| Toprak Nem Sensörü GND | Arduino GND |
| Toprak Nem Sensörü A0 | Arduino A0 |
| Aktif Buzzer + | Arduino D8 |
| Aktif Buzzer - | Arduino GND |
Arduino Toprak Nem Alarmı Kodu
Aşağıdaki kodda toprak nem sensöründen A0 pini üzerinden analog değer okunur. Okunan değer dryThreshold değerinden büyükse toprak kuru kabul edilir. Bu durumda aktif buzzer çalıştırılır.
/*
Proje: Arduino Toprak Nem Alarmı
Platform: Arduino Uno
Hazırlayan: Robomer
Web: https://robomer.com
Bağlantılar:
Toprak Nem VCC -> 5V
Toprak Nem GND -> GND
Toprak Nem A0 -> A0
Buzzer + -> D8
Buzzer - -> GND
*/
const int soilPin = A0;
const int buzzerPin = 8;
int dryThreshold = 650;
void setup() {
Serial.begin(9600);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
int soilValue = analogRead(soilPin);
Serial.print("Toprak Nem Degeri: ");
Serial.println(soilValue);
// Bu eşik değeri kullanılan sensöre ve toprağa göre kalibre edilmelidir.
if (soilValue > dryThreshold) {
digitalWrite(buzzerPin, LOW);
}
else {
digitalWrite(buzzerPin, HIGH);
}
delay(500);
}
Kod Nasıl Çalışır?
Pin Tanımları
const int soilPin = A0;
const int buzzerPin = 8;
soilPin, toprak nem sensörünün analog çıkışının bağlı olduğu A0 pinini ifade eder. buzzerPin ise buzzerın bağlı olduğu D8 pinini temsil eder.
Eşik Değeri
int dryThreshold = 650;
dryThreshold, toprağın kuru kabul edileceği sınır değeridir. Bu değer her toprak ve sensör için aynı olmayabilir. Seri Monitör’den değerleri izleyerek kendi projenize uygun eşik değerini belirlemeniz gerekir.
Sensör Değerini Okuma
int soilValue = analogRead(soilPin);
Bu satır A0 pininden gelen analog değeri okur. Arduino Uno’da analog girişler 0 ile 1023 arasında değer döndürür.
Seri Monitör Çıktısı
Serial.print("Toprak Nem Degeri: ");
Serial.println(soilValue);
Bu iki satır sensörden okunan değeri Arduino IDE Seri Monitör ekranına yazdırır. Böylece kuru ve nemli toprakta hangi değerlerin okunduğunu test edebilirsiniz.
Alarm Kontrolü
if (soilValue > dryThreshold) {
digitalWrite(buzzerPin, LOW);
}
else {
digitalWrite(buzzerPin, HIGH);
}
Bu koşulda sensör değeri eşik değerinin üzerine çıktığında sistem toprağı kuru kabul eder. Kodda buzzer LOW ile çalıştırılacak şekilde ayarlanmıştır. Nem değeri eşik değerinin altındaysa buzzer HIGH sinyaliyle kapalı tutulur.
Eşik Değeri Nasıl Kalibre Edilir?
Toprak nem sensörü farklı toprak türlerinde farklı değerler verebilir. Bu yüzden dryThreshold = 650 değeri kesin bir standart değildir. En doğru eşik değerini belirlemek için aşağıdaki adımları uygulayabilirsiniz:
- Kodu Arduino kartınıza yükleyin.
- Arduino IDE üzerinden Seri Monitör ekranını açın.
- Sensörü kuru toprağa yerleştirip okunan değeri not alın.
- Sensörü nemli toprağa yerleştirip okunan değeri not alın.
- Bu iki değerin arasından uygun bir eşik değeri belirleyin.
Örneğin kuru toprakta 780, nemli toprakta 430 değerini görüyorsanız 600-650 aralığında bir eşik değeri kullanabilirsiniz.
Seri Monitör ile Test Etme
Kod yüklendikten sonra Arduino IDE’de Seri Monitör açılarak sensör değerleri gözlemlenebilir. Seri Monitör baud hızı 9600 olarak seçilmelidir.
Sensör kuru havada, kuru toprakta ve nemli toprakta farklı değerler gösterecektir. Bu değerleri karşılaştırarak projenin doğru çalışıp çalışmadığı kontrol edilebilir.
Sık Yapılan Hatalar
- Buzzer ters çalışıyor: Aktif buzzer modülünüz aktif HIGH çalışıyor olabilir. HIGH ve LOW değerlerini ters çevirin.
- Sensör değeri hiç değişmiyor: A0 bağlantısını, VCC ve GND hatlarını kontrol edin.
- Alarm sürekli ötüyor: Eşik değeri toprağınıza uygun olmayabilir. Seri Monitör’den yeni değer belirleyin.
- Okumalar kararsız: Prob uçları toprağa tam temas etmiyor olabilir veya bağlantılar gevşek olabilir.
- Sensör kısa sürede kararıyor: Rezistif toprak nem sensörleri uzun süre nemli toprakta bırakıldığında korozyona uğrayabilir.
Bu Proje Nasıl Geliştirilebilir?
- Buzzer yerine LCD ekran eklenerek nem değeri ekranda gösterilebilir.
- Röle modülü eklenerek mini su pompası kontrol edilebilir.
- RGB LED ile kuru, normal ve nemli durumları renklerle gösterilebilir.
- NodeMCU veya ESP32 ile Wi-Fi üzerinden nem takibi yapılabilir.
- Birden fazla toprak nem sensörü kullanılarak çoklu saksı takip sistemi kurulabilir.
Arduino Toprak Nem Alarmı Kodları
Toprak nem alarmı, buzzer kontrolü, eşik kalibrasyonu ve geliştirilmiş sulama sistemi örnek kodlarını GitHub deposunda paylaşabilirsiniz.
Robomer’de Bulabileceğiniz İlgili Ürünler
Arduino Toprak Nem Sensörü
Topraktaki nem seviyesini analog olarak okumak için kullanılan sensör modülüdür.
Ürünü İncele
Arduino UNO R3 Klon + USB Kablo
Sensör verisini okumak ve buzzer kontrolünü yapmak için kullanılan geliştirme kartıdır.
Ürünü İnceleSonuç
Arduino Toprak Nem Alarmı projesi, analog sensör okuma ve dijital çıkış kontrolünü öğrenmek için oldukça uygun bir başlangıç projesidir. Toprak nem sensörü sayesinde bitkinin su ihtiyacı takip edilebilir, aktif buzzer ile de kullanıcıya sesli uyarı verilebilir.
Bu temel devre daha sonra LCD ekran, röle modülü, su pompası veya Wi-Fi destekli kartlarla geliştirilerek otomatik sulama sistemine dönüştürülebilir.
Arduino Bitki Takip ve Sulama Projeleri İçin Malzemeleri İnceleyin
Toprak nem sensörü, Arduino kartları, buzzer, röle modülü, jumper kablo ve breadboard gibi proje malzemelerini Robomer üzerinden inceleyebilirsiniz.
Toprak Nem Sensörlerini İncele