#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
#include <WiFi.h>
#include <HTTPClient.h>
RTC_DS3231 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int BalkonDanTerasRelay = 19;
const int RuangTengahDanKamarRelay = 18;
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* scriptUrl = "https://script.google.com/macros/s/AKfycbxZHpk--U0SmyIkR32G77rwOtvv641Jk73aPfk-Ae7-jgFPOuQ27t7zOdO3Tr3gJ6_Fow/exec";
void setup() {
Serial.begin(115200);
delay(100);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
pinMode(BalkonDanTerasRelay, OUTPUT);
pinMode(RuangTengahDanKamarRelay, OUTPUT);
lcd.init();
rtc.begin();
lcd.backlight();
rtc.now();
}
void loop() {
DateTime now = rtc.now();
lcd.setCursor(0, 0);
lcd.print("tgl : ");
lcd.print(now.day());
lcd.print("/");
lcd.print(now.month());
lcd.print("/");
lcd.print(now.year());
lcd.setCursor(0, 1);
lcd.print("jam : ");
lcd.print(now.hour());
lcd.print(":");
lcd.print(now.minute());
lcd.print(":");
lcd.print(now.second());
;
if (now.hour() >= 16 || now.hour() < 6) {
digitalWrite(BalkonDanTerasRelay, HIGH);
send("lampu_teras_dinyalakan");
} else if (now.hour() == 7 && now.minute() == 35 && now.second() == 0) {
digitalWrite(BalkonDanTerasRelay, LOW);
send("lampu+balkon+teras+dimatikan");
}
if (now.hour() >= 16 || now.hour() < 6) {
digitalWrite(RuangTengahDanKamarRelay, HIGH);
send("lampu_ruang_tengah_dinyalakan");
} else if (now.hour() == 7 && now.minute() == 0 && now.second() == 0) {
digitalWrite(RuangTengahDanKamarRelay, LOW);
send("lampu+ruang+tengahr+dimatikan");
}
}
void send(String lampStatus) {
HTTPClient http;
String serverPath = String(scriptUrl) + "?lampStatus=" + String(lampStatus);
Serial.print("Connecting to server: ");
Serial.println(serverPath);
if (http.begin(serverPath)) {
int httpCode = http.GET();
if (httpCode > 0) {
Serial.print("Server response code: ");
Serial.println(httpCode);
} else {
Serial.print("HTTP GET request failed with error code: ");
Serial.println(httpCode);
}
http.end();
} else {
Serial.println("Unable to connect to the server");
}
}