Sample Python programs I wrote during my internship.
# First program Alarms for shop floor buzzers Raspberry Pi
import time
import threading
from datetime import datetime, timedelta
from gpiozero import Buzzer
from time import sleep
buzzer = Buzzer (18)
now = datetime.now ()
dt = now.strftime(“%m/%d/%Y %H:%M:%S”)
class Alarm:
def __init__(self, alarm_time: str, message: str):
self.alarm_time = alarm_time
self.message = message
def set_alarm(self):
alarm_hour, alarm_minute = map(int, self.alarm_time.split(‘:’))
now = datetime.now()
alarm_datetime = now.replace(hour=alarm_hour, minute=alarm_minute, second=0,
microsecond=0)
if alarm_datetime < now:
alarm_datetime += timedelta(days=1)
wait_time = (alarm_datetime – now).total_seconds()
time.sleep(wait_time)
buzzer.on()
sleep(.5) #when placed on the floor set to (10)
buzzer.off()
class AlarmClock:
def __init__(self):
self.alarms = []
def add_alarm(self, alarm_time: str, message: str):
new_alarm = Alarm(alarm_time, message)
self.alarms.append(new_alarm)
def start_alarms(self):
for alarm in self.alarms:
alarm_thread = threading.Thread(target=alarm.set_alarm)
alarm_thread.start()
if __name__ == “__main__”:
my_alarm_clock = AlarmClock()
# 15 separate alarms with different times and messages
my_alarm_clock.add_alarm(“7:00”, “1st shift clock in”)
my_alarm_clock.add_alarm(“9:30”, “Break Time”)
my_alarm_clock.add_alarm(“9:43”, “Three minutes until End Break”)
my_alarm_clock.add_alarm(“9:45”, “End Break”)
my_alarm_clock.add_alarm(“12:00”, “Start Lunch”)
my_alarm_clock.add_alarm(“12:27”, “Three minutes until End Lunch”)
my_alarm_clock.add_alarm(“12:30”, “End Lunch”)
my_alarm_clock.add_alarm(“15:27”, “Three minute warning”)
my_alarm_clock.add_alarm(“15:30”, “End 1st Shift, Start 2nd Shift”)
my_alarm_clock.add_alarm(“18:30”, “Break Time”)
my_alarm_clock.add_alarm(“18:45”, “Break Time”)
my_alarm_clock.add_alarm(“21:30”, “Start Lunch”)
my_alarm_clock.add_alarm(“21:57”, “Three minutes until End Lunch”)
my_alarm_clock.add_alarm(“22:00”, “End Lunch”)
my_alarm_clock.add_alarm(“2:00”, “End 2nd Shift”)
my_alarm_clock.start_alarms()
# Code for the second program Timeclock
import time
from LCD import LCD
from gpiozero import Buzzer
from time import sleep, mktime
from datetime import datetime
#lcd address
lcd = LCD(2, 0x27, True)
dti = mktime(datetime.now().timetuple())
while True:
ndti = mktime(datetime.now().timetuple())
if dti < ndti:
dti = ndti
lcd.clear()
lcd.message(“General Engineering”, 1)
lcd.message(datetime.now().strftime(‘%b %d %H:%M:%S\n’), 2)
sleep(1)
else:
sleep(.1)