ESPectre ile ESP32 ve ESPHome Tabanlı Wi-Fi CSI Varlık Sensörü Kurulumu: Adım Adım Rehber

Akıllı ev otomasyonlarında en büyük zorluklardan biri, odadaki insan varlığını (presence) kesintisiz ve doğru şekilde algılamaktır. Geleneksel PIR hareket sensörleri hareketsiz oturan veya uyuyan birini tespit edemezken; 24GHz/60GHz mmWave radar sensörleri yüksek maliyetlidir ve duvar arkasındaki alanları tarayamaz. Francesco Pace tarafından geliştirilen açık kaynaklı ESPectre projesi ve Home Assistant topluluğu tartışmaları, standart bir ESP32 mikrodenetleyicisinin Wi-Fi Kanal Durum Bilgisi’ni (CSI) işleyerek ek hiçbir sensör donanımına gerek duymadan duvar arkasından insan varlığını tespit etmeyi mümkün kılıyor.

Wi-Fi CSI Mimarisi ve NBVI Algoritmasının Çalışma Prensibi

Klasik Wi-Fi bağlantılarında raporlanan RSSI değeri yalnızca kaba bir sinyal seviyesi göstergesidir. CSI (Channel State Information) ise Wi-Fi OFDM modülasyonundaki her bir alt taşıyıcının (subcarrier) faz ve genlik bilgisini ayrı ayrı ölçer. İnsan vücudu bir odaya girdiğinde veya nefes alıp verdiğinde, radyo dalgalarında mikroskobik çoklu yol (multipath) kırılımları oluşur.

ESPectre, NBVI (Normalized Baseline Variability Index) algoritmasını kullanarak alt taşıyıcıları otomatik olarak analiz eder; gürültülü ve stabil frekansları dinamik olarak ayırarak %98.2 doğrulukla uzamsal türbülansı (spatial turbulence) hesaplar. Bu sayede karmaşık makine öğrenmesi modelleri veya eğitim verisi olmadan doğrudan donanım üzerinde çalışır.

Donanım Uyumluluğu ve Kart Seçimi

ESPectre firmware’i Espressif’in farklı ESP32 yongalarında test edilmiş ve kararlı şekilde çalışmaktadır:

ESP32 YongasıWi-Fi StandardıÖne Çıkan AvantajıÖnerilen Kullanım Alanı
ESP32 Klasik (WROOM / WROVER)802.11 b/g/n (2.4 GHz)Düşük maliyet, yaygın erişilebilirlikTek düğümlü AP-Link oda takibi
ESP32-S3802.11 b/g/n (2.4 GHz)Vektör DSP hızlandırıcı, yüksek PSRAMGelişmiş filtreleme ve mikro hareketler
ESP32-C3 / Seeed XIAO C3802.11 b/g/n (2.4 GHz)Ultra kompakt boyut, düşük güçPriz arkası ve gizli montajlar
ESP32-C6 / ESP32-C5Wi-Fi 6 (802.11ax / 5 GHz)Donanımsal bağımsız kanal kestirimiEşzamanlı TX/RX çift yönlü mesh algılama

Adım Adım ESPHome Yapılandırma Kodu

ESPectre’yi resmi ESPHome dış bileşeni (external component) olarak projeye dahil eden ve Home Assistant’a tüm sensörleri otomatik tanımlayan tam YAML konfigürasyonu:

esphome:
  name: espectre-oda-sensoru
  friendly_name: "Oda Wi-Fi Varlık Sensörü"

esp32:
  board: esp32dev
  framework:
    type: esp-idf

# ESPectre resmi dış bileşeni
external_components:
  - source: github://francescopace/espectre@main
    components: [ espectre ]

wifi:
  ssid: "Ev_Agi_2.4G"
  password: "GucluWifiSifreniz"
  power_save_mode: none   # CSI verisinin kesintisiz akması için kesinlikle kapatılmalıdır
  fast_connect: true

api:
  encryption:
    key: "YOUR_ESPHOME_ENCRYPTION_KEY"

ota:
  - platform: esphome

espectre:
  id: espectre_engine
  threshold: 0.040        # Hareket algılama hassasiyeti (0.025 - 0.060 arası)
  baseline_window: 120    # Otomatik taban çizgisi kalibrasyon süresi (saniye)
  algorithm: nbvi         # Normalized Baseline Variability Index

sensor:
  - platform: espectre
    type: variance
    name: "Wi-Fi Uzamsal Varyans"
    id: csi_variance
    accuracy_decimals: 4
    
  - platform: espectre
    type: motion_score
    name: "Hareket Şiddeti Skoru"
    id: csi_motion_score
    unit_of_measurement: "%"

binary_sensor:
  - platform: espectre
    type: presence
    name: "İnsan Varlığı"
    id: csi_presence
    device_class: occupancy

  - platform: espectre
    type: motion
    name: "Aktif Hareket"
    id: csi_motion
    device_class: motion

Home Assistant Entegrasyonu ve Akıllı Otomasyon Senaryoları

Cihazı Wi-Fi ağına bağladığınızda Home Assistant cihazı otomatik olarak algılar. Ayarlar > Cihazlar ve Hizmetler > ESPHome menüsünden onaylayarak tüm varlıkları anında Lovelace paneline ekleyebilirsiniz.

Aşağıdaki otomasyon örneği, odada kitap okurken veya dinlenirken PIR sensörlerin ışığı söndürmesi sorununu ortadan kaldırır:

alias: "Oda - Akıllı Kesintisiz Aydınlatma"
description: "Wi-Fi CSI ile insan varlığı algılandığında ışığı açar, oda tamamen boşaldığında kapatır."
trigger:
  - platform: state
    entity_id: binary_sensor.espectre_oda_sensoru_insan_varligi
    to: "on"
    id: "varlik_algilandi"
  - platform: state
    entity_id: binary_sensor.espectre_oda_sensoru_insan_varligi
    to: "off"
    for:
      minutes: 3
    id: "varlik_sona_erdi"
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: "varlik_algilandi"
        sequence:
          - service: light.turn_on
            target:
              entity_id: light.oda_aydinlatma
            data:
              brightness_pct: 85
      - conditions:
          - condition: trigger
            id: "varlik_sona_erdi"
        sequence:
          - service: light.turn_off
            target:
              entity_id: light.oda_aydinlatma
mode: restart

Doğru Yerleşim ve İnce Ayar İpuçları (Pro Tips)

Sabit Wi-Fi Kanalı: Yönlendiricinizde 2.4 GHz bandını dinamik kanal seçiminden çıkarıp sabit Kanal 1, 6 veya 11’e ayarlayın. Ani kanal atlamaları CSI taban çizgisini bozar.
Fiziksel Fresnel Bölgesi: ESP32 kartını, Wi-Fi yönlendirici ile odadaki ana oturma/hareket alanının doğrusal görüş hattını (Fresnel bölgesini) kesecek şekilde 1.2 – 1.5 metre yüksekliğe yerleştirin.
Gürültü Tabanı Kalibrasyonu: Oda tamamen boşken ilk 15 dakikalık varyans grafiğini inceleyin. Eğer boş odadaki tepe noktaları 0.030’a ulaşıyorsa `threshold` değerini 0.045 olarak güncelleyin.

Scroll to Top