Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime as dt
- import RPi.GPIO as GPIO
- import Adafruit_CharLCD as LCD
- #from elapse import ElapseSeconds
- from water_sched import WaterSchedule
- from light_sched import LightSchedule
- from cooling_sched import CoolingSchedule
- class LCDSchedule:
- def __init__(self, water, light, cooling):
- # initialize timer
- #self.lcd_timer = ElapseSeconds()
- # initialize water, light and cooling objects
- self.water_schedule = water
- self.lighting_schedule = light
- self.cooling_schedule = cooling
- # initialize variable for messages to lcd
- self.msg_row_1 = ""
- self.msg_row_2 = ""
- # initialize lcd
- lcd_rs = 9
- lcd_en = 22
- lcd_d4 = 25
- lcd_d5 = 24
- lcd_d6 = 23
- lcd_d7 = 20
- lcd_bl = 2
- lcd_col = 16
- lcd_row = 2
- self.lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_col, lcd_row, lcd_bl)
- self.display = 0
- def setup(self):
- # get time
- cur_time = dt.datetime.now()
- cur_time = cur_time.strftime("%Y/%m/%d %H:%M:%S")
- #set initialz message
- self.msg_row_1 = "SYSTEM STARTED:\n"
- self.msg_row_2 = cur_time
- self.lcd.clear()
- self.lcd.message(self.msg_row_1)
- self.lcd.message(self.msg_row_2)
- # setup lcd update timer
- #self.lcd_timer.reset(5)
- #self.lcd_timer.start()
- self.display = 1
- def update(self):
- # update lcd every 5 seconds
- #if self.lcd_timer.done():
- # clear lcd before update
- self.lcd.clear()
- # update water info
- if self.display == 1:
- # get status info
- display_msg = self.water_schedule.display()
- self.lcd.message(display_msg)
- # next display: lighting
- self.display = 2
- # update light info
- elif self.display == 2:
- # get status info
- display_msg = self.lighting_schedule.display()
- self.lcd.message(display_msg)
- # next display: cooling
- self.display = 3
- # update cooling info
- elif self.display == 3:
- # get ststu info
- display_msg = self.cooling_schedule.display()
- self.lcd.message(display_msg)
- # next display: water
- self.display = 4
- # update time/date info
- else:
- # get time
- cur_time = dt.datetime.now()
- cur_clock = cur_time.strftime("%H:%M:%S")
- cur_date = cur_time.strftime("%Y/%m/%d")
- display_msg = "TIME: {:8}\n".format(cur_clock)
- display_msg += "DATE: {:10}".format(cur_date)
- self.lcd.message(display_msg)
- # next display: water
- self.display = 1
- # restart timer
- #self.lcd_timer.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement