TEİPG - Akıllı Bitki Takip Sistemi

TEİPG - Akıllı Bitki Takip Sistemi Ana Görsel

TEİPG - Akıllı Bitki Takip Sistemi, bitkilerin hem fiziksel ihtiyaçlarını hem de sağlık durumlarını takip edebilen, çok bileşenli ve modüler yapıya sahip bir akıllı sistemdir. Bu proje, özellikle ev ortamında bitki yetiştiren kullanıcıların bitkilerine daha sağlıklı ve sürdürülebilir bakım yapabilmeleri amacıyla geliştirilmiştir. Donanım sistemleri, yapay zekâ destekli analizler ve mobil uygulama bir araya getirilerek kapsamlı bir bitki izleme ve müdahale altyapısı sunulmuştur.

Proje, 2025 yılında Ondokuz Mayıs Üniversitesi Bilgisayar Mühendisliği öğrencileri tarafından bitirme projesi kapsamında geliştirilmiş ve üç temel bileşen üzerinde şekillendirilmiştir:

  • Donanım tabanlı sulama ve izleme sistemi (Arduino, ESP8266, Nem sensörü, Röle, Pompa)
  • Görüntü işleme tabanlı bitki türü ve hastalık tanıma altyapısı (Flask API + .tflite/.h5 modeller)
  • Kullanıcıya anlık bilgi sağlayan Flutter tabanlı mobil uygulama (Firebase + Gemini AI destekli)

Klasik IoT projelerinin ötesinde, bu sistemde kullanıcılar sadece bitkilerin durumunu takip etmekle kalmaz, aynı zamanda doğrudan mobil uygulama üzerinden komut vererek bitkileri uzaktan sulayabilir, yapay zekâ ile hastalık teşhisi yaptırabilir ve hatta entegre chatbot ile bitki bakımı hakkında doğal dilde bilgi alışverişi gerçekleştirebilirler.

Projenin detaylı raporunu ve sunum PDF'ini aşağıdaki butonlardan inceleyebilirsiniz:

Proje Bileşenleri

Donanım Kısmı

Akıllı Bitki Takip Sistemi'nin donanım altyapısı, hem otomatik hem de uzaktan kumandalı sulama süreçlerini verimli bir şekilde gerçekleştirecek şekilde tasarlanmıştır. Bu yapıda Arduino Nano doğrudan sulama kararlarını verirken, ESP8266 (NodeMCU) ise dış dünya ile haberleşme görevini üstlenir. İki donanımın görev paylaşımı sayesinde sistem hem hızlı hem de güvenilir çalışır.

⚙️ Kullanılan Donanımlar:

  • Arduino Nano: Sistemin donanımsal beyni olarak görev yapar. HL-69 toprak nem sensöründen gelen analog veriyi sürekli takip eder. Eğer nem değeri belirlenen eşiğin altına düşerse, ESP8266'ya ihtiyaç duymadan röleyi tetikleyerek 5V dalgıç pompayı çalıştırır ve sulamayı gerçekleştirir. Sulama tamamlandığında, bu bilgiyi ESP8266'ya ileterek hem sunucuya hem de mobil uygulamaya bildirilmesini sağlar.
  • ESP8266 (NodeMCU): Kablosuz haberleşmeyi sağlar. Flask tabanlı backend ile HTTP üzerinden iletişim kurar. Mobil uygulamadan gelen manuel sulama komutlarını alır ve Arduino'ya iletir. Arduino bu komutu alınca sulama işlemini başlatır. Ayrıca otomatik sulama gerçekleştiğinde Arduino'dan "sulandı" bilgisi alarak, bu veriyi Flask backend'e ve Firebase'e iletir.
  • Toprak Nem Sensörü (HL-69): Toprağın nem oranını ölçer. Arduino, bu sensör verilerini okuyarak kendi içinde sulama kararını verir. ESP8266, nem verilerini doğrudan almaz; yalnızca sulama gerçekleştiği bilgisi ESP tarafından sunucuya bildirilir.
  • Röle Modülü: Arduino üzerinden tetiklenerek 5V dalgıç pompanın kontrolünü sağlar. Röle sayesinde pompa yalnızca gerektiğinde çalışır, hem güvenli hem de enerji verimli bir çözüm sunar.
  • 5V Dalgıç Su Pompası: Röleden aldığı sinyalle çalışarak bitkiyi sulayan fiziksel bileşendir.
  • Güç Kaynağı: Tüm sistemi besleyen 5V'luk harici güç kaynağı kullanılır. Gerekli durumlarda voltaj regülatörleri ile stabil çalışma sağlanır.

