X-Git-Url: https://zdv2.bktei.com/gitweb/EVA-2020-02-2.git/blobdiff_plain/dc633dfb1034e4158aaa3b5bf9e579711728c1d5..c8bf56890d0e7b6e7e1993e164f14d55d72f9544:/examples/luftdaten.py diff --git a/examples/luftdaten.py b/examples/luftdaten.py index 99a40c0..d2d6562 100755 --- a/examples/luftdaten.py +++ b/examples/luftdaten.py @@ -1,11 +1,13 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import requests import ST7735 +import time from bme280 import BME280 from pms5003 import PMS5003, ReadTimeoutError from subprocess import PIPE, Popen, check_output from PIL import Image, ImageDraw, ImageFont +from fonts.ttf import RobotoMedium as UserFont try: from smbus2 import SMBus @@ -71,9 +73,8 @@ 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() - output = output.decode() return float(output[output.index('=') + 1:output.rindex("'")]) @@ -149,7 +150,7 @@ def send_to_luftdaten(values, id): # Compensation factor for temperature -comp_factor = 1.2 +comp_factor = 2.25 # Raspberry Pi ID to send to Luftdaten id = "raspi-" + get_serial_number() @@ -160,19 +161,25 @@ HEIGHT = disp.height # Text settings font_size = 16 -font = ImageFont.truetype("fonts/Asap/Asap-Bold.ttf", font_size) +font = ImageFont.truetype(UserFont, 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")) +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)