Yağmur Sensörü Nedir?

Bu sensör, üzerine yağmur damlaları geldiği zaman yağmur yağdığını algılayan bir sensördür. Hem dijital hem analog çıkış veren bir sensördür.

Özellikler:


  • PCB boyutları:3.2cmX1.4cm
  • Çalışma Voltajı:3.3V~5V
  • Analog ve dijital çıkışlar
  • 5.5 * 4 cm sensör yüzeyi
  • Dijital çıkış hassasiyeti ayarlanabilir
  • LM393 voltaj karşılaştırıcı



Malzeme Listesi:


  • Arduino (İstediğiniz modeli kullanabilirsiniz)
  • 1 Adet 2×16 LCD Ekran (I2C modülü ile birlikte veya sade olarak kullanabilirsiniz)
  • Yağmur Sensörü



Test Aşaması:

Projeyi yapmaya başlamadan önce sensörümüzün sorunsuz çalıştığından emin olmamız gerekiyor. Bunun için 2×16 LCD Ekranı projeye dahil etmeden önce seri ekranda sensörümüzün verdiği değerleri test edelim. Böylece LCD Ekranımızı bağlamadan önce bir sorun olmadığından emin olabiliriz. Test yapmak için aşağıdaki görseldeki gibi sensörümüzü bağlayalım ve aşağıdaki test kodunu Arduino kartımıza yükleyelim.

Test Bağlantı Şeması:




Test Kodu:

HTML-Kodu:
int sensor = 6;

void setup() { 
 pinMode(sensor, INPUT); 
 Serial.begin(9600);
}

void loop() { 
 int Yagmur = digitalRead(sensor);   

 if(Yagmur == HIGH){    
Serial.println("Yağmur Yağmıyor"); 
 }    

else    
Serial.println("Yağmur Yağıyor");   

 delay(50);
}
Test Aşaması:

Kodumuzu Arduino’ya yükledikten sonra Seri Ekranımızı açalım ve çıkan değere bakalım. Eğer sensör kuru olduğu halde “yağmur yağıyor” yazıyorsa sensörün devre kartının üzerindeki potansiyometreyi bir tornavida aracılığıyla “yağmur yağmıyor” yazısı gelene kadar çok nazikçe sağa veya sola doğru döndürebiliriz. Daha sonra sensörün algılayıcı kartının paralel iletken levhaların olduğu yüzeyine birkaç damla su damlatalım ve seri ekrandaki değerin “yağmur yağıyor” olup olmadığına bakalım. Eğer hala “yağmur yağmıyor” yazıyorsa yine bir tornavidayla potansiyometreyi Seri Ekrana “yağmur yazıyor” yazısı gelene kadar sağa veya sola doğru nazikçe çevirelim.

Bu işlemi su olunca “yağmur yağıyor”, su olmayınca “yağmur yağmıyor” yazacak şekilde dengeye gelene kadar devam ettirelim. Burada bu işlemin kolay olması için bir peçeteyi nemli olacak şekilde ıslatıp su yerine kullanabiliriz. Denemesi daha kolay ve pratik oluyor. Eğer su olunca “yağmur yağmıyor”, su olmayınca “yağmur yağıyor” yazıyorsa sensörün devre kartı ile algılayıcı kartı arasındaki iki kablonun yerlerini değiştirebiliriz. Eğer bu aşamada bir problemle karşılaşırsanız lütfen yorumlar bölümünde bizimle iletişime geçin. Sensörümüzün sorunsuz şekilde çalıştığını anladıktan sonra LCD Ekranımızı kullanmaya geçebiliriz.

Bağlantı Şeması:

2×16 LCD Ekranı I2C Modülü olmadan kullanmak isteyenler için bağlantı şeması:




2×16 LCD Ekranı I2C Modülü ile birlikte kullanmak isteyenler için bağlantı şeması:




Kod:

2×16 LCD Ekranı I2C Modülü olmadan kullanmak isteyenler için kod satırları:

HTML-Kodu:
#include <LiquidCrystal.h>

int sensor = 6;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //LCD Ekranımızın pinlerini tanımlıyoruz

void setup() {  
pinMode(sensor, INPUT);  
Serial.begin(9600);  
lcd.begin(16,2); //LCD Ekranımızı başlatıyoruz
}
void loop() {  
int Yagmur = digitalRead(sensor); //Sensörden gelen veriyi okuyoruz ve bu veriye "Yagmur" adını veriyoruz 

   if(Yagmur == HIGH){    
lcd.clear(); //LCD Ekranımızı temizliyoruz    
lcd.print("Yagmur: "); //LCD Ekranımızın ilk satırına "Yagmur:" yazısını yazdırıyoruz    
lcd.setCursor(0, 1); //LCD Ekranımızda "Yagmur: " yazısı ile yağmur durumunu belirten yazılar aynı satıra sığmayacağı için bir satır boşluk bırakıyoruz    
lcd.print("Yagmiyor"); //LCD Ekranımızın alt satırına "Yagmiyor" yazısını yazdırıyoruz    
Serial.println("Yağmur Yağmıyor"); //Seri Ekranımıza "Yağmur Yağmıyor" yazısını yazdırıyoruz  
}    
if(Yagmur == LOW){  
  lcd.clear(); //LCD Ekranımızı temizliyoruz   
 lcd.print("Yagmur: "); 
//LCD Ekranımızın ilk satırına "Yagmur:" yazısını yazdırıyoruz    
lcd.setCursor(0, 1);//LCD Ekranımızda "Yagmur: " yazısı ile yağmur durumunu belirten yazılar aynı satıra sığmayacağı için bir satır boşluk bırakıyoruz    
lcd.print("Yagiyor");//LCD Ekranımızın alt satırına "Yagiyor" yazısını yazdırıyoruz    Serial.println("Yağmur Yağıyor"); //Seri Ekranımıza "Yağmur Yağıyor" yazısını yazdırıyoruz 
 }      
delay(1000); //Sensörümüzün sağlıklı ölçümler yapabilmesi için ölçümler arasına 300 milisaniyelik bir bekleme süresi bırakıyoruz
}

Başlangıç:


Öncelikle projeyi düzgün bir şekilde çalıştırabilmemiz için test aşamasında suya soktuğumuz sensörümüzün yüzeyini tamamen kurulamamız gerekiyor.

Kuruladıktan sonra Arduino’ya güç verelim ve LCD Ekranımızı kontrol ederek yavaşça sensörümüzün üzerine 2-3 damla su damlatalım. Eğer LCD Ekranımızda su olunca “yağmur yağıyor”, su olmayınca “yağmur yağmıyor” yazıyorsa başarılı bir şekilde projeyi tamamlamışız demektir. Eğer su olunca “yağmur yağmıyor”, su olmayınca “yağmur yağıyor” yazıyorsa yukarıda belirttiğimiz gibi sensörün devre kartı ile algılayıcı kartı arasındaki iki kablonun yerlerini değiştirebiliriz. Veya o da işe yaramazsa yazılımdan if(Yagmur == HIGH) yazan satırı if(Yagmur == LOW) olarak değiştirirsek sorunumuz çözülecektir.