2004'ten Beri Kurumsal Yazılım, Mobil & Bilişim Çözüm Ortağı
IoT & Gömülü

ESP32 Modülü Programlama: Başlangıçtan İleri Projeye Rehber

Karaçayır Teknoloji Ekibi18 Eylül 202613 dk okuma süresi
ESP32 Modülü Programlama: Başlangıçtan İleri Projeye Rehber
KURUMSAL REHBER ÖZETİ • IoT & Gömülü

ESP32 Modülü Programlama: Başlangıçtan İleri Projeye Rehber

ESP32, çift çekirdekli işlemcisi, dahili WiFi ve Bluetooth desteğiyle IoT projelerinin gözde modülü. Bu rehberde kurulumdan sensör okumaya, ağ bağlantısından bulut entegrasyonuna kadar tüm süreci adım adım anlatıyoruz.

ESP32 Modülü Programlama: Başlangıçtan İleri Projeye Rehber

ESP32, Espressif tarafından geliştirilen çift çekirdekli 240 MHz işlemcisi, dahili WiFi ve Bluetooth desteğiyle gömülü sistem ve IoT (Nesnelerin İnterneti) dünyasının en çok tercih edilen mikrodenetleyicilerinden biridir. Antalya ve Türkiye genelinde akıllı ev, tarım otomasyonu, endüstriyel izleme ve özel donanım projeleri geliştiren ekibimiz için ESP32, maliyet etkin ve güçlü bir platformdur.

Bu yazıda ESP32 modülü programlamaya sıfırdan başlamak isteyenler için kurulum, pin yapısı, temel kod örnekleri, ağ bağlantısı ve ileri düzey proje ipuçlarını adım adım ele alıyoruz.

ESP32 Nedir ve Neden Tercih Edilir?

