Catduino ile Akıllı Balık Yemleme Projesi

Catduino ile Akıllı Balık Yemleme Projesi

Catduino ile Akıllı Balık Yemleme Projesi 

Bu projede Catduino, M026 Saat Modülü ve servo motor kullanılarak Akıllı Balık Yemleme Projesi yapılmıştır.



Gerekli Malzemeler:

Catduino

M026 Saat Modülü

Servo Motor

Jumper Kablo

USB Kablo

Makas

Bant

Yem Kutusu

Balık Yemi

Akvaryum (Fanus)



Açıklama:

Arduino IDE’yi açıp kodumuzu yazıyoruz. Daha sonra devremizi oluşturuyoruz. Saat modülümüzün kodu için bir saat aralığı veriyoruz ve günde bir kere aynı saatte servo motorumuzun çalışmasını sağlıyoruz. Böylece yem makinesi belirlediğimiz saatte günde 1 kere suyun üzerine yem atıyor.

Devremizi Oluşturalım:


KODUMUZU YAZALIM:

#include <DS323x.h> // Kütüphanemizi ekliyoruz
                    // Hideaki Tai'nin DS323x kütüphanesi
DS323x rtc;         // Kütüphanemiz başlatılıyor

#include <Servo.h>  // servo kütüphanesi
Servo myservo;  // servoyu tanımla
                
int pos = 0;   
 
void setup() {
  Serial.begin(9600); // Seri Port Ekranı'nı başlatıyoruz
  Wire.begin();       // Wire kütüphanesini başlatıyoruz
  delay(1000);        // Bağlantı kurulana kadar bekleyelim
 
  rtc.attach(Wire);   // Kütüphaneyi I2C'ye bağlayalım
  // Alttaki satır girdiğimiz saat ve tarihi alarak RTC'yi ayarlar
  // Bu halde bir defalığına Arduino'ya yükledikten sonra satırı başına //
  // koyarak yorum yapıp tekrar yüklemeliyiz.
  // Aksi halde her açılışta tekrar saat yüklemeye çalışır.
 rtc.now(DateTime(2022, 06, 07, 15, 29, 00)); 
 myservo.attach(2);  // servonun sinyal pinin 2. pine bağlıyoruz 
}
 
void loop() {
  DateTime now = rtc.now();                   // Güncel saati bu satırda okuyoruz
  if (now.day() < 10) {Serial.print("0");
  }    // 3. ayı 03 olarak gösterelim
  Serial.print(now.day());                    // Günü yazalım
  Serial.print(".");
  if (now.month() < 10) {Serial.print("0");
  }
  Serial.print(now.month());                  // Ayı yazalım
  Serial.print(".");
  if (now.year() < 10) {Serial.print("0");
  }
  Serial.print(now.year());                   // Yılı yazalım
  Serial.print(" | ");
  if (now.hour() < 10) {Serial.print("0");
  }
  Serial.print(now.hour());                   // Saati yazalım
  Serial.print(":");
  if (now.minute() < 10) {Serial.print("0");
  }
  Serial.print(now.minute());                 // Dakikayı yazalım
  Serial.print(":");
  if (now.second() < 10) {Serial.print("0");
  } 
  Serial.println(now.second());               // Saniyeyi yazalım
  delay(500);          
  // Biraz bekleyelim
  if ((now.hour()==10)&&(now.minute()==29)&&(now.second()==00));
  {
    myservo.write(95);                // servonun ilk konumunu kapak kapalı olacak şekilde ayarlıyoruz 
    //delay(5000);                        // 86400000 balıklara hangi aralıklarda yem verileceğini ayarlamak için 1 gün ya da yarım gün yapılması uygun olacaktır.
    myservo.write(30);                    //servonun kapağının açık olacağı konumu ayarlıyoruz
    delay(1000);                          // kapakların açık olacağı süre. Dökülecek yem miktarını ayarlamak için
    }
}