Arduino Devreleri #52 Arduino Röle ve Toprak Nem Sensörü İle LCD Ekranlı Sulama Sistemi
Merhabalar, bu yazımızda Arduino Röle ve Toprak Nem Sensörü İle LCD Ekranlı Sulama Sistemi hakkında bilgi vereceğim. Arduino’ da röle ve toprak nem sensörü kullanarak kuruyan toprakları sulayan motor devresi devresi nasıl yapılır? 5 volt röle ile 220 volt su motoru nasıl çalıştırılır? Arduino akıllı toprak sulama projesi nasıl çalışır? Bu soruların cevabını bu konuda işleyeceğiz.
Arduino programı ayrıntılı kod kısmı, devre bağlantı şeması, devre kurulumu detaylı anlatımı ve devre çalışma videosu şu şekildedir.
Aşağıdaki linkte yer alan yazımızda röleyi anlattık. Röle Nedir? Nasıl çalışır? Röle bağlantı uçları nelerdir? Çeşitleri nelerdir? Kullanıldığı yerler nerelerdir? Aktif yüksek röle ve aktif düşük röle nedir? Arduino da kendi kullandığımız rölenin cinsini nasıl anlarız? Doğru röleyi kullanıyor muyuz? bu soruların cevabını bu yazımızda bulabileceksiniz. Bu konuyu okumadan önce bu anlatıma aşağıdaki linkten göz atmanızı tavsiye ederim.
Eğer 220 Volt yerine led diyot kullanmak isterseniz aşağıdaki linkte anlattığımız konuda devre şemasına ulaşabilirsiniz. Kodlarda bir değişiklik yapmanıza gerek yoktur. Alttaki devreyi kuracaksınız fakat sadece lamba yerine led diyot ve direnç kısımlarını bu devrede değiştirmiş olacaksınız.
TOPRAK NEM SEVİYE SENSÖRÜ MODÜLÜ – FC-28
Toprak nemi algılama sensörü, toprağın içerisindeki nem miktarını ölçmek için kullanılan bir sensördür.
Toprak nem sensörü iki parça halindedir. Parçanın bir tanesi toprağa batırılacak prob, diğer parça ise elektronik devredir. Toprak nem sensörü probları ölçüm yapılacak toprağa batırılarak kullanılır. Toprağa batırılan nemin meydana getirdiği dirençten dolayı, prob uçları arasında bir gerilim farkı oluşur. Bu gerilim farkının büyüklüğüne göre de nem miktarı ölçülebilir. Topraktaki nem oranı arttıkça iletkenlik de artmaktadır.
Kart üzerinde hem dijital giriş bağlantı pini hem de analog giriş bağlantı pini bulunmaktadır. Eğer sadece nem olup olmadığını kontrol etmek için kullanmak istiyorsak digital pin çıkışını (DO) kullanabiliriz. Eğer nem seviyesini kademe kademe kontrol etmek istiyorsak analog pin çıkışını (AO) kullanabiliriz. Kart üzerinde devrenin çalıştığını gösteren güç ledi, nem seviyesi belli bir orana geldiğinde yanan sensör ledi bulunmaktadır. (Bizim kartımızda yaptığımız hassasiyet ayarına göre analog sensör değeri 540 altına geldiğinde led çalışmaya başlamaktadır. Dijital pin bağlantısında ise yine hassasiyet ayarına göre nem algılandığında led direkt çalışacaktır.) Kart üzerinde yer alan trimpot sayesinde bu hassasiyet ayarını yapabilirsiniz. Toprak probları ile kart arasında iki uçlu bağlantı bulunmaktadır. Bu bağlantı uçları arasında yön fark etmemektedir. Toprakta nem yokken seri port içerisindeki analog değer 1023 olacaktır. Nem seviyesi arttıkça sıfıra (0) doğru bir azalma gerçekleşecektir. (Bizim kartımızda su içerisine daldırdığımızda bile nem seviyesi 275 seviyelerinin altına inmedi.)
NOT: Kod bölümü içerisinde yer alan ve // işareti ile başlayan satırlar açıklama satırlarıdır. O satırdaki kod bloğunun ne anlama geldiği ve nasıl çalıştığı ile ilgili bilgi verir. Arduino // işaretli alanı çalıştırmaz. Kod satırından isterseniz // işaret ile başlayan açıklama satırlarını silebilirsiniz.
ARDUINO RÖLE, TOPRAK NEM SENSÖRÜ VE LCD EKRAN İLE AKILLI TOPRAK SULAMA PROJESİ
KOD BÖLÜMÜ:
// Role İle Toprak Nem Seviye Sensörü Motor Çalıştırma
// LCD Ekranda Gösterme (Türkçe Karakterli)
// Role giriş pini ters mantıkla çalışmaktadır.(Aktif Düşük Röle)
// LOW gönderildiğinde role kontağını kapatacak, HIGH gönderildiğinde role kontağı hareket etmeyecektir.
#include <LiquidCrystalTr_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Bazı kartlarda arabirim adresi 0x3f olabilir.
int seviye;
int role = 7; // Role pinini tanımladık
void setup()
{
pinMode(role, OUTPUT);
Serial.begin(9600);
lcd.begin();
}
void loop(){
seviye = analogRead(A0);
Serial.print("Toprak Nem Seviyesi: ");
Serial.println(seviye);
if (seviye > 800) // Lambanın ya da motorun çalışacağı, toprak nem sensöründen okunan sınır değerini belirttik.
{
lcd.clear(); // Yazılar üst üste binmemesi için ekranı temizliyoruz
lcd.setCursor(0, 0);
lcd.print("Toprak Kuru ");
lcd.print(seviye);
lcd.setCursor(0, 1);
lcd.print("Lütfen Sulayınız");
digitalWrite(role, LOW); //Toprak kuru olduğu için (aktif düşük) roleyi çalıştırdı.
}
else if (seviye < 800) // Bu değer altında Lamba ya da motor çalışmayacaktır.
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Toprak Nem ");
lcd.print(seviye);
lcd.setCursor(0, 1);
lcd.print("Seviyesi Yüksek");
digitalWrite(role, HIGH); //Toprak nemli olduğu için (aktif düşük) role çalışmıyor.
}
delay(500);
}
DEVRENİN ÇALIŞMASI:
Toprak nem seviye sensörü ölçüm probu toprak içerisine yerleştirilir. Toprak kuru vaziyette iken ekranda “Toprak Kuru Lütfen Sulayınız” yazacaktır. Su motoru çalışıp toprak sulandığı zaman (bizim devremizde lamba yanacak), topraktaki nem seviyesi normal seviyeye gelecek ve ekranda “Toprak Nem Seviyesi Normal” yazacak. Böylece role sinyali kesilecek ve motor duracaktır (lamba sönecek) . Toprak nem sensörü değerini hem LCD ekranda hem de seri monitör ekranında görebiliriz.
DEVRE BAĞLANTI ŞEMASI:
DEVRE KURULUMU:
Malzemeler:
Arduino Uno
Breadboard
1 adet 5 Volt Röle (Aktif düşük röle)
10 adet bir ucu dişi, bir ucu erkek jumper kablo
2 adet iki ucu erkek jumper kablo
1 adet toprak nem seviye sensörü
1 adet LCD I2C Ekran
1 adet 220 volt lamba
1 adet erkek fiş
1 adet duy
Yaklaşık 1 metre 0,75 mm kablo
Röle modülü üzerinde bulunan pinlere 3 adet dişi jumper kablo bağlanır. Röle VCC pini, breadboard artı şeridine bağlanır. Röle GND pini, breadboard eksi şeridine bağlanır. Röle IN pini, Arduino’nun 7 numaralı pinine bağlanır.
Toprak nem seviye sensörü üzerinde yer alan pinlere dişi jumper kabloların uçları yerleştirilir. Sensörün Vcc (+) pinini, breadboard alt kısmında artı şeride bağlanır. sensörün GND (-) pini, yine breadboard alt kısmında eksi şeride bağlanır. Sensörün DATA (A0) pini, Arduino’nun A0 numaralı pinine bağlanır.
LCD ekran üzerinde monteli olarak gelen I2C modülü üzerine 4 adet dişi jumper kablonun uçları yerleştirilir. SDA ve SCL pinlerine bağlı kablolar, Arduino üzerindeki SDA ve SCL pinlerine bağlanır. I2C modülü üzerindeki VCC kablo ucu, breadboard alt kısmındaki artı şeride bağlanır. I2C modülü üzerindeki GND kablo ucu, breadboard alt kısmındaki eksi şeride bağlanır.
Lamba bağlantısı için elektrik fişinden gelen kablonun bir ucu rölenin ortak ucuna (C) bağlanır. Rölenin açık kontak (NO) ucundan çıkan kablo, lambanın altındaki duy bağlantısına gelir. Duy bağlantısından çıkan diğer uç ise, elektrik fişine bağlanarak lamba devresi de tamamlanmış olur.
Arduino Röle ve Toprak Nem Sensörü İle LCD Ekranlı Sulama Sistemi
Devre hakkında yorumlarınızı aşağıdaki yorum kısmına yazabilirsiniz. Youtube kanalımızda da mBlock ve Arduino ile ilgili ders videoları bulabileceksiniz. Youtube kanalıma abone olmayı da unutmayınız.
https://www.youtube.com/@candemirahmet