#include <Servo.
h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//RTC
#include "RTClib.h"
RTC_DS3231 rtc;
char dataHari[7][12] = {"Ming", "Senin", "Sel", "Rabu", "Kamis", "Jumat", "Sabtu"};
String hari;
int tanggal, bulan, tahun, jam, menit, detik;
float suhu;
//LCD
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);//0x34 //0x27
//HITUNG
int x = 0;
int input = A0;
int state = 0;
//SERVO
const int P8 = 8; //LAMP
const int P9 = 9; //UV
const int P10 = 10; //
const int P11 = 11; //
const int P12 = 12; //
int relayL = LOW; //relay nyala
int relayH = HIGH; //relay mati
void setup () {
//LCD
//[Link]();
[Link]();
//MOTOR
//LAMPU
pinMode(P8, OUTPUT); //
pinMode(P9, OUTPUT); // kabelputih
pinMode(P10, OUTPUT); // kabelorange
pinMode(P11, OUTPUT); // kabelhijau
pinMode(P12, OUTPUT); // kabelbiru
digitalWrite(P8, relayH);
digitalWrite(P9, relayH);
digitalWrite(P10, relayH);
digitalWrite(P11, relayH);
digitalWrite(P12, relayH);
//RTC
if (! [Link]()) {
[Link]("RTC Tidak Ditemukan");
[Link]();
abort();
}
//Atur Waktu
//[Link](DateTime(F(__DATE__), F(__TIME__)));
//[Link](DateTime(2014, 1, 21, 3, 0, 0));
void loop ()
//RTC
DateTime now = [Link]();
hari = dataHari[[Link]()];
tanggal = [Link](), DEC;
bulan = [Link](), DEC;
tahun = [Link](), DEC;
jam = [Link](), DEC;
menit = [Link](), DEC;
detik = [Link](), DEC;
suhu = [Link]();
[Link](String() + hari + ", ");
[Link](String() + tanggal );
[Link](String() + "." + bulan);
[Link](String() + "." + tahun );
[Link](String() + tanggal + "." + bulan + "." + tahun );
[Link](String() + jam + ":" + menit + ":" + detik );
[Link](String() + suhu );
[Link]();
//LCD
[Link](12, 1);
[Link](x);
[Link](" ");
[Link](0,0);
[Link](String() + hari + "_ " + tanggal + "." + bulan + "." + tahun);
[Link](" ");
[Link](0,1);
[Link](String() + jam + ":" + menit + ":" + detik );
[Link](" ");
[Link](String() + suhu );
//hitung
int counter = digitalRead(A0);
if (state == 0)
switch (counter) {
case 1 : state = 1; [Link] (0, 1); x = x + 1; [Link](x); break;
case 0 : state = 0; break;
if (counter == LOW) {
state = 0;
//KONDISI
//P8
if (menit == 0 & detik == 00 ){
digitalWrite(P8,LOW);
if (menit == 15 & detik == 00){
digitalWrite(P8,HIGH);
//KASI_PAKAN
if (jam == 18 & menit == 00 & detik == 1 ){
kasi_pakan(1);
if (jam == 6 & menit == 30 & detik == 1 ){
kasi_pakan(1);
void kasi_pakan(int jumlah){
for(int i = 0; i <= jumlah; i ++){
digitalWrite(P10,HIGH);
delay(100);
digitalWrite(P10,LOW);
delay(100);