Water sensör, suyun varlığını veya yokluğunu algılayarak su sızıntıları veya doluluk tespiti gibi projelerde kullanılır. Ancak, kesin su seviyesi ölçümü için uygun değildir. Bu yazıda, water sensörün temel kullanımıyla su algılama işlemi gerçekleştiren bir proje yapacağız. Projede bir LED ve bir buzzer yardımıyla su algılandığında görsel ve işitsel bir uyarı sistemi oluşturacağız.
Gerekli Malzemeler
- 1 x Arduino Uno (veya uyumlu bir model)
- 1 x Water Sensör
- 1 x LED (kırmızı veya yeşil)
- 1 x 220Ω direnç (LED için)
- 1 x Buzzer (isteğe bağlı, sesli uyarı için)
- Breadboard
- Bağlantı Kabloları
Devre Bağlantıları
Water Sensör
- VCC: Arduino'nun 5V pinine bağlanır.
- GND: Arduino'nun GND pinine bağlanır.
- AOUT: Arduino'nun A0 analog pinine bağlanır.
LED ve Buzzer
LED- Uzun bacağı (anot) Arduino'nun dijital bir çıkış pinine (ör. D9) bağlanır.
- Kısa bacağı (katot) GND'ye bağlanır.
- 220Ω direnç LED'in uzun bacağına seri olarak bağlanmalıdır.
- Pozitif bacağı Arduino'nun bir çıkış pinine (ör. D8) bağlanır.
- Negatif bacağı GND'ye bağlanır.
Arduino Kodu
Aşağıdaki kod, sensörden gelen analog veriyi okuyarak su algılandığında LED'i yakar ve buzzer ile uyarı verir.
const int sensorPin = A0; // Water sensörün analog çıkışı
const int ledPin = 9; // LED pini
const int buzzerPin = 8; // Buzzer pini
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600); // Seri monitörü başlat
}
void loop() {
int sensorValue = analogRead(sensorPin); // Sensör verisini oku
Serial.print("Sensör Değeri: ");
Serial.println(sensorValue);
if (sensorValue < 500) { // Su algılama eşik değeri (örnek olarak 500)
digitalWrite(ledPin, HIGH); // LED yanar
digitalWrite(buzzerPin, HIGH); // Buzzer çalar
Serial.println("Su algılandı!");
} else {
digitalWrite(ledPin, LOW); // LED söner
digitalWrite(buzzerPin, LOW); // Buzzer kapanır
Serial.println("Su algılanmadı.");
}
delay(500); // Kısa bir gecikme
}
Kod Açıklamaları
- Sensör Verisi Okuma:
analogRead(sensorPin)
ile sensörden gelen veriyi okuyoruz. Su algılanıp algılanmadığını bu değer belirler.
- Eşik Değeri Kontrolü:
- Su algılama işlemi için
500
örnek eşik değeri kullanılmıştır. Sensörünüzün performansına göre bu değeri ayarlayabilirsiniz.
- Su algılama işlemi için
- LED ve Buzzer Kontrolü:
- Su algılandığında LED yanar ve buzzer çalar. Su algılanmadığında ise her ikisi de kapanır.
- Seri Monitör:
- Sensör verileri ve su algılama durumu seri monitörde görüntülenir.
Projenin Çalışma Prensibi
- Sensör, suyun varlığını algılar ve analog bir değer üretir.
- Arduino, bu değeri okuyarak belirlediğimiz eşik değeri ile karşılaştırır.
- Su algılandığında LED yanar ve buzzer çalar. Su algılanmadığında her ikisi de kapalıdır.
- Seri monitör, sensör değerlerini ve durum bilgisini sürekli olarak günceller.
Kullanım Alanları
- Ev Güvenliği: Su sızıntısını algılamak için kullanabilirsiniz.
- Akıllı Sulama Sistemleri: Toprağın sulanıp sulanmadığını kontrol etmek için sensör ekleyebilirsiniz.
- Su Deposu İzleme: Su olup olmadığını kontrol etmek için temel bir alarm sistemi oluşturabilirsiniz.
Bu yazıda, water sensörün su algılama amacıyla nasıl kullanılacağını öğrendik. Proje, sensörün temel yeteneklerini anlamak için mükemmel bir başlangıçtır. Daha gelişmiş projeler için bu sensörü diğer modüllerle birleştirerek otomasyon sistemleri geliştirebilirsiniz.
Not: Su seviyesini kesin olarak ölçmek için ultrasonik sensör veya manyetik şamandıra gibi daha gelişmiş sensörler tercih edilmelidir.
Su Seviyesi Algılama ve Uyarı Sistemi
const int sensorPin = A0; // Water sensörün analog çıkışı
const int ledPin = 9; // LED pini
const int buzzerPin = 8; // Buzzer pini
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600); // Seri monitörü başlat
}
void loop() {
int sensorValue = analogRead(sensorPin); // Sensör verisini oku
Serial.print("Sensör Değeri: ");
Serial.println(sensorValue);
if (sensorValue < 100) { // Su seviyesi çok düşük
digitalWrite(ledPin, LOW); // LED söner
digitalWrite(buzzerPin, HIGH); // Buzzer çalar
Serial.println("Su algılanmadı! Su tamamen bitti.");
}
else if (sensorValue < 400) { // Su bitmek üzere
digitalWrite(ledPin, HIGH); // LED yanar
digitalWrite(buzzerPin, HIGH); // Buzzer çalar
Serial.println("Su algılandı! Su bitmek üzere.");
}
else if (sensorValue < 500) { // Su seviyesi az
digitalWrite(ledPin, HIGH); // LED yanar
digitalWrite(buzzerPin, HIGH); // Buzzer çalar
Serial.println("Su algılandı! Su azalıyor.");
}
else if (sensorValue < 600) { // Normal su seviyesi
digitalWrite(ledPin, HIGH); // LED yanar
digitalWrite(buzzerPin, LOW); // Buzzer kapanır
Serial.println("Su algılandı! Su seviyesi normal.");
}
else { // Su seviyesi yüksek
digitalWrite(ledPin, HIGH); // LED yanar
digitalWrite(buzzerPin, LOW); // Buzzer kapanır
Serial.println("Su algılandı! Su seviyesi çok yüksek.");
}
delay(500); // Kısa bir gecikme
}
Kod Açıklamaları
Sensör Verisini Okuma
analogRead(sensorPin)
fonksiyonu ile sensörden gelen analog veriyi okuyoruz. Bu değer, suyun varlığını ve seviyesini belirlemek için kullanılır.
Su Seviyesi Kontrolü ve Uyarı Mekanizması
< 100 (Çok Düşük Su Seviyesi):
Sensör 100'den düşük bir değer ürettiğinde, buzzer aktif hale gelir ve LED söner. Seri monitör, suyun tamamen bittiğini bildirir.100 - 400 (Su Azalmaya Başladı):
Bu aralıkta hem LED yanar hem de buzzer çalar. Seri monitör, suyun bitmek üzere olduğunu bildirir.400 - 500 (Su Azalıyor):
Sensör 400 ile 500 arasında bir değer ürettiğinde, LED yanar ve buzzer çalar. Seri monitör, suyun azalmakta olduğunu gösterir.500 - 600 (Normal Su Seviyesi):
Bu aralıkta sadece LED yanar ve buzzer kapanır. Seri monitör, su seviyesinin normal olduğunu bildirir.> 600 (Çok Yüksek Su Seviyesi):
Sensör 600'den yüksek bir değer ürettiğinde, sadece LED yanar ve buzzer kapanır. Seri monitör, suyun çok yüksek olduğunu bildirir.
Seri Monitör Kullanımı
Sensör değerleri ve su seviyesine ilişkin bilgiler,Serial.print()
fonksiyonu ile sürekli olarak monitörde gösterilir.LED ve Buzzer Kontrolü
LED, suyun varlığını göstermek için; buzzer ise kritik durumlarda uyarı vermek için kullanılır.Gecikme
Her döngüden sonra 500ms gecikme verilerek, sensörün değerleri stabil şekilde ölçmesi sağlanır.Uygulama Alanları
- Ev Güvenliği: Su kaçaklarını tespit ederek uyarı verebilir.
- Su Deposu İzleme: Su seviyesini izleyerek doluluk durumunu gösterebilir.
- Tarım ve Sulama Sistemleri: Su ihtiyacını belirleyip sulama süreçlerini otomatikleştirmek için kullanılabilir.
Bu kod, farklı su seviyesi aralıklarına göre birden fazla uyarı mekanizması içerdiği için özellikle öğrenme amaçlı projelerde etkili bir başlangıç sunar. Sensörün verdiği değerlere göre aralıklar ayarlanabilir.
Sıkça Sorulan Sorular
Water sensör, suyun varlığını algılamak için kullanılan bir sensördür. Arduino ile kullanarak suyun varlığını tespit edip LED ve buzzer ile uyarı sistemi oluşturabilirsiniz. Sensörden analog değer okuyarak belirli eşik değerlerine göre su seviyesini kontrol edebilirsiniz.
Water sensör, kesin su seviyesi ölçümü yapmak için uygun değildir. Ancak, farklı eşik değerleri kullanarak "çok düşük", "az", "normal" ve "yüksek" gibi temel su seviyesi bilgilerini tespit edebilirsiniz. Daha kesin ölçümler için ultrasonik sensörler önerilir.
Water sensör, analog değerler üretir. Bu değerler, suyun varlığına veya seviyesine göre değişir. Kodda kullanılan analogRead()
fonksiyonu ile sensör değerlerini okuyabilir ve projeye göre uygun eşik değerlerini belirleyebilirsiniz. Örneğin, if(sensorValue < 500)
su algılama için bir eşik değeri olabilir.
Su algılandığında görsel uyarı için LED, işitsel uyarı için buzzer kullanılabilir. Arduino kodunda, su algılandığında LED'in yanması ve buzzer'ın çalması için digitalWrite()
fonksiyonu kullanılır.
Water sensör, şu alanlarda kullanılabilir:
- Ev Güvenliği: Su sızıntısını tespit etme.
- Su Deposu İzleme: Su varlığını kontrol etme.
- Sulama Sistemleri: Toprağın sulanma ihtiyacını belirleme.
Basit projelerden akıllı sistemlere kadar geniş bir kullanım alanına sahiptir.
Water sensör, suyun varlığını algılamak için tasarlanmıştır. Kesin seviye ölçümleri için uygun değildir. Sensör, suyun iletkenliğine göre analog değerler üretir ve bu değerler doğru bir şekilde yorumlanmadığında yanlış sonuçlar gösterebilir.
- VCC: Arduino'nun 5V pinine bağlanır.
- GND: Arduino'nun GND pinine bağlanır.
- AOUT: Analog çıkış için Arduino'nun A0 pinine bağlanır.
Su seviyesi 100 ile 400 arasında olduğunda, LED'in yanmasını ve buzzer'ın çalmasını sağlayarak kullanıcıyı uyarabilirsiniz. Örneğin:
else if (sensorValue < 400) {
digitalWrite(ledPin, HIGH);
digitalWrite(buzzerPin, HIGH);
Serial.println("Su bitmek üzere!");
}
Sensörden gelen değerleri stabilize etmek için kodda delay()
kullanabilir veya ortalama değerler almak için birden fazla ölçüm alabilirsiniz. Bu yöntem, sensör okumalarındaki dalgalanmaları azaltır.
Su seviyesi normal olduğunda sadece LED yanar ve buzzer kapanır. Kodda bu durumu şöyle kontrol edebilirsiniz:
else if (sensorValue < 600) {
digitalWrite(ledPin, HIGH);
digitalWrite(buzzerPin, LOW);
Serial.println("Su seviyesi normal.");
}
Bu Gönderiye Yorum Yapılmamış