Merge branch 'master' into enviro-non-plus
[EVA-2020-02-2.git] / examples / luftdaten.py
index dd6e967708664f4e3be22233904f576f2ea3c240..d2d656216b77143f67f5a2074b78c25465808474 100755 (executable)
@@ -1,25 +1,20 @@
-#!/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
 except ImportError:
     from smbus import SMBus
 
-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,
+print("""luftdaten.py - Reads temperature, pressure, humidity,
 PM2.5, and PM10 from Enviro plus and sends data to Luftdaten,
 the citizen science air quality project.
 
@@ -155,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()
@@ -166,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
-logging.info("Raspberry Pi serial: {}".format(get_serial_number()))
-logging.info("Wi-Fi: {}\n".format("connected" if check_wifi() else "disconnected"))
+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()
-        logging.info(values)
-        resp = send_to_luftdaten(values, id)
-        logging.info("Response: {}\n".format("ok" if resp else "failed"))
+        print(values)
+        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:
-        logging.info(e)
+        print(e)