🔁 Donanım İletişim Akışı (Netleştirilmiş)

  • Otomatik Sulama:
    • Arduino Nano, HL-69 sensöründen gelen nem verisini okur.
    • Nem belirlenen eşik değerin altındaysa, ESP8266'ya ihtiyaç duymadan röleyi tetikler ve pompayı çalıştırır.
    • Sulama tamamlandığında, Arduino, ESP8266'ya "sulandı" bilgisini gönderir.
    • ESP8266, bu veriyi Flask backend'e iletir. Backend üzerinden Firebase'e yazılır ve mobil uygulamada kullanıcıya gösterilir.
  • Manuel Sulama:
    • Kullanıcı, mobil uygulama üzerinden manuel sulama komutu verir.
    • Bu komut, Flask backend üzerinden ESP8266'ya iletilir.
    • ESP8266, sulama isteğini Arduino Nano'ya iletir.
    • Arduino, gelen komutu alarak röleyi tetikler ve pompayı çalıştırır.
    • Sulama tamamlandığında, Arduino yine ESP'ye "sulandı" bilgisi gönderir.

🧠 Donanımın Akıllılığı

Bu yapı sayesinde:

  • Arduino Nano, kendi başına akıllıca karar vererek toprağı nemli tutar.
  • ESP8266, sadece haberleşmeden sorumludur ve sisteme dış dünya ile bağlantı kazandırır.

İki kart arasındaki bu sade ama etkili iletişim, sistemin güvenli, ölçeklenebilir ve enerji verimli çalışmasını sağlar.

Görüntü İşleme ve Flask Backend

Projemizde bitkilerin türünü tanıma ve sağlık durumlarını analiz etme amacıyla görüntü işleme tekniklerinden faydalanıldı. Bu kapsamda, mobil uygulama üzerinden yüklenen bitki görselleri, Flask tabanlı bir Python backend'e gönderilerek işleniyor. Flask sunucusu bu görselleri işlemekle kalmayıp, aynı zamanda karar mekanizmasını da yönetiyor.

Flask backend'de çalışan yapay zeka modelleri iki aşamalı çalışıyor:

  • Tür Tespiti: İlk olarak tur_tespit.tflite modeli devreye giriyor ve orkide, aloe vera, paşa kılıcı, sukulent ve kaktüs olmak üzere beş farklı türü ayırt etmeye çalışıyor. Bu modelin sonuçları yüzde doğruluk oranıyla mobil uygulamaya aktarılıyor. Kullanıcı, tespit edilen türü onaylayabiliyor ya da farklı bir tür seçebiliyor.
  • Hastalık Tespiti: Tür tespiti tamamlandıktan sonra, o türe özel eğitilmiş hastalık tespit modelleri devreye giriyor. Örneğin orkide.tflite, sadece orkide bitkilerinde görülen hastalıkları tanıyacak şekilde optimize edildi. Aynı şekilde aloe vera, sukulent, paşa kılıcı, kaktüs ve barış çiçeği için de özel modeller mevcut. Eğer bitki türü özel modellerle eşleşmezse, genel_hasta.tflite adlı genel model devreye giriyor.

Projemizde kullanılan tüm model eğitim kodları ve görüntü işleme süreçleri, bu sayfadaki GitHub butonu üzerinden erişilebilen depoda yer almaktadır. Eğitimlere ait detaylı teknik bilgiler, elde edilen sonuçlar ve veri analiz grafikleri ise proje raporunda ayrıntılı olarak sunulmuştur.

Her bitki için özel model geliştirmek büyük bir veri, zaman ve iş gücü gerektirdiği için hibrit bir yaklaşım tercih edildi: Bilinen türler için özel modeller, geri kalan türler için genel bir modelle analiz yapılması. Ancak bu genel model bazen farklı türlerde hatalı sonuçlar üretebildiğinden, sistemde tutarsızlıklar oluşabiliyordu. İşte bu noktada daha sürdürülebilir ve güvenilir bir alternatife yönelme ihtiyacı doğdu.

