PAKAN IKAN OTOMATIS DENGAN ARDUINO DAN RTC DS3231

MEMBUAT ALAT PAKAN IKAN OTOMATIS 

DENGAN ARDUINO DAN RTC DS3231

    Mungkin dari kalian banyak yang merasa kesulitan dan kadang tidak ada waktu untuk mengurusi hewan peliharaan kalian, karena padatnya kesibukan, nah kali ini saya membuat alat untuk pakan ikan otomatis dengan berbasis mikrokontroller ARDUINO UNO dan Modul Timmer RTC DS3231.
untuk alat dan bahan yang dibutuhkan:
  • Arduino UNO
  • RTC DS3231
  • LCD 16x12 i2C
  • Motor Servo
Untuk Skematik atau rangkainya seperti ini:



Untuk Codingnya seperti ini:

//BY: RISKI PERMADANI

//YOUTUBE CHANNEL


#define MakanPertama                DateTime(0, 1, 1,  7, 0, 0, 0)//Disetting jam 7 pagi >> ubah ini untuk settingan waktu makan pertama

#define MakanKedua                  DateTime(0, 1, 1,  17, 0, 0, 0)//Disetting jam 5 sore >> ubah ini untuk settingan waktu makan kedua


#define pinservo                    3

#define waktuservo_ON               1000//milidetik

#define servo_ON                    20//derajat

#define servo_OFF                   60//derajat


#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include "RTC_DS3231_RP.h" 

#include <Servo.h>


LiquidCrystal_I2C lcd(0x3F, 16, 2);//coba juga 0x27

Servo iniservo;

char weekDay[][7] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu" };   

byte detikSebelumnya;

char buf[17];

    

void setup() {

  Serial.begin(9600);

  Serial.println("Pakan Ikan Otomatis");//untuk tampilan awal

  Serial.println("By:RISKI PERMADANI");//untuk tampilan awal

  iniservo.attach(pinservo);

  iniservo.write(servo_OFF);

   

  Wire.begin();

  rtc.begin();

  Wire.beginTransmission(0x3F);

  

  if (Wire.endTransmission())

  {

    lcd = LiquidCrystal_I2C(0x27, 16, 2);

  }

  lcd.begin(); 

  lcd.backlight();

  

  lcd.setCursor(3, 0);

  lcd.print("PAKAN IKAN");//untuk tampilan nama project

  lcd.setCursor(4, 1);

  lcd.print("OTOMATIS");//untuk tampilan nama project

  delay(3000);

  lcd.clear();

  

  lcd.setCursor(6, 0);

  lcd.print("RISKI");//untuk tampilan nama

  lcd.setCursor(4, 1);

  lcd.print("PERMADANI");//untuk tampilan nama

  delay(3000);

  lcd.clear();

   

  Serial.println("Sistem mulai");

  sprintf(buf, "Set waktu 1 = %02d:%02d (%lu)", MakanPertama.hour(), MakanPertama.minute(), MakanPertama.get());

  Serial.println(buf);

  sprintf(buf, "Set waktu 2 = %02d:%02d (%lu)", MakanKedua.hour(), MakanKedua.minute(), MakanKedua.get());

  Serial.println(buf);

}



void loop()

{

  DateTime now = rtc.now();

  rtc.convertTemperature(); 

  lcd.setCursor(9, 1);

  lcd.print(rtc.getTemperature());//untuk tampilan Suhu

  lcd.print("'C");//untuk tampilan derajat C

  lcd.setCursor(0, 0);

  lcd.print(weekDay[now.dayOfWeek()]);//untuk tampilan hari

  lcd.setCursor(6, 0);

  lcd.print(now.date(), DEC); //untuk tampilan tanggal

  lcd.print("/");

  lcd.print(now.month(), DEC);//untuk tampilan bulan 

  lcd.print("/");

  lcd.print(now.year(), DEC);//untuk tampilan tahun

   

  if (detikSebelumnya != now.second())

  {

    sprintf(buf, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());


    lcd.setCursor(0, 1);

    lcd.print(buf);

    Serial.print(buf);

    detikSebelumnya = now.second();

    uint32_t epoch = now.get() % 86400;//hanya jam menit detik

   

    if ((epoch == MakanPertama.get()) ||

        (epoch == MakanKedua.get()))

    {

      char buf[17];

      sprintf(buf, "SEKARANG: %02d:%02d", now.hour(), now.minute());//untuk tampilan saat waktu makan

      lcd.clear();

      lcd.setCursor(0, 0);

      lcd.print(buf);

      lcd.setCursor(0, 1);

      lcd.print("Waktunya Makan!!");//untuk tampilan saat waktu makan

      Serial.println(buf);

      

      //tambah atau kurangi program ini untuk setting berapa kali servo berjalan

      //di setting 2X

      iniservo.write(servo_ON);

      delay(waktuservo_ON);

      iniservo.write(servo_OFF);

      delay(1000); 

      iniservo.write(servo_ON);

      delay(waktuservo_ON);

      iniservo.write(servo_OFF);

      delay(1000); 

      lcd.clear();

    }

  }

}


Kalian juga harus memasukan file zip untuk library arduino ide kalian dibawah ini:


DOWNLOAD LIBRARY


Untuk tutorial lengkapnya dapat kalian lihat di video Youtube dibawah ini:






















Komentar