ESP32; düşük güç tüketimi, yüksek işlem gücü ve zengin bağlantı seçenekleriyle öne çıkar. Temel özellikleri şunlardır:

  • Çift çekirdekli 32-bit LX6 işlemci (240 MHz'e kadar)
  • Dahili WiFi (802.11 b/g/n) ve Bluetooth 4.2 / BLE
  • 520 KB SRAM ve harici 4 MB+ Flash bellek desteği
  • Zengin I/O: ADC, DAC, PWM, I2C, SPI, UART, touch pinleri
  • Düşük güç modları: Deep sleep ve light sleep ile pil ömrü optimizasyonu

Bu özellikler; akıllı termostatlar, uzaktan kumanda sistemleri, hava istasyonları, akıllı tarım sensör ağları ve endüstriyel veri toplama uygulamaları için ideal bir altyapı sunar.

1. Gerekli Donanım ve Yazılım

Donanım: - ESP32 geliştirme kartı (DevKit, NodeMCU-32S, ESP32-WROOM tabanlı) - Micro-USB kablo - Bilgisayar - İsteğe bağlı: breadboard, LED, direnç, sensör (ör. DHT22, BMP280)

Yazılım: - Arduino IDE (en kolay başlangıç) - Alternatif: PlatformIO, ESP-IDF (ileri düzey)

2. Arduino IDE'de ESP32 Desteğini Ekleme

ESP32 kartlarını Arduino IDE ile programlamak için board manager desteğini eklemeniz gerekir:

1. Arduino IDE'yi açın: Dosya → Tercihler 2. Ek Yönetici URL'leri alanına şu adresi yapıştırın: https://raw.githubusercontent.com/espressif/arduino-esp32/arduino-esp32/package_esp32_index.json 3. Araçlar → Kart → Kart Yöneticisi menüsünü açın 4. "esp32" aratın ve Install deyin 5. Araçlar → Kart menüsünden kartınızı seçin (ör. *ESP32 Dev Module*) 6. Doğru Port'u seçin

> İpucu: Windows'ta sürücü sorunu yaşarsanız CP210x veya CH340 USB-UART sürücüsünü kurmanız gerekebilir.

3. Pin Yapısını Anlamak

ESP32'de pin isimleri Arduino Uno'dan farklıdır. Programlamada kullanacağınız temel pin grupları:

Pin GrubuKullanımNot
GPIO 0-19Dijital I/O, PWMBazı pinler boot/strapping
GPIO 34-39Sadece giriş (input only)Pull-up yok
ADC1/ADC2Analog okumaWiFi açıkken ADC2 kullanılamaz
Touch pinsKapasitif dokunmaGPIO 4, 0, 2, 15, 13, 12, 14, 27

Önemli: GPIO 0 boot moduna, GPIO 2 dahili LED'e, GPIO 34-39 ise yalnızca giriş olarak çalışır. Proje tasarımında bu kısıtları hesaba katın.

4. İlk Program: Blink (Yanıp Sönen LED)

Klasik "Merhaba Dünya" ile başlayalım:

#define LED_PIN 2  // Dahili LED (bazı kartlarda GPIO 2)

void setup() { pinMode(LED_PIN, OUTPUT); }

void loop() { digitalWrite(LED_PIN, HIGH); delay(1000); digitalWrite(LED_PIN, LOW); delay(1000); } ```

Kodu yüklemek için Upload düğmesine basın. ESP32 yüklemeye başlarken bazı kartlarda BOOT tuşuna basılı tutmanız, yükleme başlayınca bırakmanız gerekir.

5. Sensör Okuma: DHT22 ile Sıcaklık ve Nem

Önce DHT sensor library kütüphanesini Arduino IDE'den yükleyin (*Araçlar → Kütüphane Yöneticisi*).

#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

void setup() { Serial.begin(115200); dht.begin(); }

void loop() { delay(2000); float t = dht.readTemperature(); float h = dht.readHumidity();

if (isnan(t) || isnan(h)) { Serial.println("Sensör okunamadı!"); return; }

Serial.print("Sicaklik: "); Serial.print(t); Serial.println(" C"); Serial.print("Nem: "); Serial.print(h); Serial.println(" %"); } ```

Seri ekranı (115200 baud) üzerinden sıcaklık ve nem değerlerini görebilirsiniz.

6. WiFi Bağlantısı ve Web Sunucu

ESP32'nin asıl gücü ağ bağlantısında ortaya çıkar. Aşağıdaki kod, WiFi'ye bağlanır ve tarayıcıdan LED kontrol etmenizi sağlayan basit bir web sunucusu çalıştırır:

#include <WiFi.h>
#include <WebServer.h>

const char* ssid = "WIFI_ADI"; const char* password = "WIFI_SIFRE";

WebServer server(80); #define LED_PIN 2

void handleRoot() { String html = "<h1>ESP32 Kontrol</h1>" "<p><a href='/on'>LED Yak</a></p>" "<p><a href='/off'>LED Sondur</a></p>"; server.send(200, "text/html", html); }

void setup() { Serial.begin(115200); pinMode(LED_PIN, OUTPUT); WiFi.begin(ssid, password);

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

server.on("/", handleRoot); server.on("/on", []() { digitalWrite(LED_PIN, HIGH); server.send(200, "text/plain", "LED yandi"); }); server.on("/off", []() { digitalWrite(LED_PIN, LOW); server.send(200, "text/plain", "LED sonduruldu"); }); server.begin(); }

void loop() { server.handleClient(); } ```

Seri ekranda görünen IP adresini tarayıcıya yazdığınızda, telefonunuzdan veya bilgisayarınızdan LED'i uzaktan kontrol edebilirsiniz.

7. Bluetooth Low Energy (BLE)

ESP32, BLE ile mobil uygulama üzerinden veri alışverişi yapmanıza da imkân tanır. BLEDevice, BLEServer ve BLECharacteristic sınıflarıyla bir GATT sunucusu kurabilir; mobil uygulamanızdan sensör verilerini okuyabilirsiniz. Bu yapı, mobil uygulama geliştirme hizmetimizle entegre çalışan özel donanım projelerinde sıkça kullanılır.

8. Güç Yönetimi: Deep Sleep

Pille çalışan IoT projelerinde güç tüketimini minimize etmek kritiktir. Deep sleep modu ESP32'yi mikroamper düzeyine çeker:

#define uS_TO_S_FACTOR 1000000ULL
#define TIME_TO_SLEEP 30  // saniye

void setup() { esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); esp_deep_sleep_start(); }

void loop() {} ```

Her 30 saniyede bir uyanıp sensör okuyup veriyi buluta gönderen bir istasyon, tek bir LiPo pil ile aylarca çalışabilir.

9. Bulut ve IoT Platform Entegrasyonu

ESP32 verilerini uzaktan izlemek için yaygın seçenekler:

  • MQTT: Hafif pub/sub protokolü; MQTT broker (Mosquitto, HiveMQ) üzerinden veri yayını
  • HTTP REST: Sunucuya POST isteğiyle veri gönderme
  • Firebase / InfluxDB / ThingSpeak: Hazır veri saklama ve görselleştirme
  • Özel backend: Kendi API'nizi yazarak tam kontrol

Karaçayır Teknoloji olarak ESP32 tabanlı donanımı, özel mobil uygulama ve backend ile uçtan uca entegre edebiliyoruz.

10. Yaygın Hatalar ve Çözümleri

SorunOlası NedenÇözüm
Yükleme başlamıyorBoot moduna geçilmediUpload sırasında BOOT tuşuna bas
WiFi bağlanmıyorYanlış SSID/şifre2.4 GHz ağ kullandığınızdan emin ol (5 GHz desteklenmez)
ADC2 yanlış okuyorWiFi ADC2'yi kullanırADC1 pinlerini tercih et
Seri ekran boşYanlış baud rate115200 değerini kontrol et
Kart görünmüyorSürücü eksikCP210x / CH340 sürücüsünü kur

Sonuç: ESP32 ile Fikirlerinizi Donanıma Taşıyın

ESP32; güçlü işlemcisi, dahili kablosuz bağlantısı ve zengin I/O seçenekleriyle IoT ve gömülü sistem projeleri için mükemmel bir başlangıç noktasıdır. Bu rehberdeki adımları izleyerek ilk blink uygulamanızdan WiFi kontrollü cihazlara, sensör ağlarından bulut entegrasyonlu akıllı sistemlere kadar geniş bir yelpazede proje geliştirebilirsiniz.

ESP32 tabanlı özel donanım, mobil uygulama ve bulut entegrasyonu gerektiren bir projeniz varsa iletişim sayfamızdan bize ulaşabilir veya mobil uygulama geliştirme hizmetlerimizi inceleyebilirsiniz. Antalya'dan Türkiye geneline donanım + yazılım entegrasyonu sunan ekibimizle projenizi birlikte hayata geçirelim.

ÜCRETSİZ KEŞİF & FİYATLANDIRMA

Projeniz İçin Ücretsiz Danışmanlık & Teklif Alın

Okuduğunuz konuyla ilgili işletmenize özel çözüm, teknik mimari ve şeffaf bütçe planlaması için yandaki formu doldurun; mühendis ekibimiz aynı gün dönüş yapsın.

  • Mesai saatlerinde ortalama 15–30 dk içinde uzman mühendis dönüşü
  • Antalya içi ücretsiz yerinde keşif & Türkiye geneli online teknik toplantı
  • Sözleşmeli teslim süresi ve %100 kaynak kodu / yönetici şifresi devri

Proje & İletişim Bilgileriniz

Form doğrudan kurumsal e-posta adresimize iletilir ve kayıt altına alınır.

Hızlı Konu / Departman Seçimi (Tek Tıkla Seçebilirsiniz)
WhatsApp ile Anında Gönder

Bilgileriniz yalnızca talebinize dönüş yapmak için kullanılır ve üçüncü kişilerle paylaşılmaz.