//mendeklarasikan penggunaan LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#include "RTClib.h"
//Mendeklarasikan penggunaan RTC DS1307
#include "RTClib.h"
RTC_DS1307 rtc;
int jam, menit, detik, hari, tanggal, bulan, tahun;
char temp[60];
char temp2[33];
char nama_hari[7][12] ={"Minggu","Senin", "Selasa", "Rabu", "Kamis","Jum'at", "Sabtu"};
//Mendeklarasikan LED
#define LED 2
//Mendeklarasikan DHT22
#include "DHT.h"
DHT dht (5, DHT22);
void setup() {
// tampilan LCD
// put your setup code here, to run once:
lcd.backlight();lcd.init();
lcd.setCursor(0,0); lcd.print("LENI PUSPITASARI");
lcd.setCursor(0,1); lcd.print(" SMKN 1 TAPAN ");
// Tampilan RTC
rtc.begin();
rtc.adjust(DateTime(2023,6,26,9,32,25));
delay(2000); lcd.clear();
// Tampilan LED
pinMode(LED, OUTPUT);
//Menampilkan sensor DHT
dht.begin();
}
void loop() {
// put your main code here, to run repeatedly:
//Menjalankan Sensor DHT
int kelembaban=dht.readHumidity();
float suhu=dht.readTemperature();
DateTime now=rtc.now();
jam=now.hour();
menit=now.minute();
detik=now.second();
tanggal=now.day();
bulan=now.month();
tahun=now.year();
hari=now.dayOfTheWeek();
//Menampilkan hari, tanggal, bulan,dan Tahun pada LCD
sprintf (temp,"JAM %02d:%02d:%02d WIB",jam,menit,detik);
lcd.setCursor (0,1); lcd.print(temp);lcd.print("");
if (detik<10){
sprintf (temp,"%s,%02d,%02d,%d",nama_hari[hari],tanggal,bulan,tahun);
lcd.setCursor (0,0); lcd.print(temp); lcd.print("");
}
else
lcd.setCursor (0,0); lcd.print("T="); lcd.print(suhu,0); lcd.write(0xdf); lcd.print("C ");
lcd.print("H=");lcd.print(kelembaban); lcd.print("% ");
//Menjalankan LED
if (detik>15) digitalWrite (LED, HIGH); //Lampu akan menyala jika lebih dari 15 detik
else digitalWrite (LED, LOW);
}