
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:
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 } }