ElektronikZorluk: OrtaSüre: 1 saat

ESP32 ile Telefondan Röle Kontrolü: Lambayı Wi-Fi ile Açıp Kapatma

ESP32 röle kontrolü: telefondan Wi-Fi ile lamba açıp kapatma, bağlantı şeması, hazır web sunucusu kodu ve 220V şebeke gerilimi için önemli güvenlik uyarıları.

ESP32 ile Telefondan Röle Kontrolü: Lambayı Wi-Fi ile Açıp Kapatma

Güvenlik Uyarısı

Elektronik cihazları tamir etmek garantiyi geçersiz kılabilir. Çalışmaya başlamadan önce cihazın fişten çekildiğinden ve bataryasının çıkarıldığından emin olun. Statik elektrik bileşenlere zarar verebilir.

ESP32 ile telefondan lamba açıp kapatmak için bir röle modülünün IN pinini ESP32'nin GPIO26 pinine, VCC'sini 5V (VIN) pinine, GND'sini GND'ye bağlar; ESP32'ye bu rehberdeki web sunucusu kodunu yüklersiniz. ESP32 evinizin Wi-Fi ağına bağlanır ve telefon tarayıcısından açılan sayfadaki "Aç" ve "Kapat" düğmeleriyle röleyi kontrol edersiniz. Projeyi önce 12V bir LED lamba veya rölenin kendi LED'iyle test edin; 220V şebeke gerilimine bağlantı ölümcül risk taşır ve yalnızca yeterli bilgiye sahip kişilerce, kapalı ve onaylı bir kutu içinde yapılmalıdır.

220V hayati tehlike taşır

Evdeki 230V şebeke gerilimi öldürücüdür. Kablolar açıkta, breadboard üzerinde veya kapaksız bir kutuda 220V'a bağlanan röle devresi yangın ve elektrik çarpması riski yaratır. Şebeke tarafındaki her işlemi sigorta kapalıyken yapın, bilmiyorsanız yetkili bir elektrikçiye yaptırın. Sadece telefondan lamba kontrolü istiyorsanız hazır, sertifikalı bir akıllı priz veya akıllı ampul çok daha güvenli bir çözümdür.

