IoT

ESP32 ile Akıllı Ev Projeleri

17 Nov 2025
5 dakika okuma
İninia Teknoloji

ESP32, Espressif Systems tarafından üretilen güçlü bir mikrodenetleyicidir. Wi-Fi ve Bluetooth entegrasyonu, düşük güç tüketimi ve zengin GPIO seçenekleriyle IoT ve akıllı ev projeleri için ideal bir platformdur.

ESP32 Özellikleri

  • İşlemci: Dual-core Xtensa LX6 (240MHz)
  • RAM: 520KB SRAM
  • Flash: 4-16MB (modele göre)
  • Wi-Fi: 802.11 b/g/n (2.4GHz)
  • Bluetooth: Classic + BLE 4.2/5.0
  • GPIO: 34 programlanabilir pin
  • ADC: 18 kanal (12-bit)
  • DAC: 2 kanal (8-bit)
  • PWM: 16 kanal
  • I2C, SPI, UART: Çoklu interface

Geliştirme Ortamları

  • Arduino IDE: Başlangıç için kolay
  • PlatformIO: Profesyonel IDE (VS Code)
  • ESP-IDF: Espressif official framework
  • MicroPython: Python ile hızlı prototip
  • ESPHome: YAML tabanlı, Home Assistant entegrasyonu

Akıllı Ev Projeleri

1. Akıllı Priz

// Arduino - Röle kontrol
#include <WiFi.h>
#include <WebServer.h>

const int relayPin = 5;
WebServer server(80);

void setup() {
  pinMode(relayPin, OUTPUT);
  WiFi.begin("SSID", "password");
  
  server.on("/on", []() {
    digitalWrite(relayPin, HIGH);
    server.send(200, "text/plain", "ON");
  });
  
  server.on("/off", []() {
    digitalWrite(relayPin, LOW);
    server.send(200, "text/plain", "OFF");
  });
  
  server.begin();
}

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

2. Sıcaklık/Nem Sensörü (DHT22)

#include <DHT.h>
#include <WiFi.h>
#include <PubSubClient.h>

DHT dht(4, DHT22);
WiFiClient espClient;
PubSubClient mqtt(espClient);

void loop() {
  float temp = dht.readTemperature();
  float hum = dht.readHumidity();
  
  String payload = "{\"temperature\":" + String(temp) + 
                   ",\"humidity\":" + String(hum) + "}";
  
  mqtt.publish("home/bedroom/climate", payload.c_str());
  delay(60000); // Her dakika
}

3. Hareket Sensörü (PIR)

const int pirPin = 27;
const int ledPin = 2;

void IRAM_ATTR motionDetected() {
  digitalWrite(ledPin, HIGH);
  // MQTT bildirim gönder
}

void setup() {
  pinMode(pirPin, INPUT);
  pinMode(ledPin, OUTPUT);
  attachInterrupt(pirPin, motionDetected, RISING);
}

4. LED Strip Kontrolü (WS2812B)

#include <FastLED.h>

#define NUM_LEDS 60
#define DATA_PIN 5

CRGB leds[NUM_LEDS];

void setup() {
  FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
}

void rainbow() {
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CHSV((i * 256 / NUM_LEDS + millis() / 10) % 256, 255, 255);
  }
  FastLED.show();
}

ESPHome ile Kolay Entegrasyon

# esphome/bedroom-sensor.yaml
esphome:
  name: bedroom-sensor

esp32:
  board: esp32dev

wifi:
  ssid: "MyNetwork"
  password: "secret"

api:
  password: "api_password"

sensor:
  - platform: dht
    pin: GPIO4
    temperature:
      name: "Bedroom Temperature"
    humidity:
      name: "Bedroom Humidity"

binary_sensor:
  - platform: gpio
    pin: GPIO27
    name: "Bedroom Motion"
    device_class: motion

Güç Yönetimi

  • Deep Sleep: 10µA tüketim, pil projelerinde ideal
  • Light Sleep: Hızlı uyanma, Wi-Fi korunur
  • Modem Sleep: CPU aktif, Wi-Fi kapalı
// Deep sleep örneği
#define uS_TO_S_FACTOR 1000000
#define TIME_TO_SLEEP 300 // 5 dakika

void setup() {
  // Sensör oku, MQTT gönder
  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
  esp_deep_sleep_start();
}

Güvenlik

  • OTA güncellemeleri için şifre kullanın
  • MQTT için TLS/SSL
  • API endpoint'leri için authentication
  • Hassas verileri flash'ta şifreli saklayın

ESP32, akıllı ev projelerinin temel yapı taşıdır. Düşük maliyeti ve güçlü özellikleriyle DIY IoT'un geleceğini şekillendirir.

İninia Teknoloji

İstanbul Teknik Üniversitesi ARI Teknokent'te kurulu Ininia Teknoloji, 12+ yıllık deneyimle AR/VR, yapay zeka ve mobil uygulama alanlarında yenilikçi çözümler sunmaktadır.

Projeniz için profesyonel destek mi arıyorsunuz?

12+ yıllık deneyimimizle dijital dönüşümünüzü hızlandıralım.

Ücretsiz Görüşme Talep Et