ESP32 Statik IP Adresi Nasıl Ayarlanır?

ESP32 Statik IP Adresi Nasıl Ayarlanır?

Bu rehberimizde, ESP32 statik IP adresi atama yöntemlerini tüm teknik detaylarıyla inceliyoruz. ESP32 kartınız ile bir web sunucusu (web server), yerel bir akıllı ev düğümü (HomeKit/Home Assistant istemcisi) veya TCP/UDP soket haberleşmeli Wi-Fi istemcisi çalıştırıyorsanız, kartı her yeniden başlattığınızda yönlendiricinizin (modem/router) DHCP sunucusu tarafından yeni bir dinamik IP adresi atanabilir.

Bu durum, istemci cihazların ESP32’ye erişimini kesintiye uğratır. Bu sorunu kökten çözmek ve kartınıza kalıcı bir IP adresi tanımlamak için rehberimizdeki adımları takip edebilirsiniz.

Daha önce kablosuz ağ üzerinden gerçekleştirdiğimiz NodeMCU ESP8266 ile Röle Kontrolü projemizde kullanılan tüm kod yapıları, bu rehber için ESP32 mimarisine uygun şekilde revize edilerek örnek şablon olarak kullanılmıştır.

Aşağıdaki temel kod bloğunu Arduino IDE’nize kopyalayabilirsiniz, ancak kodu doğrudan karta yüklemeyin. Kodun yerel ağınızda kararlı çalışabilmesi için IP aralığı ve ağ geçidi gibi parametrelerde değişiklik yapmanız gerekir. Örneğin, bu kodda varsayılan olarak tanımlanan 192.168.1.184 statik IP adresi, modeminize bağlı diğer cihazlar tarafından zaten kullanılıyor olabilir (IP çakışması) veya modeminizin dağıtım havuzunun (gateway) IP yapısı 192.168.1.X yerine 192.168.0.X veya 10.0.0.X bloklarında çalışıyor olabilir. Dolayısıyla bu değerleri kendi ağ altyapınıza göre düzenlemelisiniz.

Yazı İçeriği

1. Ağ Kimlik Bilgilerini Yapılandırma

Kodun kablosuz ağınıza bağlanabilmesi için aşağıdaki satırlarda yer alan yerel Wi-Fi adınızı (SSID) ve şifrenizi kendi bilgilerinizle güncelleyin:

2. Yazılımsal Olarak Statik IP Adresini Tanımlama

Arduino kodunun setup() ve loop() fonksiyonlarının dışında, küresel alanda aşağıdaki IPAddress sınıf nesnelerini kendi ağ geçidinize uygun olarak yapılandırmalısınız.

Aşağıdaki varsayılan tanımlamada, modeminizin ağ geçidi (gateway) 192.168.1.1 olarak kabul edilmiş ve ESP32 için 192.168.1.184 sabit IP adresi seçilmiştir:

Önemli Güvenlik Kuralı: Atayacağınız statik IP adresinin, modeminizin DHCP sunucusunun otomatik olarak dağıttığı adres havuzunun (genellikle 192.168.1.2 ila 192.168.1.100 arası) dışında olmasına dikkat edin. Bu sayede modemin diğer telefonlara veya bilgisayarlara aynı IP adresini vermesini (IP adres çakışmasını) önlemiş olursunuz. Örneğin, 192.168.1.200 gibi yüksek bir havuz adresi seçmek güvenli bir yoldur.

3. setup() Fonksiyonu Altında WiFi Yapılandırması

setup() fonksiyonu içinde, bu donanımsal ağ yapılandırmalarını ESP32’ye aktarmak için WiFi.config() metodunu çağırmamız gerekir.

Uzman Önerisi (Doğru Sıralama): ESP32 Core kütüphanelerinde yapılan güncellemeler doğrultusunda, statik IP ayarlarının kararlı bir şekilde uygulanabilmesi için WiFi.config() fonksiyonu mutlaka WiFi.begin() çağrısından önce çağrılmalıdır. Aksi takdirde kart önce DHCP’den rastgele bir IP almaya çalışacak ve statik yapılandırma başarısız olacaktır.

Not: Parametre listesindeki primaryDNS (birincil DNS) ve secondaryDNS (ikincil DNS) alanları isteğe bağlıdır; eğer ağınızda özel bir DNS çözümleme ihtiyacı yoksa bu parametreleri fonksiyondan kaldırabilirsiniz.

Gerekli değişikliklerin ardından kodu yükleyin. Arduino IDE Seri Port Ekranını (Serial Monitor) 115200 baud hızında açıp ESP32’nin RST butonuna bastığınızda, tanımladığınız sabit IP’nin karta başarıyla atandığını görebilirsiniz:

ESP32 Statik IP Seri Port Çıktısı
Seri Port ekranında statik IP atamasının doğrulanması

Görüldüğü üzere, kart yerel Wi-Fi ağına başarıyla bağlanmış ve 192.168.1.184 statik adresini almıştır. Bu kod bloğunu temel alarak tüm Wi-Fi tabanlı ESP32 ve ESP8266 projelerinize statik IP özelliğini entegre edebilirsiniz.

Yöntem 2: MAC Adresi Rezervasyonu ile Sabit IP Atama (Önerilen)

Yazılımsal olarak kod içerisinden statik IP atamak bazen modemlerin DHCP sunucu yapılandırmalarıyla (lease time, IP koruma vb.) çakışabilir ve bağlantının kararsızlaşmasına sebep olabilir. Ağ yöneticilerinin en çok tavsiye ettiği kararlı yöntem, ESP32’nin benzersiz MAC adresi üzerinden doğrudan modem arayüzünden IP rezervasyonu yapmaktır.

Bunun için öncelikle kartımızın fiziksel MAC adresini öğrenmemiz gerekir. Aşağıdaki basit kodu ESP32’nize yükleyin:

Kod yüklendikten sonra Seri Monitörü açın. Cihaz ağa bağlanırken size benzersiz MAC adresini gösterecektir:

ESP32 MAC Adresi Okuma
ESP32 donanımsal MAC adresi çıktısı

Yukarıdaki örnek çıktıda, ESP32’nin MAC adresi B4:E6:2D:97:EE:F1 olarak okunmuştur. Bu benzersiz adresi bir kenara not edin.

Modem/Router Arayüzü Üzerinden IP Tanımlama

1. Bilgisayarınızın web tarayıcısından modem arayüzünüze (genellikle 192.168.1.1 veya 192.168.0.1 adreslerinden) giriş yapın.
2. Gelişmiş ayarlar altındaki Yerel Ağ (LAN) / DHCP Sunucusu / IP Rezervasyonu (Static Lease) veya IP-MAC Eşleştirme (IP-MAC Binding) menüsüne gidin.
3. “Yeni Ekle” butonuna basarak not ettiğiniz ESP32 MAC adresini (örn: B4:E6:2D:97:EE:F1) yazın ve bu donanıma atanmasını istediğiniz sabit IP adresini (örn: 192.168.1.150) girip kaydedin.

Bu donanımsal eşleştirme kaydedildikten sonra, ESP32 kodunda hiçbir ekstra statik IP komutu olmasa bile, modem her açılışta bu MAC adresini tanıyacak ve ona sürekli rezerve ettiğiniz sabit IP’yi gönderecektir. Bu yöntem, ağdaki IP çakışmalarını tamamen önleyen en profesyonel çözümdür.

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.