ESP32 Hareket Sensörlü Yük Kontrolü

Bu projenin temel amacı, bir hareket algılandığında lamba, led, motoru aktif hale getirmek ve hareket kesildikten belirli bir süre sonra otomatik olarak kapatmaktır. Böylece hem röle hem de hareket sensörünün yapısı anlaşılabilecektir.

Gerekli Donanımlar

  • ESP32 Dev Module
  • PIR Hareket Sensörü (HC-SR501 veya AM312)
  • LED Şerit (Lamba, DC motor vb.)
  • Mosfet Modülü (Örn: IRF540) veya Röle Modülü (LED şeridin yüksek akımını ESP32 ile anahtarlamak için)
  • 12V Güç Kaynağı (LED şeridi beslemek için)

1. Donanım ve Bağlantı Mantığı

ESP32’nin GPIO pinleri LED şeritlerin ihtiyaç duyduğu yüksek akımı (amper seviyesinde) sağlayamaz. Bu yüzden araya bir “anahtar” görevi gören Mosfet veya Röle konulmalıdır.

Bağlantı Tablosu:

BileşenESP32 PiniAçıklama
PIR Sensör OUTGPIO 13Hareket sinyali girişi
Mosfet GATE (G)GPIO 12LED kontrol çıkışı
GNDGNDTüm sistemin ortak toprağı
  • Önemli Not: 12V adaptörün eksisi (-), ESP32’nin GND’si ve Mosfet’in Source (S) ucu birleştirilmelidir (Ortak Toprak).

2. PIR Sensör Nedir Ayarları Nasıl Yapılır

HC-SR501 gibi popüler sensörlerin üzerinde iki adet potansiyometre bulunur:

  1. Hassasiyet (Sensitivity): Algılama mesafesini ayarlar (genelde 3-7 metre).
  2. Zaman Gecikmesi (Time Delay): Hareket algılandıktan sonra sinyalin ne kadar süre “HIGH” kalacağını belirler (5 saniyeden 5 dakikaya kadar).

Teknik İpucu: Eğer yazılımda hassas bir zamanlama yapacaksanız, sensör üzerindeki zaman ayarını en düşüğe getirip, gecikme mantığını ESP32 kodundaki millis() fonksiyonu ile yönetmek daha profesyonel bir yaklaşımdır.

Led Şerit Nedir

LED şerit (LED tape veya LED ribbon olarak da bilinir), üzerine ışık yayan yüzey montajlı LED’lerin (SMD) yerleştirildiği esnek bir devre kartıdır. Bu şeritler çok yönlüdür ve çeşitli uygulamalarda yaygın olarak dekoratif aydınlatma amacıyla kullanılırlar. LED şeritler birçok farklı renk seçeneğiyle sunulur; genellikle ortam aydınlatması, vurgu aydınlatması veya dekoratif ışık efektleri sağlamak için tercih edilirler.

LED şeritler temelde iki ana türe ayrılır:

  • Adreslenebilir LED Şeritler (Addressable LED Strips): Bu türde, şerit üzerindeki her bir LED’in rengi ve parlaklığı bağımsız olarak kontrol edilebilir. Bu özellik, her bir LED’e özel bir adres atanmış olması sayesinde mümkündür.
  • Adreslenemeyen LED Şeritler (Non-Addressable LED Strips): Aksine, adreslenemeyen şeritlerde de renk ve parlaklık kontrolü yapılabilir; ancak bu kontrol şerit üzerindeki tüm LED’lere aynı anda ve tek tip olarak uygulanır.

Adreslenemeyen tek renkli led şeritler genel olarak doğrudan 12 Volt bağlanarak sürülür. Bu durum maliyet açısından önemlidir. Aşağıdaki resimde ESP32, röle ve Led sürücü kullanılarak bir bağlantı yapılmıştır. Bu aşamada kod yazımı oldukça kolay olup sadece herhangi bir çıkış pinin ON/OFF yapılması ile LED şeritin ışık üretmesi sağlanabilir.

Röle Kullanımı

Projelerde röle kullanımı oldukça yaygındır. Eğer Led şeritlerimiz uzunsa muhakkak bir röle ile sürmemiz gerekmektedir. Aşağıdaki resimde rölelerin genel yapısı görülmektedir. Rölelerde NO ve NC konfigürasyonunu anlamak önemlidir. NO – normalde açık anlımına gelir. Giriş sinyali yokken lamba kapalı, giriş sinyali () olunca lamba ışık üretir. NC için durum tam tersidir.

