// Pada wokwi, simulasikan sebuah ESP32 yang membaca hari, tanggal dan jam dari RTC DS1307 (komunikasi I2C),
// kemudian data ditampilkan via LCD 16x2 (Komunikasi I2C) dan Serial Monitor (Komunikasi UART).
// Helmi 11211043
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#include "RTClib.h"
RTC_DS1307 rtc;
int jam,menit,detik,hari,tanggal,bulan,tahun;
char temp [33];
char nama_hari[7][7] = {"Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"};
void setup() {
Serial.begin(115200);
lcd.backlight();
lcd.init();
lcd.setCursor(0, 1);
lcd.print("Helmi 11211043");
delay(2500);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Teknologi IoT");
delay(2500);
lcd.clear();
rtc.begin();
Serial.println("Program Siap");
}
void loop(){
DateTime now = rtc.now();
// jam = now.hour();
// menit = now.minute();
// detik = now.second();
hari = now.dayOfTheWeek();
tanggal = now.day();
bulan = now.month();
tahun = now.year();
// sprintf (temp, "%02d:%02d:%02d WITA", jam, menit, detik);
sprintf (temp, "%02d:%02d:%02d WITA", now.hour(), now.minute(), now.second());
lcd.setCursor(1,0);
lcd.print(temp);
Serial.println(temp);
sprintf (temp, "%s,%02d-%02d-%d", nama_hari[hari],tanggal,bulan,tahun);
lcd.setCursor(0,1);
lcd.print(temp);
Serial.println(temp);
delay(1000);
Serial.println("------------------------------------------------------");
}