// Konfigurasi Blynk
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6LnhOxZGi"
#define BLYNK_TEMPLATE_NAME "Monitoring Lampu dan Papan Informasi"
#define BLYNK_AUTH_TOKEN "7l04r6Stj3FvI988IJfWlGJHGwwQHpG-"
// Menambahkan Library untuk kendali Blynk menggunakan ESP32
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Konfigurasi Jaringan (SSID dan Password) Wifi
// Catatan: Jika menggunakan simulasi Wokwi, konfigurasi jaringan
// Seperti dibawah ini.
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST"; // Nama jaringan WiFi
char pass[] = ""; // Password Wifi
BlynkTimer timer;
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
LiquidCrystal_I2C lcd(0x27,16,2);
RTC_DS1307 rtc;
int jam, menit, detik, hari, tanggal, bulan, tahun;
char temp[33];
char nama_hari[7][7] = {"Minggu", "Senin", "Sel", "Rabu", "Kamis", "Jumat", "Sabtu"};
byte ldr = 14;
byte led = 26;
int nilai;
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
lcd.backlight();
lcd.init();
lcd.setCursor(0, 0);
lcd.print("Kelompok 6B");
lcd.setCursor(0, 1);
lcd.print("Final IoT");
delay(2000);
lcd.clear();
rtc.begin();
Serial.println("program siap");
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, myTimerEvent);
}
void myTimerEvent()
{
nilai = analogRead(ldr);
Serial.print("Nilai LDR : ");
Serial.println(nilai);
if (nilai < 500) {
digitalWrite(led, HIGH);
Serial.println("Keadaan gelap, lampu menyala");
// Perintah untuk mengirim kondisi Led ke HP melalui Datastream V1
// Blynk.virtualWrite(V0, 1);
} else {
digitalWrite(led, LOW);
Serial.println("Keadaan terang, lampu mati");
// Blynk.virtualWrite(V0, 0);
}
delay(1000);
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, "Jam %02d:%02d:%02d WIB", jam, menit, detik);
lcd.setCursor(0, 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);
}
void loop()
{
Blynk.run();
timer.run();
}