Flask backend, sadece görüntü işleme işlemlerini yürütmekle kalmıyor; aynı zamanda sistemin beyni gibi çalışıyor. Sulama kararları da burada alınıyor. Flask, Firebase veritabanına bağlı şekilde çalışıyor. Bitkiden gelen nem verisi eşik değerin altına düştüğünde ya da kullanıcı mobil uygulamadan manuel sulama komutu verdiğinde, bu bilgiler Flask sunucusuna ulaşıyor. Flask, bu kararları HTTP üzerinden ESP8266'ya iletiyor ve sulama işleminin başlatılmasını sağlıyor. Sulama gerçekleştiğinde, ESP8266 tekrar Flask'a haber veriyor ve bu bilgi Firebase üzerinde kayıt altına alınıyor. Tüm bu işleyiş sayesinde sistem, gerçek zamanlı bir otomasyon ve izleme süreci sunuyor.

Flask tabanlı yapının çalışır halde olması, bize sistemin tamamını kendi sunucumuzda barındırma özgürlüğü sağladı. Fakat bazı zorluklar da beraberinde geldi. Özellikle tespit modellerinin sunucu üzerinde çalışması zaman alabiliyor ve işlemciye yüksek yük bindiriyordu. Ayrıca genel modelin hata oranı, sistemin doğruluğunu aşağı çekiyordu. İşte bu noktada daha sürdürülebilir ve güvenilir bir alternatife yönelme ihtiyacı doğdu.

Kullanılan Teknolojiler

  • Python
  • TensorFlow
  • Keras
  • OpenCV
  • Flask

Öne Çıkan Özellikler

  • Bitki Türü Tanıma
  • Hastalık Teşhisi
  • Görüntü İşleme
  • RESTful API
  • Model Entegrasyonu

Mobil Uygulama ve Gemini API Entegrasyonu

Projemizin kullanıcı arayüzü olan mobil uygulama, Flutter ile geliştirildi ve kullanıcıların bitkilerini uzaktan takip edebileceği interaktif bir deneyim sunuyor. Uygulamada kullanıcılar, anlık nem değerlerini görebiliyor, geçmiş sulama kayıtlarına ulaşabiliyor ve isterlerse manuel olarak sulama komutu gönderebiliyorlar. Uygulama Firebase ile entegre çalışıyor ve tüm veriler burada saklanıyor.

Uygulamanın en dikkat çekici özelliklerinden biri de bitki fotoğraflarının çekilip analiz için sisteme gönderilebilmesi. Bu görseller önceden Flask sunucusuna gönderiliyor, burada analiz edilip hastalık ve tür bilgisi elde edilerek kullanıcıya geri iletiliyordu. Ancak bu yapı bazı sınırlamalar barındırıyordu:

  • Modellerin çalışması zaman alıyordu.
  • Her yeni analiz sistemi yoruyordu, sunucu kaynaklarını tüketiyordu.
  • Genel hastalık modeli bazı türlerde yetersiz kalıyordu.
  • Kullanıcıların görsel dışında ek bilgi girmesi mümkün değildi.

Bu nedenlerle, son aşamada Gemini API ile entegre çalışan yeni bir sistem geliştirildi. Gemini, kullanıcıdan gelen görselleri analiz etme yeteneğine sahip gelişmiş bir yapay zeka sistemidir. Bunun yanı sıra, kullanıcıların sistemle doğal dilde etkileşime geçmesine de olanak tanır. Yani kullanıcı bir görsel gönderdikten sonra, "Bitkimde yaprakları sararıyor, ne yapmalıyım?" gibi sorular sorabilir ve AI destekli detaylı yanıtlar alabilir.

Mobil uygulamaya entegre edilen bu yapay zeka destekli chatbot, tür tespiti, hastalık analizi ve çözüm önerileri gibi konularda kullanıcıya daha doğru ve kişiselleştirilmiş bir deneyim sunar. Aynı zamanda analiz süresi çok daha hızlıdır ve sunucuya yük bindirmez. Gemini API sayesinde, sistem hem esnek hem de ölçeklenebilir hale getirildi.

Flask altyapımız hâlâ aktif ve çalışır durumda. Ancak sağladığı avantajlar ve kullanıcı deneyimi göz önünde bulundurularak, Gemini API tercih edilerek projeye entegre edildi.

Kullanılan Teknolojiler

  • Flutter
  • Firebase
  • Gemini AI
  • Grafik Kütüphaneleri

Öne Çıkan Özellikler

  • Gerçek Zamanlı Veri Takibi
  • Uzaktan Sulama Kontrolü
  • Yapay Zeka Chatbot
  • Anlık Bildirimler
  • Kullanıcı Dostu Arayüz