// kali ini kita punya projek kecil tentang input tanggal dan waktu
// subscribe NaughtyGoat
// https://youtube.com/@ngwf
// import module RTC (ke "Library manager", terus add "RTClib")
#include "RTClib.h" // function import
RTC_DS1307 rtc; // var untuk RTC module
// variable untuk nama hari
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thusday", "Friday", "Saturday"};
void setup() {
// setup untuk output hari
Serial.begin(23456); // porting untuk load tanggal dan waktu.
// jangan terlalu besar atau kecil
// ! artinya "tidak sama", jadi kalau ada tanda seru maka functionnya "bukan"
// ngetrigger kalau serialnya kosong atau error
#ifndef ESP8266
while (!Serial); // jika tidak ada/ error serial
#endif // end arduino
// ini untuk ngecek apakah RTC terpasang atau tidak
if(! rtc.begin()) {
Serial.println("yahahaha buang aja RTC nya <RTC not detected>"); // RTC nya gak terdetect
Serial.flush();
abort();
}
// ini untuk ngecek apakah tanggal dan waktu sudah tersedia atau tidak
if(! rtc.isrunning()) {
// jika tidak ada konfigurasi tanggal dan waktu sblumnya akan muncul function dibawah ini
Serial.println("arduino nya kek tolol <no date and time set>");
// ini akan muncul menu adjusting tanggal dan waktu
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
// ini adalah output untuk tanggal dan waktu
Serial.print("Tanggal dan jam sekarang \n");
DateTime now = rtc.now(); // ngambil output dari RTC nya
Serial.print(now.day(), DEC); // tanggal
Serial.print('/');
Serial.print(now.month(), DEC); // bulan
Serial.print('/');
Serial.print(now.year(), DEC); // tahun
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); // nama hari
Serial.print(") ");
Serial.print(now.hour(), DEC); // jam
Serial.print(':');
Serial.print(now.minute(), DEC); // menit
Serial.print(':');
Serial.print(now.second(), DEC); // detik
Serial.println();
Serial.println();
delay(999); // berapa lama akan memuat ulang, disarankan 1 detik/1000 ms
}
// di tutorial berikutnya kita akan membuat bom waktu