ESP32 ile HTTP (GET) Sorguları ve HTTPClient.h Kütüphanesi

Giriş

ESP32 projelerinizde internete bağlanıp dış dünyadan veri almak ister misiniz? Bu rehberde, WiFi.h ve HTTPClient.h kütüphanelerini kullanarak ESP32’nin nasıl bir web sunucusuna (örneğin Google) bağlanıp HTTP isteği göndereceğini öğreneceksiniz.

Gereksinimler

  • ESP32 veya ESP8266 geliştirme kartı
  • Arduino IDE (ESP32 board paketi yüklü)
  • 2.4GHz Wi-Fi ağı
  • USB kablo ve temel elektronik bilgi

arduino_secrets.h Dosyası

Şifrelerinizi ana kod dosyanızdan ayırmak için proje klasörünüzde arduino_secrets.h adında bir dosya oluşturun:

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

Tam Kod

#include <WiFi.h>
#include <HTTPClient.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(1000);

  // Wi-Fi'ye bağlan
  Serial.print("Wi-Fi'ye bağlanılıyor");
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    Serial.println(WiFi.status());
    Serial.println();
    Serial.println(WiFi.status());
  }

  Serial.println();
  Serial.println("Wi-Fi bağlantısı tamamlandı!");

  // Google'a bağlanmayı dene
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin("http://www.google.com");
    int httpCode = http.GET(); // HTTP isteği gönder

    if (httpCode > 0) {
      Serial.println("Bağlandım");  // Başarılıysa ekrana yaz
    } else {
      Serial.println("Google'a bağlanılamadı");
    }

    http.end(); // bağlantıyı kapat
  }
}

void loop() {
  // loop boş, bir kere deniyoruz
}

Wi-Fi Durum Kodları Tablosu

KodSabit AdıAnlamıNe Yapmalı?
0WL_IDLE_STATUSBoşta/başlangıç durumuBekleyin, bağlantı denemesi devam ediyor
1WL_NO_SSID_AVAILSSID bulunamadıSSID’yi kontrol edin, 2.4GHz ağı deneyin
2WL_SCAN_COMPLETEDTarama tamamlandıOtomatik geçiş yapılır, müdahale gerekmez
3WL_CONNECTEDBağlantı başarılıHTTP isteklerine geçebilirsiniz
4WL_CONNECT_FAILEDBağlantı reddedildiŞifreyi kontrol edin, MAC filtresini inceleyin
5WL_CONNECTION_LOSTBağlantı koptuYeniden bağlanma mantığı ekleyin
6WL_DISCONNECTEDBağlantı kesildiWiFi.begin() ile tekrar deneyin

HTTP Kodları

  • 200: Başarılı (OK)
  • 301/302: Yönlendirme
  • 400: Hatalı istek
  • 404: Sayfa bulunamadı
  • 500: Sunucu hatası
  • -1: Bağlantı hatası (DNS, timeout)

Sık Karşılaşılan Sorunlar

“WL_NO_SSID_AVAIL” hatası alıyorum

• SSID’nizin doğru yazıldığından emin olun (büyük/küçük harf duyarlı)
• ESP32 sadece 2.4GHz ağlara bağlanır, 5GHz ağı kullanmayın
• Router’ınızın menzilinde olduğunuzu kontrol edin

“WL_CONNECT_FAILED” hatası alıyorum

• Şifrenizin doğru olduğundan emin olun
• Router’da MAC adresi filtresi aktif olabilir
• WPA3 güvenlik protokolü bazı ESP32 firmware’lerinde sorun çıkarabilir, WPA2’ye geçmeyi deneyin

HTTP isteği başarısız oluyor (httpCode < 0)

• URL’nin başında http:// veya https:// olduğundan emin olun
• HTTPS kullanıyorsanız http.setCACert() ile sertifika tanımlamanız gerekebilir. Bunu araştırın
• Firewall veya ağ kısıtlamaları isteği engelliyor olabilir

“arduino_secrets.h not found” hatası

• Dosyayı .ino dosyanızla aynı klasöre kaydedin
• Dosya adının tam olarak arduino_secrets.h olduğundan emin olun
• Arduino IDE’yi yeniden başlatmayı deneyin

Etiketler:
#ESP32 #HTTPClient #WiFi #Arduino #IoT #WebRequests #Maker #Embedded

SEO Meta Açıklaması

ESP32 ile HTTP isteği nasıl gönderilir? WiFi.h ve HTTPClient.h kullanarak Google'a bağlanma örneği, Wi-Fi durum kodları ve hata çözümleri. Arduino IDE ile kopyala-yapıştır hazır kod. #ESP32 #HTTP #IoT

Sonuç

ESP32’nin HTTPClient kütüphanesi, IoT projelerinizde dış API’lerle konuşmanızı sağlar. Bu temel örneği geliştirerek:

  • Hava durumu API’sinden veri çekebilir,
  • E-posta bildirimleri gönderebilir,
  • Bulut platformlarına (Firebase, Blynk) veri aktarabilir,
  • Telegram botu entegre edebilirsiniz.

Siz bu kodla ne yapmayı planlıyorsunuz? Yorumlarda projelerinizi paylaşın, birlikte geliştirelim!


Leave a Reply

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