How to Build a Alarm Clock using Python
Hello coder, welcome to the codewithrandom blog. In this blog, we will learn how to build an alarm clock using Python. The alarm clock will display the current time and allow you to set an alarm that will sound at a specific time. We will be using the Python’s built-in libraries such as the time and datetime to get the current time and the winsound library to play a sound when the alarm goes off and Tkinter Python offers multiple choices for developing a GUI (Graphical User Interface).
Make Your Own Brick Breaker Game Using Python
Steps to Build an Alarm Clock using Python:
from tkinter import * import datetime import time import winsound from threading import *
step 2: Create an Object
root = Tk()
step 3: Set geometry
root.geometry("400x200")
step 4 : Use Threading
def Threading(): t1=Thread(target=alarm) t1.start() def alarm():
step 5 : Infinite Loop
while True: # Set Alarm set_alarm_time = f"{hour.get()}:{minute.get()}:{second.get()}" # Wait for one seconds time.sleep(1) # Get current time current_time = datetime.datetime.now().strftime("%H:%M:%S") print(current_time,set_alarm_time)
if current_time == set_alarm_time: print("Time to Wake up") # Playing sound winsound.PlaySound("sound.wav",winsound.SND_ASYNC)
step 7 : Add Labels, Frame, Button, Optionmenus
Label(root,text="Alarm Clock",font=("Helvetica 20 bold"),fg="red").pack(pady=10) Label(root,text="Set Time",font=("Helvetica 15 bold")).pack() frame = Frame(root) frame.pack() hour = StringVar(root) hours = ('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24' ) hour.set(hours[0]) hrs = OptionMenu(frame, hour, *hours) hrs.pack(side=LEFT) minute = StringVar(root) minutes = ('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60') minute.set(minutes[0]) mins = OptionMenu(frame, minute, *minutes) mins.pack(side=LEFT) second = StringVar(root) seconds = ('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60') second.set(seconds[0]) secs = OptionMenu(frame, second, *seconds) secs.pack(side=LEFT) Button(root,text="Set Alarm",font=("Helvetica 15"),command=Threading).pack(pady=20) # Execute Tkinter root.mainloop()
Complete Source code for Alarm Clock👇👇
# Import Required Library from tkinter import * import datetime import time import winsound from threading import * # Create Object root = Tk() # Set geometry root.geometry("400x200") # Use Threading def Threading(): t1=Thread(target=alarm) t1.start() def alarm(): # Infinite Loop while True: # Set Alarm set_alarm_time = f"{hour.get()}:{minute.get()}:{second.get()}" # Wait for one seconds time.sleep(1) # Get current time current_time = datetime.datetime.now().strftime("%H:%M:%S") print(current_time,set_alarm_time) # Check whether set alarm is equal to current time or not if current_time == set_alarm_time: print("Time to Wake up") # Playing sound winsound.PlaySound("sound.wav",winsound.SND_ASYNC) # Add Labels, Frame, Button, Optionmenus Label(root,text="Alarm Clock",font=("Helvetica 20 bold"),fg="red").pack(pady=10) Label(root,text="Set Time",font=("Helvetica 15 bold")).pack() frame = Frame(root) frame.pack() hour = StringVar(root) hours = ('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24' ) hour.set(hours[0]) hrs = OptionMenu(frame, hour, *hours) hrs.pack(side=LEFT) minute = StringVar(root) minutes = ('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60') minute.set(minutes[0]) mins = OptionMenu(frame, minute, *minutes) mins.pack(side=LEFT) second = StringVar(root) seconds = ('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60') second.set(seconds[0]) secs = OptionMenu(frame, second, *seconds) secs.pack(side=LEFT) Button(root,text="Set Alarm",font=("Helvetica 15"),command=Threading).pack(pady=20) # Execute Tkinter root.mainloop()
Output for Alarm Clock👇👇👇
Conclusion:
In this tutorial, we learned how to build an alarm clock using Python. We used the time, datetime, and winsound libraries to get the current time, set the alarm time, check the alarm time, and sound the alarm. This is a simple example of how Python can be used to build useful tools. Hope you enjoyed building with us! Visit our homepage and you get lot’s of projects💝