Exemplo n.º 1
0
def display_room_climate_data(LCD, temp, hum):
	LCD.printString('Temp: ' + str(round(temp,1)) + ' øC',4)
	LCD.printString('Hum:	 ' + str(round(hum,1)) + ' %',5)
Exemplo n.º 2
0
def main():

	# create objects
	myLCD = LCD(CS1=17, CS2=7, E=15, RS=14, D0=27, D1=23, D2=24, D3=25, D4=8, D5=11, D6=9, D7=22, PWM=1) #PWM pin number is wiringPi numbering!
	myAM2302 = AM2302(pin=4)
	myCalendar = GoogleCalendar()

	# set the initial backlight flag
	if isNight():
		backlightNightFlag = 1
		myLCD.setBacklightPWM(BACKLIGHT_NIGHT_VALUE)
	else:
		backlightNightFlag = 0
		myLCD.setBacklightPWM(BACKLIGHT_DAY_VALUE)

	

	last_update = datetime.datetime.now() - datetime.timedelta(seconds=UPDATE_FREQUENCY_BUS)
	while(True):
	
		# dim backlight if its night
		if isNight():
			if backlightNightFlag == 0:
				backlightNightFlag = 1
				myLCD.setBacklightPWM(BACKLIGHT_NIGHT_VALUE)
		elif backlightNightFlag == 1:
			backlightNightFlag = 0
			myLCD.setBacklightPWM(BACKLIGHT_DAY_VALUE)
	 	
	 	
	 	# update bus/temp only every n secs
		if 	(datetime.datetime.now() - last_update).seconds >= UPDATE_FREQUENCY_BUS:
			# get bus
			next_bus_dict = get_next_bus()
			
			
			# update calendar data
			events = myCalendar.get_events()
			if len(events) > 1: # only display next 2 events
				running_string = events[0] + ' - ' + events[1]
			elif len(events) == 0: 
				running_string = 'No events scheduled'
			else: # only 1 event
				running_string = events[0]
			running_string_2 = running_string + ' - ' + running_string # double string to make it easier for running it over the screen
			running_index = 0
			
			display_next_buses(myLCD, next_bus_dict)
			
			temp, hum = myAM2302.get_data()
			display_room_climate_data(myLCD, temp, hum)
			log_room_climate_data('/home/pi/Infoscreen/room_climate.log', temp, hum)
			
			
			last_update = datetime.datetime.now()

		# print the running text for the calendar
		currently_displayed_string = running_string_2[running_index:running_index+16]
		myLCD.printString(currently_displayed_string,7)
		if running_index == len(running_string) + 2: #2=3-1, 3= number of characters in separator (' - ')
			running_index = 0
		else:
			running_index += 1

		sleep(0.3)
Exemplo n.º 3
0
def display_next_buses(LCD, bus_dict):
	for i in range(len(bus_dict['busNr'])):
		line_to_display = bus_dict['busNr'][i] + ': ' + bus_dict['timeToNextBus'][i] + ' min (' + bus_dict['delay'][i] + ')'
		LCD.printString(line_to_display, i)