{"id":155,"date":"2023-10-22T23:52:12","date_gmt":"2023-10-22T23:52:12","guid":{"rendered":"https:\/\/sites.wp.odu.edu\/cyberimpact1\/?page_id=155"},"modified":"2025-04-23T13:25:10","modified_gmt":"2025-04-23T13:25:10","slug":"experience","status":"publish","type":"page","link":"https:\/\/sites.wp.odu.edu\/kylehickman\/experience\/","title":{"rendered":"Experience"},"content":{"rendered":"\n<p><strong>Sample Python programs I wrote during my internship.<\/strong><\/p>\n\n\n\n<p># First program Alarms for shop floor buzzers Raspberry Pi<br>import time<br>import threading<br>from datetime import datetime, timedelta<br>from gpiozero import Buzzer<br>from time import sleep<br>buzzer = Buzzer (18)<br>now = datetime.now ()<br>dt = now.strftime(&#8220;%m\/%d\/%Y %H:%M:%S&#8221;)<br>class Alarm:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def __init__(self, alarm_time: str, message: str):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.alarm_time = alarm_time<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.message = message<br>def set_alarm(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alarm_hour, alarm_minute = map(int, self.alarm_time.split(&#8216;:&#8217;))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; now = datetime.now()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alarm_datetime = now.replace(hour=alarm_hour, minute=alarm_minute, second=0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; microsecond=0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if alarm_datetime &lt; now:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alarm_datetime += timedelta(days=1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wait_time = (alarm_datetime &#8211; now).total_seconds()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; time.sleep(wait_time)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buzzer.on()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(.5) #when placed on the floor set to (10)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buzzer.off()<\/p>\n\n\n\n<p><br>class AlarmClock:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def __init__(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; self.alarms = []<br>def add_alarm(self, alarm_time: str, message: str):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new_alarm = Alarm(alarm_time, message)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.alarms.append(new_alarm)<br>def start_alarms(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for alarm in self.alarms:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; alarm_thread = threading.Thread(target=alarm.set_alarm)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; alarm_thread.start()<br>if __name__ == &#8220;__main__&#8221;:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock = AlarmClock()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 15 separate alarms with different times and messages<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;7:00&#8221;, &#8220;1st shift clock in&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;9:30&#8221;, &#8220;Break Time&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;9:43&#8221;, &#8220;Three minutes until End Break&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;9:45&#8221;, &#8220;End Break&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;12:00&#8221;, &#8220;Start Lunch&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;12:27&#8221;, &#8220;Three minutes until End Lunch&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;12:30&#8221;, &#8220;End Lunch&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;15:27&#8221;, &#8220;Three minute warning&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;15:30&#8221;, &#8220;End 1st Shift, Start 2nd Shift&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;18:30&#8221;, &#8220;Break Time&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;18:45&#8221;, &#8220;Break Time&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;21:30&#8221;, &#8220;Start Lunch&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;21:57&#8221;, &#8220;Three minutes until End Lunch&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;22:00&#8221;, &#8220;End Lunch&#8221;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.add_alarm(&#8220;2:00&#8221;, &#8220;End 2nd Shift&#8221;)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_alarm_clock.start_alarms()<\/p>\n\n\n\n<p># Code for the second program Timeclock<br>import time<br>from LCD import LCD<br>from gpiozero import Buzzer<br>from time import sleep, mktime<br>from datetime import datetime<br>#lcd address<br>lcd = LCD(2, 0x27, True)<br>dti = mktime(datetime.now().timetuple())<br>while True:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ndti = mktime(datetime.now().timetuple())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if dti &lt; ndti:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dti = ndti<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd.clear()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd.message(&#8220;General Engineering&#8221;, 1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd.message(datetime.now().strftime(&#8216;%b %d %H:%M:%S\\n&#8217;), 2)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;else:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(.1)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sample Python programs I wrote during my internship. # First program Alarms for shop floor buzzers Raspberry Piimport timeimport threadingfrom datetime import datetime, timedeltafrom gpiozero import Buzzerfrom time import sleepbuzzer = Buzzer (18)now = datetime.now ()dt = now.strftime(&#8220;%m\/%d\/%Y %H:%M:%S&#8221;)class Alarm:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def __init__(self, alarm_time: str, message: str):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.alarm_time = alarm_time &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.message = messagedef&#8230; <\/p>\n<div class=\"link-more\"><a href=\"https:\/\/sites.wp.odu.edu\/kylehickman\/experience\/\">Read More<\/a><\/div>\n","protected":false},"author":27873,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/sites.wp.odu.edu\/kylehickman\/wp-json\/wp\/v2\/pages\/155"}],"collection":[{"href":"https:\/\/sites.wp.odu.edu\/kylehickman\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.wp.odu.edu\/kylehickman\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.wp.odu.edu\/kylehickman\/wp-json\/wp\/v2\/users\/27873"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.wp.odu.edu\/kylehickman\/wp-json\/wp\/v2\/comments?post=155"}],"version-history":[{"count":5,"href":"https:\/\/sites.wp.odu.edu\/kylehickman\/wp-json\/wp\/v2\/pages\/155\/revisions"}],"predecessor-version":[{"id":354,"href":"https:\/\/sites.wp.odu.edu\/kylehickman\/wp-json\/wp\/v2\/pages\/155\/revisions\/354"}],"wp:attachment":[{"href":"https:\/\/sites.wp.odu.edu\/kylehickman\/wp-json\/wp\/v2\/media?parent=155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}