ESP8266 ile web server kurup server üzerinden çıkış portlarını kontrol edelim. Öncelikle bir led ile bağlayalım. Resimdeki devreyle başlayalım.

Aşağıdaki kodu Arduino IDE programınıza yapıştırın. Kodun içindeki KENDI_WIFI_ADINIZ ve KENDI_WIFI_SIFRENIZ alanlarını kendi internet bilgilerinizle değiştirmeyi unutmayın.
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
// Wi-Fi Bilgileri
const char* ssid = "KENDI_WIFI_ADINIZ";
const char* password = "KENDI_WIFI_SIFRENIZ";
// Web Server'ı 80 portunda başlatıyoruz (Standart HTTP portu)
ESP8266WebServer server(80);
// Kontrol edeceğimiz çıkış pini: D1 (GPIO5)
const int ledPin = 5;
bool ledDurumu = LOW;
// Ana Sayfa HTML Tasarımı
void handleRoot() {
String html = "<!DOCTYPE html><html>";
html += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">";
html += "<link rel=\"icon\" href=\"data:,\">";
html += "<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}";
html += ".button { background-color: #1976D2; border: none; color: white; padding: 16px 40px;";
html += "text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}";
html += ".button2 {background-color: #555555;}</style></head>";
html += "<body><h1>ESP8266 Web Sunucusu</h1>";
html += "<p>LED Durumu: " + String(ledDurumu ? "ACIK" : "KAPALI") + "</p>";
if (!ledDurumu) {
html += "<p><a href=\"/led/on\"><button class=\"button\">LED'i AC</button></a></p>";
} else {
html += "<p><a href=\"/led/off\"><button class=\"button button2\">LED'i KAPAT</button></a></p>";
}
html += "</body></html>";
server.send(200, "text/html", html);
}
// LED'i Açma Komutu geldiğinde çalışacak fonksiyon
void handleLEDOn() {
ledDurumu = HIGH;
digitalWrite(ledPin, ledDurumu);
server.sendHeader("Location", "/"); // İşlem bitince ana sayfaya yönlendir
server.send(303);
}
// LED'i Kapatma Komutu geldiğinde çalışacak fonksiyon
void handleLEDOff() {
ledDurumu = LOW;
digitalWrite(ledPin, ledDurumu);
server.sendHeader("Location", "/"); // İşlem bitince ana sayfaya yönlendir
server.send(303);
}
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, ledDurumu); // Başlangıçta kapalı yap
// Wi-Fi bağlantısını başlatma
Serial.println();
Serial.print("Baglanti kuruluyor: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Wi-Fi baglantisi saglandi.");
Serial.print("ESP8266 IP Adresi: ");
Serial.println(WiFi.localIP()); // Tarayıcıya yazacağımız IP adresi
// Web adresi rotalarını (URL) tanımlama
server.on("/", handleRoot);
server.on("/led/on", handleLEDOn);
server.on("/led/off", handleLEDOff);
// Sunucuyu başlat
server.begin();
Serial.println("Web server baslatildi.");
}
void loop() {
server.handleClient(); // Gelen web isteklerini sürekli dinle
}
Sistemi ayağa kaldırmak için sırasıyla şu adımları takip edin:
ESP8266 kartınızı bilgisayara bağlayın. Doğru Port ve Kart modelini (Örn: NodeMCU 1.0) seçip yukarıdaki kodu yükleyin.
Sağ üst köşedeki Seri Port Ekranı (Serial Monitor) simgesine tıklayın ve sağ alttaki hızı 115200 baud olarak ayarlayın. Kart üzerindeki RST (Reset) butonuna bir kez basın.
Ekranda noktalar ilerleyecek ve bağlantı kurulduğunda size ESP8266 IP Adresi: 192.168.1.XX gibi bir yerel IP adresi verecektir. Bu adresi kopyalayın.
Telefonunuzun veya bilgisayarınızın ESP8266 ile aynı Wi-Fi ağına bağlı olduğundan emin olun. Tarayıcınızı (Chrome, Safari vb.) açıp adres çubuğuna o IP adresini yazıp git tuşuna basın. Karşınıza web server deki buton çıkacaktır.

Önemli İpucu: Eğer tek bir LED yerine evdeki 220V bir lambayı veya cihazı kontrol etmek isterseniz, LED yerine bir Röle Kartı (Relay Module) bağlamanız gerekir. ESP8266 çıkışları 3.3V olduğu için doğrudan yüksek akım çeken cihazları çalıştıramaz.
Henüz yorum yapılmamış. İlk yorumu siz yapın!