Advertisement
Guest User

Untitled

a guest
Aug 11th, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. import datetime as dt
  2. import RPi.GPIO as GPIO
  3. import Adafruit_CharLCD as LCD
  4.  
  5. #from elapse import ElapseSeconds
  6. from water_sched import WaterSchedule
  7. from light_sched import LightSchedule
  8. from cooling_sched import CoolingSchedule
  9.  
  10. class LCDSchedule:
  11.  
  12. def __init__(self, water, light, cooling):
  13. # initialize timer
  14. #self.lcd_timer = ElapseSeconds()
  15.  
  16. # initialize water, light and cooling objects
  17. self.water_schedule = water
  18. self.lighting_schedule = light
  19. self.cooling_schedule = cooling
  20.  
  21. # initialize variable for messages to lcd
  22. self.msg_row_1 = ""
  23. self.msg_row_2 = ""
  24.  
  25. # initialize lcd
  26. lcd_rs = 9
  27. lcd_en = 22
  28. lcd_d4 = 25
  29. lcd_d5 = 24
  30. lcd_d6 = 23
  31. lcd_d7 = 20
  32. lcd_bl = 2
  33.  
  34. lcd_col = 16
  35. lcd_row = 2
  36. self.lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_col, lcd_row, lcd_bl)
  37.  
  38. self.display = 0
  39.  
  40. def setup(self):
  41. # get time
  42. cur_time = dt.datetime.now()
  43. cur_time = cur_time.strftime("%Y/%m/%d %H:%M:%S")
  44.  
  45. #set initialz message
  46. self.msg_row_1 = "SYSTEM STARTED:\n"
  47. self.msg_row_2 = cur_time
  48.  
  49. self.lcd.clear()
  50. self.lcd.message(self.msg_row_1)
  51. self.lcd.message(self.msg_row_2)
  52.  
  53. # setup lcd update timer
  54. #self.lcd_timer.reset(5)
  55. #self.lcd_timer.start()
  56.  
  57. self.display = 1
  58.  
  59. def update(self):
  60. # update lcd every 5 seconds
  61. #if self.lcd_timer.done():
  62.  
  63. # clear lcd before update
  64. self.lcd.clear()
  65.  
  66. # update water info
  67. if self.display == 1:
  68.  
  69. # get status info
  70. display_msg = self.water_schedule.display()
  71. self.lcd.message(display_msg)
  72.  
  73. # next display: lighting
  74. self.display = 2
  75.  
  76. # update light info
  77. elif self.display == 2:
  78.  
  79. # get status info
  80. display_msg = self.lighting_schedule.display()
  81. self.lcd.message(display_msg)
  82.  
  83. # next display: cooling
  84. self.display = 3
  85.  
  86. # update cooling info
  87. elif self.display == 3:
  88.  
  89. # get ststu info
  90. display_msg = self.cooling_schedule.display()
  91. self.lcd.message(display_msg)
  92.  
  93. # next display: water
  94. self.display = 4
  95.  
  96. # update time/date info
  97. else:
  98.  
  99. # get time
  100. cur_time = dt.datetime.now()
  101. cur_clock = cur_time.strftime("%H:%M:%S")
  102. cur_date = cur_time.strftime("%Y/%m/%d")
  103.  
  104. display_msg = "TIME: {:8}\n".format(cur_clock)
  105. display_msg += "DATE: {:10}".format(cur_date)
  106. self.lcd.message(display_msg)
  107.  
  108. # next display: water
  109. self.display = 1
  110.  
  111. # restart timer
  112. #self.lcd_timer.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement