Title : Alarm Clock In Python


Description:

In this Project We are going to build an Alarm Clock with python using tkinter

Modules we are using :  1. tkninter

         2. datatime

         3. time

         4. winsound

         5. threading

Source Code :



"""

Developer: MuraliDharan

Company: MDCodings

Licence: Copyright @ MDCodings

"""

# 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()