Experience

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)