101 lines
4.0 KiB
Markdown
101 lines
4.0 KiB
Markdown
# 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ı:
|
||
-------------
|
||
```text
|
||
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ç:
|
||
```bash
|
||
cd ebuild
|
||
```
|
||
3. (İsteğe bağlı) Sanal ortam oluştur:
|
||
```bash
|
||
python3 -m venv .venv
|
||
source .venv/bin/activate
|
||
```
|
||
4. Gerekli Python paketlerini yükle:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
5. Test amaçlı ana döngüyü çalıştır:
|
||
```bash
|
||
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.
|