Projelerde bir rölenin yüksek akım çeken bir yüke nasıl bağlandığını anlamak önemlidir. Rölenin düşük gerilim tarafına ESP32 bağlanırken, yüksek gerilim tarafındaki bağlantı aşağıdaki gibi yapılabilir.

Genel olarak bir röle ESP32’ye aşağıdaki gibi bağlanır. Çıkışta ise yüksek gerilim veya güçte yükler bağlamak mümkündür. Bu noktada röle akımının değerleri önemli olmaktadır.

ESP 32 Bağlantısı

Aşağıdaki bağlantıda PIR sensörü hareketi algıladığında bir röleyi çalıştırmaktadır. Röle çıkışına bir LED sürücü, Lamba, motor, fan vb. bağlamak mümkündür. Yükün değişse bile kodlarımız temel olarak hareketi algılayıp aç kapa yapmaktadır.

3. ESP32 Kod Örneği

Aşağıdaki kod, hareket algılandığında LED’i yakar ve hareket bittikten sonra belirlediğiniz süre boyunca açık tutar.

#define MOTION_SENSOR_PIN  22  // Hareket sensörünün OUTPUT pinine bağlı ESP32 GPIO22 pini
#define RELAY_PIN          26  // Röle pinine bağlı ESP32 GPIO26 pini

int motionStateCurrent  = LOW; // Hareket sensörü pininin güncel durumu
int motionStatePrevious = LOW; // Hareket sensörü pininin önceki durumu

void setup() {
  Serial.begin(9600);                // Seri haberleşmeyi başlat
  pinMode(MOTION_SENSOR_PIN, INPUT); // ESP32 pinini giriş moduna ayarla
  pinMode(RELAY_PIN, OUTPUT);        // ESP32 pinini çıkış moduna ayarla
}

void loop() {
  motionStatePrevious = motionStateCurrent;             // Eski durumu sakla
  motionStateCurrent  = digitalRead(MOTION_SENSOR_PIN); // Yeni durumu oku

  if (motionStatePrevious == LOW && motionStateCurrent == HIGH) { // Pin durumu değişimi: LOW -> HIGH
    Serial.println("Hareket algilandi!, role ACILIYOR (ON)");
    digitalWrite(RELAY_PIN, HIGH); // Röleyi aktif et
  } else if (motionStatePrevious == HIGH && motionStateCurrent == LOW) { // Pin durumu değişimi: HIGH -> LOW
    Serial.println("Hareket durdu!, role KAPATILIYOR (OFF)");
    digitalWrite(RELAY_PIN, LOW);  // Röleyi kapat
  }
}

4. Kritik Mühendislik Notları ve Genişletme

  1. PWM ile Yumuşak Geçiş (Fading): Standart bir röle yerine Mosfet kullanırsan, LED’in aniden yanıp sönmesi yerine yavaşça açılıp kapanmasını sağlayabilirsin. Bunun için ledcWrite() fonksiyonunu kullanarak “soft-start” etkisi yaratabilirsin.
  2. Yanlış Tetiklemeler (False Triggers): PIR sensörleri, ESP32’nin Wi-Fi sinyallerinden etkilenebilir. Eğer Wi-Fi aktifken sensör sürekli hareket var gibi davranıyorsa:
    • Sensör ile ESP32 arasına mesafe koyun.
    • Sensörün besleme hattına 100nF bir seramik kondansatör ekleyin.
  3. LDR Entegrasyonu: Hareket sensörlü ışıkların gündüz boşuna yanmasını istemezsin. Sisteme bir LDR (Işık Sensörü) ekleyerek; kodun içine if (hareket == HIGH && ortam_karanlik == HIGH) mantığını kurmanı öneririm.
  4. Güç Tüketimi: Eğer pilli bir sistem tasarlıyorsan, ESP32’nin Light Sleep veya Deep Sleep modlarını kullanarak, sadece hareket olduğunda uyanmasını sağlayabilirsin. Ancak PIR sensörünün sürekli enerjiye ihtiyaç duyduğunu unutmamalısın (genelde 5V ile stabil çalışırlar).

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir