ESP32 ile Wi-Fi Bağlantısı

Giriş

ESP32 veya ESP8266 tabanlı IoT projelerinde Wi-Fi bağlantısı kurmak, neredeyse her projenin ilk adımıdır. Ancak çoğu geliştirici, Wi-Fi şifresini doğrudana .ino dosyasına yazarak güvenlik açığı oluşturur. Bu yazımızda, arduino_secrets.h dosyası kullanarak şifrelerinizi nasıl koruyacağınızı, bağlantı sürecinde hangi hatalarla karşılaşabileceğinizi ve bu hataları nasıl yöneteceğinizi adım adım inceleyeceğiz.

Neden arduino_secrets.h Kullanmalısınız?

Wi-Fi bilgilerini ana kod dosyanız yerine ayrı bir başlık dosyasında tutmanın avantajları:

Güvenlik: Şifreleriniz ana kodunuzdan izole olur, GitHub gibi platformlarda yanlışlıkla paylaşılma riski azalır.
Yönetilebilirlik: Birden fazla proje için aynı şifre dosyasını kullanabilir, tek noktadan güncelleme yapabilirsiniz.

Proje klasörünüzde aşağıdaki gibi bir dosya oluşturun:

// arduino_secrets.h
#define SECRET_SSID "WiFi_Aginizin_Adi"
#define SECRET_PASS "WiFi_Sifreniz"

ESP32 ile Wi-Fi Bağlantısı

#include <WiFi.h>
#include "arduino_secrets.h"

// Wi-Fi bilgileri harici dosyadan alınıyor
const char* ssid = SECRET_SSID;
const char* password = SECRET_PASS;

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

  WiFi.begin(ssid, password);
  Serial.println("Bağlantı kuruluyor...");

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    int status = WiFi.status();

    if(status == WL_NO_SSID_AVAIL) 
      Serial.println("Hata: Ağ bulunamadı (SSID hatalı olabilir)");
    else if(status == WL_CONNECT_FAILED) 
      Serial.println("Hata: Bağlantı başarısız (şifre yanlış olabilir)");
    else if(status == WL_CONNECTION_LOST) 
      Serial.println("Hata: Bağlantı koptu");
    else {
      Serial.print(" Bekleniyor... Durum Kodu: "); 
      Serial.println(status);
    }
  }

  Serial.println(" Wi-Fi bağlantısı başarılı!");
  Serial.print(" IP Adresi: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  // Ana döngüde yapılacak işlemler buraya
}

Wi-Fi Durum Kodları ve Anlamları

KodSabitAnlamı
0WL_IDLE_STATUSGeçici durum
1WL_NO_SSID_AVAILAğ bulunamadı
2WL_SCAN_COMPLETEDTarama tamamlandı
3WL_CONNECTEDBağlantı başarılı
4WL_CONNECT_FAILEDBağlantı reddedildi
5WL_CONNECTION_LOSTBağlantı koptu
6WL_DISCONNECTEDBağlantı kesildi

Kodunuzda #include <WiFi.h> kullandığınız için bu sabitleri doğrudan isimleriyle (WL_NO_SSID_AVAIL gibi) kullanmak kod okunabilirliğini artırır.

Sık Karşılaşılan Sorunlar ve Çözümleri

SorunOlası NedenÇözüm
WL_NO_SSID_AVAILYanlış SSID, 5GHz ağ, menzil dışıSSID’yi kontrol edin, 2.4GHz ağı deneyin
WL_CONNECT_FAILEDYanlış şifre, MAC filtresiŞifreyi doğrulayın, router ayarlarını kontrol edin
Bağlantı kopuyorZayıf sinyal, güç kaynağıAnteni yaklaştırın, yeterli güç sağlayın
Derleme hatası: arduino_secrets.h not foundDosya eksik veya yanlış konumdaDosyayı .ino ile aynı klasöre ekleyin

Proje Yapısı Önerisi

ESP32_WiFi_Project/
├── ESP32_WiFi_Project.ino
├── arduino_secrets.h    

Bonus: Otomatik Yeniden Bağlanma Fonksiyonu (Opsiyonel)

Bağlantı koptuğunda otomatik tekrar bağlanmak için loop() içine şu kodu ekleyebilirsiniz:

void loop() {
  if (WiFi.status() != WL_CONNECTED) {
    Serial.println("Bağlantı koptu, yeniden bağlanılıyor...");
    WiFi.begin(ssid, password);
    delay(5000);
  }
  // Diğer işlemleriniz...
  delay(1000);
}

Sonuç

arduino_secrets.h yaklaşımı, IoT projelerinizde hem güvenlik hem de kod yönetimi açısından profesyonel bir standarttır. Bu yapıyı benimseyerek, projelerinizi daha güvenli, taşınabilir ve ekip çalışmasına uygun hale getirebilirsiniz.


Ekstra: Meta Açıklaması (SEO)

ESP32 ile Wi-Fi bağlantısı kurarken şifre güvenliği nasıl sağlanır? arduino_secrets.h kullanımı, hata yönetimi ve en iyi uygulamaları bu rehberde öğrenin. #ESP32 #Arduino #IoT

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir