Arduino Droid Project : Membuat Pakan Ikan Otomatis

Indobot Update

Arduino Droid Project : Pakan Ikan Otomatis dengan Arduino Uno dan RTC DS1307
Arduino Droid Project : Pakan Ikan Otomatis dengan Arduino Uno dan RTC DS1307

Halo Fanbot. Sedang ada tugas apa hari ini? Pada project Arduino Droid ini kita akan membuat project Pakan Ikan Otomatis terutama untuk ikan di akuarium ya. Sebenarnya bisa juga di terapkan untuk ikan ternak dalam jumlah banyak. Tentunya dengan mengubah tenaga mekaniknya menjadi lebih besar.

Project kita kali ini menggunakan device mikrokontroler berupa Arduino uno, di tambah dengan servo untuk buka tutup pakan dan RTC DS1307 sebagai pengaturan waktu. Bagaimana cara membuatnya? yuk kita simak.

 

Alat dan Bahan

Berikut ini merupakan alat dan bahan yang di perlukan untuk project kali ini.

  1. Smartphone terinstall aplikasi Arduino Droid.
  2. Kabel USB Type B (untuk Arduino Uno) dan OTG (untuk menghubungkan dengan smartphone)
  3. Arduino Uno (1)
  4. RTC DS1307 (1)
  5. Breadboard (1)
  6. Kabel jumper (secukupnya).

 

Rangkaian

Rangkai bahan di atas  menjadi seperti gambar berikut ini.

Program

Ikuti langkah-langkah berikut untuk memahami programnya.

  • Download library untuk RTC DS1307. Silakan dapat download DI SINI . Selain itu, download juga library Servo (DI SINI)
  • Masukkan library tersebut ke aplikasi Arduino Droid. Bagi yang masih bingung bagaimana cara memasukkannya silakan dapat kunjungi laman berikut ini Tutorial Lengkap Menggunakan Arduino Droid untuk Pemula 
  • Jika sudah, silahkan buka Libraries Examples > User Libraries > DS1307RTC > ReadTime. Maka akan di munculkan program seperti berikut.

 

 

#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>

void setup() {
  Serial.begin(9600);
  while (!Serial) ; // wait for serial
  delay(200);
  Serial.println("DS1307RTC Read Test");
  Serial.println("-------------------");
}

void loop() {
  tmElements_t tm;

  if (RTC.read(tm)) {
    Serial.print("Ok, Time = ");
    print2digits(tm.Hour);
    Serial.write(':');
    print2digits(tm.Minute);
    Serial.write(':');
    print2digits(tm.Second);
    Serial.print(", Date (D/M/Y) = ");
    Serial.print(tm.Day);
    Serial.write('/');
    Serial.print(tm.Month);
    Serial.write('/');
    Serial.print(tmYearToCalendar(tm.Year));
    Serial.println();
  } else {
    if (RTC.chipPresent()) {
      Serial.println("The DS1307 is stopped.  Please run the SetTime");
      Serial.println("example to initialize the time and begin running.");
      Serial.println();
    } else {
      Serial.println("DS1307 read error!  Please check the circuitry.");
      Serial.println();
    }
    delay(9000);
  }
  delay(1000);
}

void print2digits(int number) {
  if (number >= 0 && number < 10) {
    Serial.write('0');
  }
  Serial.print(number);
}

 

baca juga: Tutorial Lengkap Menggunakan Arduino Droid untuk Pemula

 

  • Pada program di atas sudah dapat di gunakan untuk menampilkan waktu dan tanggal di serial monitor. Selanjutnya kita perlu menghapus program-program yang tidak di butuhkan untuk project kali ini, seperti program instruksi ketika ada error dan program untuk menampilkan tanggal. Karena kita hanya membutuhkan jam saja dalam project ini (Namun jika teman-teman membutuhkan tanggal. Jangan di hapus ya). Maka program akan menjadi seperti berikut.
 

#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>

void setup() {
  Serial.begin(9600);
  while (!Serial) ; // wait for serial
  delay(200);
  Serial.println("DS1307RTC Read Test");
  Serial.println("-------------------");
}

void loop() {
  tmElements_t tm;

  if (RTC.read(tm)) {
    Serial.print("Time = ");
    print2digits(tm.Hour);
    Serial.write(':');
    print2digits(tm.Minute);
    Serial.write(':');
    print2digits(tm.Second);
  }
  delay(1000);
}

void print2digits(int number) {
  if (number >= 0 && number < 10) {
    Serial.write('0');
  }
  Serial.print(number);
}
  • Setelah itu. Silakan tambahkan program untuk kendali servo sehingga program menjadi seperti berikut.
 

#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#include <Servo.h>
Servo myservo;
int jam = 6;
int menit = 0;
void setup() {
  Serial.begin(9600);
  myservo.attach(2);
  
  while (!Serial) ; // wait for serial
  delay(200);
  Serial.println("DS1307RTC Read Test");
  Serial.println("-------------------");
}

void loop() {
  tmElements_t tm;
  
  if (tm.Hour == jam && tm.Minute == menit) {
    myservo.write(180);
    delay(1000);
  }
  myservo.write(0);
  
  if (RTC.read(tm)) {
    Serial.print("Time = ");
    print2digits(tm.Hour);
    Serial.write(':');
    print2digits(tm.Minute);
    Serial.write(':');
    print2digits(tm.Second);
  }
  delay(1000);
}

void print2digits(int number) {
  if (number >= 0 && number < 10) {
    Serial.write('0');
  }
  Serial.print(number);
}
  • Jika sudah, silakan coba kirimkan program ke Arduino Uno anda. Pada program di atas, pengaturan jam untuk membuka pakan ada pada program int jam = 6; dan int menit = 0; teman-teman dapat menggantinya sesuai dengan jam makan ikan.
  • Jika kalian merasa membutuhkan waktu yang lebih lama untuk mengeluarkan pakan, maka dapat ubah delay pada program berikut.
 

  if (tm.Hour == jam && tm.Minute == menit) {
    myservo.write(180);
    delay(1000);
  }

 

baca juga: Program Arduino Bluetooth HC-05 dan Aplikasi Android

 

Hasil dari program di atas adalah kita dapat mengatur waktu pemberian pakan ikan dengan patokan jam. Pengaturan di lakukan dengan mengubah programnya. Jadi ketika teman-teman ingin mengubah jam pemberian pakan, kalian harus melakukan editing program dan kemudian di upload kembali ke Arduino IDE. Selain itu, project ini juga tidak menggunakan display untuk menampilkan jam pada saat ini. Nah pada project berikutnya, teman-teman dapat upgrade untuk memberikan display berupa LCD dan selanjutnya dapat memberikan program untuk memberikan waktu pemberian pakan tanpa harus melakukan reuploading.

Selamat mencoba.

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp