//RTC
#include "RTClib.h"
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Ahad", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"};
int tanggal, bulan, tahun, jam, menit, detik;
String hari;
float suhu;
//LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
//SERVO
#include <Servo.h>
Servo mekanik;
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
//RTC
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1) delay(10);
}
//LCD
lcd.init();
lcd.backlight();
//SERVO
mekanik.attach(4);
mekanik.write(90);
}
void loop() {
//RTC
DateTime now = rtc.now();
jam = now.hour();
menit = now.minute();
detik = now.second();
tanggal = now.day();
bulan = now.month();
tahun = now.year();
hari = daysOfTheWeek[now.dayOfTheWeek()];
suhu = rtc.getTemperature();
lcd.setCursor(0, 0);
lcd.print(String() + hari + "," + tanggal + "-" + bulan + "-" + tahun);
lcd.setCursor(0, 1);
lcd.print(String() + jam + ":" + menit + ":" + detik + " " + suhu + "°C ");
delay(1000);
//LCD
Serial.println(String() + hari + ", " + tanggal + "-" + bulan + "-" + tahun);
Serial.println(String() + jam + ":" + menit + ":" + detik);
Serial.println(String() + "Suhu: " + suhu + " C");
Serial.println();
//KONDISI
if ((jam == 9) && (menit == 49) && (detik == 1)) {
sudah_saatnya(5);
}
if ((jam == 22) && (menit == 46) && (detik == 1)) {
sudah_saatnya(5);
}
}
void sudah_saatnya(int jumlah) {
for (int i = 1; i <= jumlah; i++) {
mekanik.write(0);
delay(500);
mekanik.write(90);
delay(500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Maktu makan ygy");
lcd.setCursor(0, 1);
lcd.print("----------------");
}
}