ebuild_rasp2/README.md

101 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.