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şilebilirlik | Tek düğümlü AP-Link oda takibi |
| ESP32-S3 | 802.11 b/g/n (2.4 GHz) | Vektör DSP hızlandırıcı, yüksek PSRAM | Gelişmiş filtreleme ve mikro hareketler |
| ESP32-C3 / Seeed XIAO C3 | 802.11 b/g/n (2.4 GHz) | Ultra kompakt boyut, düşük güç | Priz arkası ve gizli montajlar |
| ESP32-C6 / ESP32-C5 | Wi-Fi 6 (802.11ax / 5 GHz) | Donanımsal bağımsız kanal kestirimi | Eş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.











