ESP8266 NodeMCU Otomatik Yedek Wi-Fi Bağlantısı (Multi-SSID)

👤 Yazar: ozcan 📅 Tarih: 29.07.2026 14:34 👁️ Görüntüleme: 7

ESP8266 NodeMCU Otomatik Yedek Wi-Fi Bağlantısı (Multi-SSID)

IoT projelerinde en sık karşılaşılan sorunlardan biri, cihazın bağlı olduğu Wi-Fi ağının kopması veya yönlendiricinin (router) kapanmasıdır. Bu rehberde, ESP8266 NodeMCU için ana Wi-Fi ağı koptuğunda veya ulaşılamaz olduğunda otomatik olarak belirlenen yedek Wi-Fi ağına bağlanan, bağlantı geldikçe ağlar arasında geçiş yapabilen esnek bir yapı kuruyoruz.


Sistem Nasıl Çalışır?
  • ESP8266 bünyesindeki ESP8266WiFiMulti kütüphanesi kullanılır.
  • Kod içerisine öncelikli Ana Ağ ve Yedek Ağ (Örn: Mobil Erişim Noktası) bilgileri tanımlanır.
  • Cihaz ilk açılışta veya yayın esnasında sinyal kalitesi en yüksek ve erişilebilir olan ağı otomatik seçer.
  • Ana ağ koptuğunda arka planda döngüyü kesintiye uğratmadan yedek ağa geçiş sağlar.

Örnek Arduino IDE Kodu

Aşağıdaki koda ana Wi-Fi ağınızın ve yedek ağınızın (telefonunuzun kişisel erişim noktası gibi) bilgilerini ekleyerek NodeMCU'nuza yükleyebilirsiniz:

// ESP8266 NodeMCU Cift Wi-Fi (Ana ve Yedek Ag) Yonetimi

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

// WiFiMulti Nesnesi Oluşturma
ESP8266WiFiMulti wifiMulti;

// Baglanti Durumunu Takip Etmek Icin Zamanlayici
unsigned long lastCheckTime = 0;
const unsigned long checkInterval = 5000; // 5 saniyede bir kontrol et

void setup() {
  Serial.begin(115200);
  delay(10);

  // Wi-Fi Modunu STA (Istasyon) Olarak Ayarla
  WiFi.mode(WIFI_STA);

  // --- AĞ TANIMLAMALARI ---
  // 1. Ana Wi-Fi Ağı (Öncelikli Ev/Ofis Ağı)
  wifiMulti.addAP("ANA_WIFI_ADI", "ANA_WIFI_SIFRESI");

  // 2. Yedek Wi-Fi Ağı (Telefon Hotspot veya 2. Modem)
  wifiMulti.addAP("YEDEK_WIFI_ADI", "YEDEK_WIFI_SIFRESI");

  // (Istege bagli) 3. bir yedek ag daha eklenebilir:
  // wifiMulti.addAP("UCUNCU_WIFI_ADI", "SIFRE3");

  Serial.println("\nWi-Fi Aglarina Baglaniliyor...");

  // Tanımlı ağlardan birine bağlanana kadar bekle
  while (wifiMulti.run() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("\n----------------------------------");
  Serial.println("Wi-Fi Baglantisi Basarili!");
  Serial.print("Baglanan Ag (SSID): ");
  Serial.println(WiFi.SSID());
  Serial.print("IP Adresi: ");
  Serial.println(WiFi.localIP());
  Serial.println("----------------------------------");
}

void loop() {
  // Arka planda baglanti durumunu kontrol et
  // Eğer bağlı olunan ağ koparsa wifiMulti.run() otomatik olarak yedek ağa bağlanır
  if (wifiMulti.run() == WL_CONNECTED) {
    
    // Periyodik olarak seri porttan baglanti durumunu raporla
    if (millis() - lastCheckTime >= checkInterval) {
      lastCheckTime = millis();
      
      Serial.print("[SISTEM CALISIYOR] Aktif Ag: ");
      Serial.print(WiFi.SSID());
      Serial.print(" | IP: ");
      Serial.print(WiFi.localIP());
      Serial.print(" | Sinyal Gucu (RSSI): ");
      Serial.print(WiFi.RSSI());
      Serial.println(" dBm");
    }

    // --- BURAYA KENDI KODLARINIZI EKLENIZ (LED kontrol, Sensor Okuma vb.) ---

  } else {
    // Baglanti tamamen koptugunda veya gecis aninda
    Serial.println("[UYARI] Wi-Fi Baglantisi Kopuk! Uygun ag araniyor...");
    delay(1000);
  }
}

Avantajları ve Dikkat Edilmesi Gerekenler

  • Sessiz ve Otomatik Geçiş: wifiMulti.run() komutu loop() içinde çağrıldığında, arka planda tanımlı SSID'leri sürekli tarar. Ana modem kapandığında cihaz birkaç saniye içinde yedek telefona/modeme sorunsuz bağlanır.
  • Dinamik IP Değişimi: Ağ değiştirdiğinde ESP8266 yeni bağlandığı ağdan yeni bir IP adresi alır. Sabit IP gerektiren uygulamalarınız varsa, tarayıcı arayüzü yerine MQTT veya WebSocket gibi IP'den bağımsız protokoller kullanmanız önerilir.
  • Modem Geri Geldiğinde: Ana ağ tekrar açıldığında, sinyal gücü ve erişim durumuna göre cihaz ana ağ kapsama alanına girdiğinde otomatik olarak ona geri dönebilir.

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1