X-Git-Url: https://zdv2.bktei.com/gitweb/EVA-2020-02-2.git/blobdiff_plain/ec0759414b8c76c42fe99e1ac9fcd2146899d545..be4506a78edb35b7bc4514949833cb86459e24c3:/examples/luftdaten.py?ds=sidebyside diff --git a/examples/luftdaten.py b/examples/luftdaten.py index b7f0565..85e3cb2 100755 --- a/examples/luftdaten.py +++ b/examples/luftdaten.py @@ -2,6 +2,7 @@ import requests import ST7735 +import time from bme280 import BME280 from pms5003 import PMS5003, ReadTimeoutError from subprocess import PIPE, Popen, check_output @@ -12,7 +13,14 @@ try: except ImportError: from smbus import SMBus -print("""luftdaten.py - Reads temperature, pressure, humidity, +import logging + +logging.basicConfig( + format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', + level=logging.INFO, + datefmt='%Y-%m-%d %H:%M:%S') + +logging.info("""luftdaten.py - Reads temperature, pressure, humidity, PM2.5, and PM10 from Enviro plus and sends data to Luftdaten, the citizen science air quality project. @@ -62,7 +70,7 @@ def read_values(): values["P2"] = str(pm_values.pm_ug_per_m3(2.5)) values["P1"] = str(pm_values.pm_ug_per_m3(10)) except ReadTimeoutError: - pms5003 = PMS5003() + pms5003.reset() pm_values = pms5003.read() values["P2"] = str(pm_values.pm_ug_per_m3(2.5)) values["P1"] = str(pm_values.pm_ug_per_m3(10)) @@ -71,7 +79,7 @@ def read_values(): # Get CPU temperature to use for compensation def get_cpu_temperature(): - process = Popen(['vcgencmd', 'measure_temp'], stdout=PIPE) + process = Popen(['vcgencmd', 'measure_temp'], stdout=PIPE, universal_newlines=True) output, _error = process.communicate() return float(output[output.index('=') + 1:output.rindex("'")]) @@ -162,16 +170,22 @@ font_size = 16 font = ImageFont.truetype("fonts/Asap/Asap-Bold.ttf", font_size) # Display Raspberry Pi serial and Wi-Fi status -print("Raspberry Pi serial: {}".format(get_serial_number())) -print("Wi-Fi: {}\n".format("connected" if check_wifi() else "disconnected")) +logging.info("Raspberry Pi serial: {}".format(get_serial_number())) +logging.info("Wi-Fi: {}\n".format("connected" if check_wifi() else "disconnected")) + +time_since_update = 0 +update_time = time.time() # Main loop to read data, display, and send to Luftdaten while True: try: + time_since_update = time.time() - update_time values = read_values() - print(values) - resp = send_to_luftdaten(values, id) - print("Response: {}\n".format("ok" if resp else "failed")) + logging.info(values) + if time_since_update > 145: + resp = send_to_luftdaten(values, id) + update_time = time.time() + logging.info("Response: {}\n".format("ok" if resp else "failed")) display_status() except Exception as e: - print(e) + logging.info(e)