#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
// LCD ayarları
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Wi-Fi ayarları
const char* ssid = "WiFi_SSID";
const char* password = "WiFi_PASSWORD";
// NTP Ayarları
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 3600, 60000);
// Alarm Değişkenleri
int alarmHour = 6;
int alarmMinute = 30;
bool alarmActive = false;
void setup() {
Serial.begin(115200);
lcd.begin();
lcd.backlight();
// Wi-Fi Bağlantısı
WiFi.begin(ssid, password);
lcd.setCursor(0, 0);
lcd.print("WiFi Baglaniyor");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("WiFi Baglaniyor...");
}
lcd.clear();
lcd.print("WiFi Baglandi!");
// NTP Client başlat
timeClient.begin();
delay(2000);
lcd.clear();
}
void loop() {
// Zaman güncelleme
timeClient.update();
int currentHour = timeClient.getHours();
int currentMinute = timeClient.getMinutes();
int currentSecond = timeClient.getSeconds();
// Saati LCD'ye yazdırma
lcd.setCursor(0, 0);
lcd.print("Saat: ");
lcd.print(currentHour < 10 ? "0" : "");
lcd.print(currentHour);
lcd.print(":");
lcd.print(currentMinute < 10 ? "0" : "");
lcd.print(currentMinute);
lcd.print(":");
lcd.print(currentSecond < 10 ? "0" : "");
lcd.print(currentSecond);
// Alarm kontrolü
if (alarmActive && currentHour == alarmHour && currentMinute == alarmMinute) {
lcd.setCursor(0, 1);
lcd.print("Alarm Caliyor!");
// Alarm sesi eklenebilir
delay(60000); // Alarm süresi
} else {
lcd.setCursor(0, 1);
lcd.print(" "); // Alt satırı temizle
}
delay(1000);
}