Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

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.
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"
#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
}
| Kod | Sabit | Anlamı |
|---|---|---|
| 0 | WL_IDLE_STATUS | Geçici durum |
| 1 | WL_NO_SSID_AVAIL | Ağ bulunamadı |
| 2 | WL_SCAN_COMPLETED | Tarama tamamlandı |
| 3 | WL_CONNECTED | Bağlantı başarılı |
| 4 | WL_CONNECT_FAILED | Bağlantı reddedildi |
| 5 | WL_CONNECTION_LOST | Bağlantı koptu |
| 6 | WL_DISCONNECTED | Bağlantı kesildi |
Kodunuzda
#include <WiFi.h>kullandığınız için bu sabitleri doğrudan isimleriyle (WL_NO_SSID_AVAILgibi) kullanmak kod okunabilirliğini artırır.
| Sorun | Olası Neden | Çözüm |
|---|---|---|
WL_NO_SSID_AVAIL | Yanlış SSID, 5GHz ağ, menzil dışı | SSID’yi kontrol edin, 2.4GHz ağı deneyin |
WL_CONNECT_FAILED | Yanlış şifre, MAC filtresi | Şifreyi doğrulayın, router ayarlarını kontrol edin |
| Bağlantı kopuyor | Zayıf sinyal, güç kaynağı | Anteni yaklaştırın, yeterli güç sağlayın |
Derleme hatası: arduino_secrets.h not found | Dosya eksik veya yanlış konumda | Dosyayı .ino ile aynı klasöre ekleyin |
ESP32_WiFi_Project/
├── ESP32_WiFi_Project.ino
├── arduino_secrets.h
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);
}
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.
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