Gerekli Malzemeler

  • ESP32 geliştirme kartı (ESP32 DevKit V1 veya benzeri)
  • 1 kanallı röle modülü (optokuplörlü, 3,3V tetiklemeyle çalışan veya 3,3V'luk model)
  • Jumper kablolar
  • Veri destekli USB kablosu ve Arduino IDE 2.x yüklü bilgisayar
  • Test yükü olarak: 12V LED şerit/lamba ve 12V adaptör (önerilen)
  • 2,4 GHz Wi-Fi ağı

Hazır bir alternatif arıyorsanız akıllı priz kurulumu rehberimize ve elektronik ürünleri sayfamıza göz atın.

Adım 1: Röle Modülünü Tanıyın

Röle modülünün iki tarafı vardır:

  • Kontrol tarafı (düşük gerilim): VCC, GND ve IN pinleri. ESP32'ye bağlanır.
  • Yük tarafı (anahtar): COM (ortak), NO (normalde açık) ve NC (normalde kapalı) vidalı klemensler. Lambanın devresi buradan geçer.

Röle çekmediğinde COM ile NC birbirine bağlıdır; röle çektiğinde COM ile NO bağlanır. Lamba için COM ve NO uçlarını kullanırsınız; böylece ESP32 kapalıyken veya resetlenirken lamba sönük kalır.

Modülün kontaklarının taşıyabileceği akım ve gerilim, rölenin üzerinde yazar (örneğin 10A 250VAC). Bu değerleri asla aşmayın; ısıtıcı veya su ısıtıcısı gibi yüksek güçlü cihazlar için bu modüller uygun değildir.

Adım 2: Kontrol Tarafını Bağlayın

| Röle modülü | ESP32 | | --- | --- | | VCC | VIN (5V, USB'den gelir) | | GND | GND | | IN | GPIO26 |

ESP32'nin pinleri 3,3V çalışır. Çoğu optokuplörlü 5V röle modülü 3,3V sinyalle sorunsuz tetiklenir; tetiklenmiyorsa 3,3V uyumlu bir modül kullanın. GPIO6-11 arası pinlere (dahili flash) ve yalnızca giriş olarak çalışan GPIO34-39'a bağlamayın.

Adım 3: Kodu Yükleyin

Arduino IDE'de ESP32 kart paketinin kurulu olduğundan emin olun (kurulum ayrıntıları ESP32 DHT22 rehberimizde anlatılıyor). Aşağıdaki kodda ssid ve password satırlarını kendi ağınıza göre düzenleyin.

#include "WiFi.h"
#include "WebServer.h"
#include "ESPmDNS.h"

const char* ssid = "AgAdiniz";
const char* password = "WifiSifreniz";

const int ROLE_PIN = 26;
const bool ROLE_AKTIF_LOW = true;   // cogu modul LOW ile ceker

WebServer server(80);
bool lambaAcik = false;

void roleYaz(bool acik) {
  lambaAcik = acik;
  if (ROLE_AKTIF_LOW) {
    digitalWrite(ROLE_PIN, acik ? LOW : HIGH);
  } else {
    digitalWrite(ROLE_PIN, acik ? HIGH : LOW);
  }
}

String sayfa() {
  String durum = lambaAcik ? "ACIK" : "KAPALI";
  String html = "<!DOCTYPE html><html><head><meta charset='utf-8'>";
  html += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
  html += "<title>Lamba</title><style>";
  html += "body{font-family:sans-serif;text-align:center;padding-top:40px}";
  html += "a{display:inline-block;margin:10px;padding:18px 36px;font-size:22px;";
  html += "color:#fff;border-radius:10px;text-decoration:none}";
  html += ".ac{background:#17A7EC}.kapat{background:#0F407C}";
  html += "</style></head><body>";
  html += "<h1>Lamba: " + durum + "</h1>";
  html += "<a class='ac' href='/ac'>AC</a>";
  html += "<a class='kapat' href='/kapat'>KAPAT</a>";
  html += "</body></html>";
  return html;
}

void anaSayfa() {
  server.send(200, "text/html", sayfa());
}

void ac() {
  roleYaz(true);
  server.sendHeader("Location", "/");
  server.send(303);
}

void kapat() {
  roleYaz(false);
  server.sendHeader("Location", "/");
  server.send(303);
}

void setup() {
  Serial.begin(115200);
  roleYaz(false);            // once kapali seviyeyi yaz
  pinMode(ROLE_PIN, OUTPUT);
  roleYaz(false);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("IP adresi: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("lamba")) {
    Serial.println("Adres: http://lamba.local");
  }

  server.on("/", anaSayfa);
  server.on("/ac", ac);
  server.on("/kapat", kapat);
  server.begin();
}

void loop() {
  server.handleClient();
}

Yükleme sırasında "Connecting..." yazısında takılırsa kartın BOOT düğmesine basılı tutun, yükleme başlayınca bırakın.

Adım 4: Telefondan Test Edin

  1. Seri Monitör'ü 115200 baud'da açın ve görünen IP adresini not edin.
  2. Telefonunuzu aynı Wi-Fi ağına bağlayın.
  3. Tarayıcıya IP adresini veya http://lamba.local adresini yazın. Bazı Android telefonlar .local adreslerini çözemeyebilir; bu durumda IP adresini kullanın.
  4. "AÇ" düğmesine bastığınızda rölenin tık sesi gelmeli ve modül üzerindeki LED yanmalıdır.

Sayfayı telefonun ana ekranına kısayol olarak eklerseniz uygulama gibi tek dokunuşla açılır.

Adım 5: Güvenli Test Yükü Bağlayın

Önce düşük gerilimle deneyin:

  1. 12V adaptörün artı kablosunu rölenin COM ucuna bağlayın.
  2. Rölenin NO ucundan çıkan kabloyu 12V LED lambanın artı ucuna bağlayın.
  3. Lambanın eksi ucunu doğrudan adaptörün eksi ucuna bağlayın.

Telefondan "AÇ" dediğinizde lamba yanıyorsa sistem doğru çalışıyordur. 12V ile çalışan LED şerit projeleri için LED şerit kurulumu rehberimiz güç hesabını ayrıntılı anlatıyor.

Adım 6: 220V Kullanmayı Düşünüyorsanız

Bu adım bilgi amaçlıdır; uygulamayı ancak deneyimliyseniz ve sorumluluğu üstlenebiliyorsanız yapın.

  • Röle modülü, ESP32 ve adaptör kapalı, yanmaz plastikten bir proje kutusu içinde olmalıdır. Açık breadboard kesinlikle kullanılmaz.
  • Röle yalnızca faz (L) hattını kesmelidir; nötr hattı doğrudan lambaya gider.
  • Kablo kesitleri yükün akımına uygun olmalı, uçlar yüksüklü ve klemensler sıkı olmalıdır.
  • Kutu girişinde kabloyu çekmeye karşı tutan kablo rakoru kullanılmalıdır.
  • Tüm bağlantılar sigorta kapalıyken yapılmalı, kutu kapanmadan enerji verilmemelidir.

Ucuz röle modüllerinin sınırları

Birçok ucuz röle modülünde düşük gerilim ve şebeke tarafı arasındaki yalıtım mesafesi yetersizdir. Etikette yazan değer kısa süreli dayanımı gösterir; sürekli yükte kontaklar ısınabilir. Şebeke gerilimiyle uzun süreli kullanım için CE işaretli, sertifikalı ürünler tercih edin.

Projeyi Geliştirmek

  • Sabit IP: Modeminizde ESP32'nin MAC adresine DHCP rezervasyonu yaparak adresin değişmesini önleyin.
  • Fiziksel düğme: Bir butonu başka bir GPIO pinine bağlayıp lambayı elle de kontrol edebilirsiniz.
  • Zamanlayıcı: NTP üzerinden saat alıp belirli saatlerde otomatik açma eklenebilir.
  • Home Assistant: Projeyi ESPHome ile yeniden yazarak Raspberry Pi ile Home Assistant kurulumu rehberimizdeki sisteme dahil edebilirsiniz.

Sık Yapılan Hatalar

  • Lambayı NC ucuna bağlamak: ESP32 kapalıyken lamba sürekli yanar.
  • Röle aktif seviyesini bilmemek: "AÇ" deyince sönüyorsa ROLE_AKTIF_LOW değerini değiştirin.
  • 5 GHz ağa bağlanmaya çalışmak: ESP32 yalnızca 2,4 GHz destekler.
  • Sayfayı internete açmak: Bu kodda şifre yoktur; modemden port yönlendirme yapıp dışarı açmayın.

Sıkça Sorulan Sorular

ESP32 ile 220V lamba kontrol etmek yasal mı?

Kendi evinizde kendi kullanımınız için bir cihaz yapmak genel olarak yasak değildir, ancak elektrik tesisatına yapılan müdahalelerden doğan hasar ve yangın riski size aittir ve sigorta poliçelerinde sorun çıkarabilir. Sabit tesisata yapılacak işler için yetkili elektrikçiye başvurmak en doğrusudur.

Röle modülü 3,3V ile tetiklenmiyor, ne yapmalıyım?

Bazı 5V röle modülleri 3,3V sinyali yeterli görmez. Çözüm olarak 3,3V uyumlu bir röle modülü alabilir veya araya bir NPN transistör ekleyebilirsiniz. Optokuplörlü modüllerde VCC'yi 5V'tan beslemek genellikle sorunu çözer.

İnternet üzerinden evin dışından da kontrol edebilir miyim?

Bu koddaki sayfa şifresizdir ve yalnızca yerel ağda kullanılmalıdır. Dışarıdan erişim için Home Assistant, MQTT tabanlı bir bulut servisi veya VPN gibi güvenli yöntemler tercih edin; modem üzerinden doğrudan port açmak güvenlik açığı yaratır.

Elektrik kesilince lamba ne olur?

Elektrik geri geldiğinde ESP32 yeniden başlar ve kod röleyi kapalı konumda başlatır; lamba sönük kalır. Son durumu hatırlamasını isterseniz Preferences kütüphanesiyle durumu flash belleğe kaydedebilirsiniz.