X-Git-Url: https://zdv2.bktei.com/gitweb/EVA-2020-02-2.git/blobdiff_plain/e8fa1c067e150a5ef58ea053fc49e5afa46e81cd..2fe226f8a1755e1cf487c972b56b9166b4f2ff4b:/examples/all-in-one.py diff --git a/examples/all-in-one.py b/examples/all-in-one.py index bfefe7a..03e4d58 100755 --- a/examples/all-in-one.py +++ b/examples/all-in-one.py @@ -5,17 +5,28 @@ import colorsys import os import sys import ST7735 -import ltr559 +try: + # Transitional fix for breaking change in LTR559 + from ltr559 import LTR559 + ltr559 = LTR559() +except ImportError: + import ltr559 from bme280 import BME280 -from pms5003 import PMS5003 +from pms5003 import PMS5003, ReadTimeoutError as pmsReadTimeoutError from enviroplus import gas from subprocess import PIPE, Popen from PIL import Image from PIL import ImageDraw from PIL import ImageFont +import logging + +logging.basicConfig( + format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', + level=logging.INFO, + datefmt='%Y-%m-%d %H:%M:%S') -print("""all-in-one.py - Displays readings from all of Enviro plus' sensors +logging.info("""all-in-one.py - Displays readings from all of Enviro plus' sensors Press Ctrl+C to exit! @@ -64,7 +75,7 @@ def display_text(variable, data, unit): - min(values[variable]) + 1) for v in values[variable]] # Format the variable name and value message = "{}: {:.1f} {}".format(variable[:4], data, unit) - print(message) + logging.info(message) draw.rectangle((0, 0, WIDTH, HEIGHT), (255, 255, 255)) for i in range(len(colours)): # Convert the values to colours from red to blue @@ -96,7 +107,7 @@ factor = 0.8 cpu_temps = [get_cpu_temperature()] * 5 delay = 0.5 # Debounce the proximity tap -mode = 0 # The starting mode +mode = 0 # The starting mode last_page = 0 light = 1 @@ -183,29 +194,37 @@ try: display_text(variables[mode], data, unit) if mode == 7: - #variable = "pm1" + # variable = "pm1" unit = "ug/m3" try: data = pms5003.read() - except pms5003.ReadTimeoutError: - pass + except pmsReadTimeoutError: + logging.warn("Failed to read PMS5003") else: - data = data.pm_ug_per_m3(1.0) + data = float(data.pm_ug_per_m3(1.0)) display_text(variables[mode], data, unit) if mode == 8: # variable = "pm25" unit = "ug/m3" - data = pms5003.read() - data = data.pm_ug_per_m3(2.5) - display_text(variables[mode], data, unit) + try: + data = pms5003.read() + except pmsReadTimeoutError: + logging.warn("Failed to read PMS5003") + else: + data = float(data.pm_ug_per_m3(2.5)) + display_text(variables[mode], data, unit) if mode == 9: # variable = "pm10" unit = "ug/m3" - data = pms5003.read() - data = data.pm_ug_per_m3(10) - display_text(variables[mode], data, unit) + try: + data = pms5003.read() + except pmsReadTimeoutError: + logging.warn("Failed to read PMS5003") + else: + data = float(data.pm_ug_per_m3(10)) + display_text(variables[mode], data, unit) # Exit cleanly except KeyboardInterrupt: