#include <WiFi.h>
#include <Wire.h>
#define SPEAKER_PIN 2
#define NTP_SERVER "pool.ntp.org"
#define UTC_OFFSET 0
#define UTC_OFFSET_DST 7*60*60
unsigned char JamAlarm, MenitAlarm, DetikAlarm;
unsigned char JamNow, MenitNow, DetikNow;
void printLocalTime() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
Serial.println("Connection Err");
return;
}
Serial.println(&timeinfo, "%H:%M:%S");
Serial.println(&timeinfo, "%d/%m/%Y %Z");
// Update current time variables
JamNow = timeinfo.tm_hour;
MenitNow = timeinfo.tm_min;
DetikNow = timeinfo.tm_sec;
Serial.print("Jam= ");
Serial.print(JamNow); Serial.print(":");
Serial.print(MenitNow); Serial.print(":");
Serial.println(DetikNow);
}
void setup() {
Serial.begin(115200);
Serial.print("WiFi ");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Updating time...");
configTime(UTC_OFFSET, UTC_OFFSET_DST, NTP_SERVER);
JamAlarm = 8;
MenitAlarm = 5;
DetikAlarm = 10;
/// alarm sound
// Play a Wah-Wah-Wah-Wah sound (these notes are just examples)
tone(SPEAKER_PIN, 622); // NOTE_DS5
delay(300);
tone(SPEAKER_PIN, 587); // NOTE_D5
delay(300);
tone(SPEAKER_PIN, 554); // NOTE_CS5
delay(300);
for (byte i = 0; i < 10; i++) {
for (int pitch = -10; pitch <= 10; pitch++) {
tone(SPEAKER_PIN, 523 + pitch); // NOTE_C5 + pitch
delay(5);
}
}
noTone(SPEAKER_PIN);
}
void loop() {
printLocalTime();
delay(3000);
Serial.println("Alarm: ");
delay(250);
}