
Telefondan LED Kontrolü (ESP32 Wi-Fi)
Başlangıç20 dkESP32 evdeki Wi-Fi ağına bağlanıp küçük bir web sayfası sunar; telefonun tarayıcısında açtığın sayfadaki AÇ ve KAPAT düğmeleriyle LED'i uzaktan yakıp söndürürsün. Uygulama kurmak gerekmez, aynı ağdaki her telefon ya da bilgisayar sayfayı açabilir. Akıllı ev projelerinin ilk adımı: aynı yöntemle röle, motor ya da başka bir cihaz da kontrol edilir.
Uygulamada adım adım yapGerekli malzemeler
1 × ESP32 Geliştirme Kartı (ESP32-WROOM-32)
1 × Breadboard 830 Pin (MB-102)
1 × LED - Kırmızı (5mm)
1 × Direnç 220 Ω (1/4W)
2 × Jumper Kablo - Erkek/Dişi
Bağlantı adımları
- 1
LED'i ve direnci breadboard'a tak

LED'in uzun bacağı artı (+), kısa bacağı eksidir (−). Kısa bacağı 13. sütuna, uzun bacağı 14. sütuna, ikisini de E satırına tak; LED'in başı ortadaki boşluğun üstünde dursun. 220 Ω direncin bir ucunu 10. sütuna, diğer ucunu LED'in uzun bacağıyla aynı sütuna, 14'e tak (C satırı). Direncin yönü önemli değil. Aynı sütundaki beş delik birbirine bağlıdır; direnç ile LED böylece birleşir.
- kırmızı LED uzun bacak (+) → 14. sütun, alt yarı
- kırmızı LED kısa bacak (−) → 13. sütun, alt yarı
- 220 Ω direnç → 10. ve 14. sütunlar, alt yarı
- 2
ESP32'yi iki kabloyla bağla

ESP32 breadboard'a takılmaz, masada durur. İki erkek-dişi jumper kablonun dişi ucunu ESP32'nin pinine, erkek ucunu breadboard'a tak: D2'yi 10. sütuna (direncin boştaki ucu), kartın sağ kenarında 3V3'ün hemen üstündeki GND'yi 13. sütuna (LED'in kısa bacağı). D2 kartın üstündeki mavi LED'e de bağlıdır: LED'i takmasan bile mavi LED yanıp söner. Kodu yüklemeden önce koddaki WIFI_NAME ve WIFI_PASSWORD'a evdeki Wi-Fi ağının adını ve şifresini yaz; ESP32 yalnızca 2,4 GHz ağlara bağlanır.
- ESP32 D2 → 10. sütun, alt yarı (yeşil kablo)
- ESP32 GND (3V3'ün yanındaki) → 13. sütun, alt yarı (siyah kablo)
Arduino kodu
// Kart: "ESP32 Dev Module"
#include <WiFi.h>
#include <WebServer.h>
// Evdeki Wi-Fi ağının adı ve şifresi
const char* WIFI_NAME = "Ag_Adi";
const char* WIFI_PASSWORD = "Sifre";
// LED'in pini; kartın mavi LED'i de bu
const int LED_PIN = 2;
// Bu kadar beklenince şifre sorulur (ms)
const unsigned long WIFI_HINT_AFTER = 15000;
// Telefonun açtığı web sunucusu, port 80
WebServer server(80);
bool ledOn = false;
// Telefonda açılan sayfa: durum ve iki
// büyük düğme
String page() {
String html =
"<!DOCTYPE html><html><head><meta charset='utf-8'>"
"<meta name='viewport' content='width=device-width'>"
"<title>ESP32 LED</title><style>"
"body{font-family:sans-serif;text-align:center;"
"background:#111;color:#eee;padding-top:40px}"
"a{display:block;margin:16px auto;width:220px;"
"padding:18px;font-size:24px;color:#111;"
"text-decoration:none;border-radius:8px}"
".on{background:#4aff8c}.off{background:#ff5c5c}"
"</style></head><body><h1>LED: ";
html += ledOn ? "AÇIK" : "KAPALI";
html += "</h1><a class='on' href='/on'>AÇ</a>";
html += "<a class='off' href='/off'>KAPAT</a>";
html += "</body></html>";
return html;
}
void showPage() {
server.send(200, "text/html", page());
}
void setLed(bool on) {
ledOn = on;
digitalWrite(LED_PIN, on ? HIGH : LOW);
Serial.println(on ? "LED açıldı" : "LED kapandı");
// Sayfaya dön: yenilemek yine basmaz
server.sendHeader("Location", "/");
server.send(303);
}
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Serial.print("Bağlanılan ağ: ");
Serial.println(WIFI_NAME);
WiFi.begin(WIFI_NAME, WIFI_PASSWORD);
unsigned long start = millis();
bool hinted = false;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (!hinted && millis() - start > WIFI_HINT_AFTER) {
// Bağlanamadı: ad ve şifreye bak
Serial.println();
Serial.println("Ağın adını ve şifresini kontrol et.");
hinted = true;
}
}
Serial.println();
Serial.print("Telefonda aç: http://");
Serial.println(WiFi.localIP());
server.on("/", showPage);
server.on("/on", [] { setLed(true); });
server.on("/off", [] { setLed(false); });
server.begin();
}
void loop() {
// Gelen her isteğe cevap verir
server.handleClient();
}
Seri Monitörde göreceğin
Bağlanılan ağ: EvAgim ..... Telefonda aç: http://192.168.1.42 LED açıldı LED kapandı
Bir kablo yerinde değilse
Bağlanılan ağ: EvAgim .............................. Ağın adını ve şifresini kontrol et. ..........
Sonuç
Arduino IDE'de ESP32 kurulu değilse bir kerelik: Dosya → Tercihler'de "Ek kart yöneticisi URL'leri" kutusuna https://espressif.github.io/arduino-esp32/package_esp32_index.json yaz, Araçlar → Kart → Kart Yöneticisi'nden "esp32 by Espressif Systems"ı kur ve kart olarak "ESP32 Dev Module"ü seç. Bu projede kitaplık kurmak gerekmez. Kodu yükle ve Seri Monitörü 115200 baud'da aç. Birkaç saniye içinde "Telefonda aç: http://192.168.1.42" gibi bir satır yazar; sendeki adres farklı olur. Telefonunu aynı Wi-Fi ağına bağla (mobil veri değil) ve tarayıcıya bu adresi yaz: "LED: KAPALI" yazan bir sayfa ve AÇ ile KAPAT düğmeleri açılır. AÇ'a basınca LED ve kartın mavi LED'i yanar, sayfada "LED: AÇIK" yazar; KAPAT ile söner. Seri Monitör her basışı yazar. Sayfa açılmıyorsa telefonun ESP32 ile aynı ağda olduğundan emin ol; misafir ağları ve bazı modemlerin "istemci yalıtımı" ayarı cihazların birbirini görmesini engeller. ESP32 yeniden başlayınca adres değişebilir; Seri Monitörden yeniden bak. Sayfa yalnızca evdeki ağın içinden açılır, dışarıdan açılmaz. Noktalar hiç bitmiyorsa ve "Ağın adını ve şifresini kontrol et" yazıyorsa ağın adına, şifresine ve 2,4 GHz olduğuna bak. Yükleme "Connecting..." yazıp hata veriyorsa yükleme sırasında ESP32'nin BOOT düğmesine basılı tut.
Uygulamada her bağlantıyı tek tek işaretle, envanterindeki parçalarla eşleştir ve kaldığın yerden devam et.
Uygulamada adım adım yap