From: Phil Howard Date: Tue, 20 Aug 2019 15:28:38 +0000 (+0100) Subject: Merge branch 'use-generic-variables' of git://github.com/cipy/enviroplus-python into... X-Git-Url: https://zdv2.bktei.com/gitweb/EVA-2020-02-2.git/commitdiff_plain/a36c0e8d8d94eae0353e5bff14ac837e17139671?hp=8a7d81b6e515c44a2aec4172db1fb40ef2930183 Merge branch 'use-generic-variables' of git://github.com/cipy/enviroplus-python into cipy-use-generic-variables --- diff --git a/examples/adc.py b/examples/adc.py index c4cf45c..82bda41 100755 --- a/examples/adc.py +++ b/examples/adc.py @@ -2,8 +2,14 @@ import time from enviroplus import gas +import logging -print("""adc.py - Print readings from the MICS6814 Gas sensor. +logging.basicConfig( + format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', + level=logging.INFO, + datefmt='%Y-%m-%d %H:%M:%S') + +logging.info("""adc.py - Print readings from the MICS6814 Gas sensor. Press Ctrl+C to exit! @@ -15,7 +21,7 @@ gas.set_adc_gain(4.096) try: while True: readings = gas.read_all() - print(readings) + logging.info(readings) time.sleep(1.0) except KeyboardInterrupt: pass diff --git a/examples/all-in-one-no-pm.py b/examples/all-in-one-no-pm.py index 962f627..5486012 100755 --- a/examples/all-in-one-no-pm.py +++ b/examples/all-in-one-no-pm.py @@ -13,8 +13,14 @@ from subprocess import PIPE, Popen from PIL import Image from PIL import ImageDraw from PIL import ImageFont +import logging -print("""all-in-one.py - Displays readings from all of Enviro plus' sensors +logging.basicConfig( + format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', + level=logging.INFO, + datefmt='%Y-%m-%d %H:%M:%S') + +logging.info("""all-in-one.py - Displays readings from all of Enviro plus' sensors Press Ctrl+C to exit! """) @@ -58,7 +64,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 diff --git a/examples/all-in-one.py b/examples/all-in-one.py index 74b4958..85a9a15 100755 --- a/examples/all-in-one.py +++ b/examples/all-in-one.py @@ -14,8 +14,14 @@ from subprocess import PIPE, Popen from PIL import Image from PIL import ImageDraw from PIL import ImageFont +import logging -print("""all-in-one.py - Displays readings from all of Enviro plus' sensors +logging.basicConfig( + format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', + level=logging.INFO, + datefmt='%Y-%m-%d %H:%M:%S') + +logging.info("""all-in-one.py - Displays readings from all of Enviro plus' sensors Press Ctrl+C to exit! @@ -64,7 +70,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 diff --git a/examples/compensated-temperature.py b/examples/compensated-temperature.py index 2733f56..74b6bab 100755 --- a/examples/compensated-temperature.py +++ b/examples/compensated-temperature.py @@ -2,14 +2,20 @@ import time from bme280 import BME280 -from subprocess import PIPE, Popen try: from smbus2 import SMBus except ImportError: from smbus import SMBus -print("""compensated-temperature.py - Use the CPU temperature +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("""compensated-temperature.py - Use the CPU temperature to compensate temperature readings from the BME280 sensor. Method adapted from Initial State's Enviro pHAT review: https://medium.com/@InitialState/tutorial-review-enviro-phat-for-raspberry-pi-4cd6d8c63441 @@ -24,9 +30,10 @@ bme280 = BME280(i2c_dev=bus) # Get the temperature of the CPU for compensation def get_cpu_temperature(): - process = Popen(['vcgencmd', 'measure_temp'], stdout=PIPE, universal_newlines=True) - output, _error = process.communicate() - return float(output[output.index('=') + 1:output.rindex("'")]) + with open("/sys/class/thermal/thermal_zone0/temp", "r") as f: + temp = f.read() + temp = int(temp) / 1000.0 + return temp # Tuning factor for compensation. Decrease this number to adjust the @@ -42,5 +49,5 @@ while True: avg_cpu_temp = sum(cpu_temps) / float(len(cpu_temps)) raw_temp = bme280.get_temperature() comp_temp = raw_temp - ((avg_cpu_temp - raw_temp) / factor) - print("Compensated temperature: {:05.2f} *C".format(comp_temp)) + logging.info("Compensated temperature: {:05.2f} *C".format(comp_temp)) time.sleep(1.0) diff --git a/examples/gas.py b/examples/gas.py index faf6eac..2f84944 100755 --- a/examples/gas.py +++ b/examples/gas.py @@ -2,8 +2,14 @@ import time from enviroplus import gas +import logging -print("""gas.py - Print readings from the MICS6814 Gas sensor. +logging.basicConfig( + format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', + level=logging.INFO, + datefmt='%Y-%m-%d %H:%M:%S') + +logging.info("""gas.py - Print readings from the MICS6814 Gas sensor. Press Ctrl+C to exit! @@ -12,7 +18,7 @@ Press Ctrl+C to exit! try: while True: readings = gas.read_all() - print(readings) + logging.info(readings) time.sleep(1.0) except KeyboardInterrupt: pass diff --git a/examples/lcd.py b/examples/lcd.py index aa0e193..7e50c94 100755 --- a/examples/lcd.py +++ b/examples/lcd.py @@ -2,8 +2,14 @@ import ST7735 from PIL import Image, ImageDraw, ImageFont +import logging -print("""lcd.py - Hello, World! example on the 0.96" LCD. +logging.basicConfig( + format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', + level=logging.INFO, + datefmt='%Y-%m-%d %H:%M:%S') + +logging.info("""lcd.py - Hello, World! example on the 0.96" LCD. Press Ctrl+C to exit! diff --git a/examples/light.py b/examples/light.py index 216477a..3442fb4 100755 --- a/examples/light.py +++ b/examples/light.py @@ -2,8 +2,14 @@ import time import ltr559 +import logging -print("""light.py - Print readings from the LTR559 Light & Proximity sensor. +logging.basicConfig( + format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', + level=logging.INFO, + datefmt='%Y-%m-%d %H:%M:%S') + +logging.info("""light.py - Print readings from the LTR559 Light & Proximity sensor. Press Ctrl+C to exit! @@ -13,7 +19,7 @@ try: while True: lux = ltr559.get_lux() prox = ltr559.get_proximity() - print("""Light: {:05.02f} Lux + logging.info("""Light: {:05.02f} Lux Proximity: {:05.02f} """.format(lux, prox)) time.sleep(1.0) diff --git a/examples/luftdaten.py b/examples/luftdaten.py index c5b0387..9995914 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 @@ -73,6 +74,7 @@ def read_values(): def get_cpu_temperature(): process = Popen(['vcgencmd', 'measure_temp'], stdout=PIPE, universal_newlines=True) output, _error = process.communicate() + output = output.decode() return float(output[output.index('=') + 1:output.rindex("'")]) @@ -165,13 +167,19 @@ font = ImageFont.truetype("fonts/Asap/Asap-Bold.ttf", font_size) print("Raspberry Pi serial: {}".format(get_serial_number())) print("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")) + if time_since_update > 145: + resp = send_to_luftdaten(values, id) + update_time = time.time() + print("Response: {}\n".format("ok" if resp else "failed")) display_status() except Exception as e: print(e) diff --git a/examples/particulates.py b/examples/particulates.py index e71ca5d..9aa9c37 100755 --- a/examples/particulates.py +++ b/examples/particulates.py @@ -2,8 +2,14 @@ import time from pms5003 import PMS5003, ReadTimeoutError +import logging -print("""particulates.py - Print readings from the PMS5003 particulate sensor. +logging.basicConfig( + format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', + level=logging.INFO, + datefmt='%Y-%m-%d %H:%M:%S') + +logging.info("""particulates.py - Print readings from the PMS5003 particulate sensor. Press Ctrl+C to exit! @@ -16,7 +22,7 @@ try: while True: try: readings = pms5003.read() - print(readings) + logging.info(readings) time.sleep(1.0) except ReadTimeoutError: pms5003 = PMS5003() diff --git a/examples/weather.py b/examples/weather.py index 17aba20..5036021 100755 --- a/examples/weather.py +++ b/examples/weather.py @@ -8,7 +8,14 @@ try: except ImportError: from smbus import SMBus -print("""weather.py - Print readings from the BME280 weather sensor. +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("""weather.py - Print readings from the BME280 weather sensor. Press Ctrl+C to exit! @@ -21,7 +28,7 @@ while True: temperature = bme280.get_temperature() pressure = bme280.get_pressure() humidity = bme280.get_humidity() - print("""Temperature: {:05.2f} *C + logging.info("""Temperature: {:05.2f} *C Pressure: {:05.2f} hPa Relative humidity: {:05.2f} % """.format(temperature, pressure, humidity))