#include <WiFi.h>
#include "time.h"
const char* ssid = "Wokwi-GUEST"; //ใส่ SSID
const char* password = ""; //ใส่ Password ของ SSID
int timezone = 7 * 3600; // ตั้งค่า TimeZone ตามเวลาประเทศไทย * วินาที่ใน 1 ปี
int dst = 0; // กำหนดค่า Date Swing Time
int buzzer = 26;
// ตัวแปรวันในสัปดาห์
String weekDays[7] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
// ตัวแปรชื่อเดือน
String monthName[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
void setup() {
Serial.begin(115200);
Serial.setDebugOutput(true);
// เชื่อมต่อ Wifi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("\nConnecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.println("\nWiFi is Connecting...");
// เชื่อมต่อ NTP Server
configTime(timezone, dst, "pool.ntp.org");
Serial.println("\nLoading time");
while (!time(nullptr)) {
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("\nNTP is Connecting...");
pinMode(buzzer, OUTPUT);
}
void loop() {
// รับเวลา
time_t now = time(nullptr);
struct tm* ptm = localtime(&now);
// รับค่าต่างๆ ที่อยู่ในตัวแปร ptm มาเก็บใว้ที่ตัวแปร
int hour = ptm->tm_hour; // ชั่วโมง, range 0 to 23
int minute = ptm->tm_min; // นาที, range 0 to 59
int second = ptm->tm_sec; // วินาที, range 0 to 59
int wday = ptm->tm_wday; // วัน, range 0 to 6
int date = ptm->tm_mday; // วันที่, range 1 to 31
int month = ptm->tm_mon; // เดือน, range 0 to 11
int year = ptm->tm_year + 1900; // ปีคริสศักราช เริ่มต้นตั้งแต่ 1900
//แสดงเวลา
Serial.print(hour);
Serial.print(":");
Serial.print(minute);
Serial.print(":");
Serial.print(second);
Serial.print(" ");
//แสดง วัน เดือน ปี
Serial.print(weekDays[wday]);
Serial.print(" ");
Serial.print(date);
Serial.print(" ");
Serial.print(monthName[month]);
Serial.print(" ");
Serial.println(year);
if (second % 15 == 0) {
digitalWrite(buzzer, HIGH);
Serial.println("Buzzer ON");
} else if (second % 5 == 0) {
digitalWrite(buzzer, LOW);
Serial.println("Buzzer OFF");
}
delay(1000);
}