Yazılım Bileşenleri Planı
1. Raspberry Pi İşletim Sistemi
- Raspbian OS (Raspberry Pi OS): Raspberry Pi için optimize edilmiş Debian tabanlı işletim sistemi
- Kurulum Yöntemi: Raspberry Pi Imager kullanılarak microSD karta kurulum
- Gerekli Yapılandırmalar:
- SSH etkinleştirme
- Wi-Fi yapılandırması
- Otomatik başlatma ayarları
- Güvenlik yapılandırmaları
2. Sensör Veri Toplama Yazılımı
- Programlama Dili: Python 3
- Kütüphaneler:
- RPi.GPIO: GPIO pin kontrolü için
- Adafruit_DHT: DHT22 sensörü için
- time, datetime: Zamanlama işlemleri için
- sqlite3: Veritabanı işlemleri için
- paho-mqtt: MQTT iletişimi için
- Modüller:
sensor_reader.py: Sensörlerden veri okumadata_processor.py: Sensör verilerini işlemepump_controller.py: Su pompası kontrolüscheduler.py: Zamanlama ve görev planlama
3. Veritabanı Sistemi
- Veritabanı: SQLite (hafif, dosya tabanlı)
- Tablolar:
sensor_data: Sensör ölçümleriwatering_events: Sulama kayıtlarısystem_logs: Sistem günlükleriplant_profiles: Bitki türü profilleriuser_settings: Kullanıcı ayarları
- Veri Yedekleme: Günlük otomatik yedekleme
4. Web API Sunucusu
- Framework: Flask (Python)
- Endpoint’ler:
/api/sensor-data: Sensör verilerini sorgulama/api/watering-events: Sulama kayıtlarını sorgulama/api/control: Sistem kontrolü (manuel sulama, ayarlar)/api/plant-profiles: Bitki profili yönetimi/api/system-status: Sistem durumu bilgisi
- Güvenlik: JWT tabanlı kimlik doğrulama
5. MQTT Broker
- Yazılım: Mosquitto MQTT Broker
- Konular (Topics):
smart-irrigation/sensor-data: Sensör verilerismart-irrigation/system-status: Sistem durumusmart-irrigation/commands: Kontrol komutlarısmart-irrigation/alerts: Sistem uyarıları
- QoS Seviyesi: 1 (en az bir kez teslim)
6. Mobil Uygulama
- Framework: Flutter (Dart)
- Hedef Platformlar: Android ve iOS
- Ana Özellikler:
- Gerçek zamanlı sensör verisi görüntüleme
- Grafiksel veri analizi
- Manuel sulama kontrolü
- Sulama programı oluşturma
- Bitki profili yönetimi
- Bildirim sistemi
- Paketler:
flutter_mqtt: MQTT bağlantısı içinhttp: REST API istekleri içinfl_chart: Grafik gösterimi içinshared_preferences: Yerel veri depolamaflutter_local_notifications: Bildirimler için
7. Karar Verme Algoritması
- Algoritma Türü: Kural tabanlı + Basit makine öğrenmesi
- Girdiler:
- Toprak nem seviyesi
- Hava sıcaklığı ve nemi
- Bitki türü gereksinimleri
- Günün saati ve mevsim
- Geçmiş sulama verileri
- Çıktılar:
- Sulama kararı (evet/hayır)
- Sulama süresi
- Sulama miktarı
8. Sistem Güvenliği ve İzleme
- Log Sistemi: Python logging modülü
- Hata Yakalama: Try-except blokları ve hata işleme
- Sistem İzleme: Watchdog timer ve otomatik yeniden başlatma
- Veri Doğrulama: Sensör verilerinin geçerlilik kontrolü
9. Geliştirme ve Test Ortamı
- IDE: Visual Studio Code veya PyCharm
- Versiyon Kontrolü: Git (GitHub veya GitLab)
- Test Araçları:
- pytest: Birim testleri için
- Postman: API testleri için
- Flutter test: Mobil uygulama testleri için
- CI/CD: GitHub Actions veya GitLab CI