ebuild_rasp2/README.md

4.0 KiB
Raw Blame History

ebuild

ebuild, Raspberry Pi 2 üzerinde çalışacak şekilde tasarlanmış, bina ısıtma / soğutma / sulama ve genel otomasyon projesinin çekirdek Python kodunu içerir.

Proje yapısı:

ebuild/
├─ README.md
├─ requirements.txt
├─ document/                 # Tasarım PDF'leri, notlar, şemalar
├─ scripts/
│   └─ run_ebuild_main.py    # Ana döngüyü çalıştırmak için yardımcı script
├─ tests/
│   └─ test_building.py
└─ ebuild/
    ├─ __init__.py
    ├─ config_statics.py     # Bina topolojisi, FLAT_AREA, sensör/pin map'leri
    ├─ config_variables.py   # Setpoint, haritalar, çalışma modu (hot-reload)
    ├─ reloader.py           # Statik/dinamik config için ConfigReloader
    ├─ core/
    │   ├─ building.py       # Building/Flat/EDSensor iskeleti
    │   ├─ environment.py    # BuildingEnvironment  dış ısı/nem/yağmur/ışık
    │   ├─ devices.py        # Sensör/aktüatör soyutlamaları
    │   └─ systems/
    │       ├─ burner.py     # Brülör sistemi ve BurnerController
    │       ├─ irrigation.py # Sulama sistemi
    │       ├─ firealarm.py  # Yangın alarm sistemi
    │       └─ hydrophore.py # Hidrofor sistemi
    ├─ io/
    │   ├─ legacy_syslog.py  # Eski Rasp2 syslog formatı köprüsü
    │   ├─ dbtext.py         # Metin tabanlı log/DB iskeleti
    │   ├─ relay_driver.py   # GPIO röle sürücüsü
    │   ├─ sensor_ds18b20.py # DS18B20 sensör sürücü iskeleti
    │   ├─ sensor_dht11.py   # DHT11 sensör sürücü iskeleti
    │   └─ adc_mcp3008.py    # MCP3008 ADC (yağmur / LDR) iskeleti
    └─ runtime/
        ├─ main.py           # Ana çalışma döngüsü iskeleti
        └─ __init__.py

Konfigürasyon tasarımı:

  • config_statics.py

    • Bina topolojisi (FLAT_AREA: serial, flat_no, room_no, floor, direction, size_m2)
    • Donanım pin eşlemeleri (RELAY_GPIO, OUTPUT_GPIO, INPUT_GPIO vb.)
    • Ortak sensör ID'leri (dış ısı, dönüş hattı, kazan çıkışı vb.)
  • config_variables.py

    • Konfor sıcaklığı, aralık ve tolerans (BUILDING_SETPOINT_C, BUILDING_RANGE_C, BUILD_HEAT_TOLERANCE)
    • Brülör setpoint haritaları (BURNER_FIRE_SETPOINT_MAP)
    • Saat bazlı delta-T ve tasarruf haritaları
    • Zaman bazlı override listesi (HEAT_TIME_OVERRIDES)
    • Runtime sensör/dairesel aktif/pasif durumları (FLAT_STATUS)

reloader.ConfigReloader, bu iki dosyanın değişimini ayrı ayrı izler:

  • statics_changed=True → bina/sistem topolojisi değişmiş (genelde restart / re-init gerekir)
  • variables_changed=True → parametreler değişmiş (hot-reload ile devam edilebilir)

document/ klasörü:

Proje ile ilgili tüm dokümantasyon ve tasarım çalışmaları bu klasörde tutulmalıdır. Örneğin:

  • Mimari ve akış diyagramları (PDF)
  • Donanım bağlantı şemaları
  • Test raporları
  • Eski sistemden yeni ebuild'e geçiş notları

Her yeni tasarım veya önemli revizyon için, ilgili notları PDF olarak document/ klasörüne koymak, ileride bakım ve geri izleme açısından işleri kolaylaştırır.

Raspberry Pi 2 üzerinde kurulum:

  1. Python 3 ve pip paket yöneticisinin kurulu olduğundan emin ol.
  2. Proje klasörüne geç:
    cd ebuild
    
  3. (İsteğe bağlı) Sanal ortam oluştur:
    python3 -m venv .venv
    source .venv/bin/activate
    
  4. Gerekli Python paketlerini yükle:
    pip install -r requirements.txt
    
  5. Test amaçlı ana döngüyü çalıştır:
    python3 scripts/run_ebuild_main.py
    

Notlar:

  • GPIO ve sensör kütüphaneleri gerçek Raspberry Pi üzerinde test edilmelidir.
  • Bu repo şu anda iskelet durumundadır; core/ ve io/ altındaki dosyalar senin gerçek sürücü ve kontrol kodlarınla yavaş yavaş doldurulacaktır.