improved logging with timestamps (instead of print)
[EVA-2020-02-2.git] / examples / luftdaten.py
index 4d3d49acd87a86dae17d79f51981f67d75fc261a..dd6e967708664f4e3be22233904f576f2ea3c240 100755 (executable)
@@ -12,7 +12,14 @@ try:
 except ImportError:
     from smbus import SMBus
 
 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.
 
 PM2.5, and PM10 from Enviro plus and sends data to Luftdaten,
 the citizen science air quality project.
 
@@ -71,7 +78,7 @@ def read_values():
 
 # Get CPU temperature to use for compensation
 def get_cpu_temperature():
 
 # 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("'")])
 
     output, _error = process.communicate()
     return float(output[output.index('=') + 1:output.rindex("'")])
 
@@ -162,16 +169,16 @@ font_size = 16
 font = ImageFont.truetype("fonts/Asap/Asap-Bold.ttf", font_size)
 
 # Display Raspberry Pi serial and Wi-Fi status
 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"))
 
 # Main loop to read data, display, and send to Luftdaten
 while True:
     try:
         values = read_values()
 
 # Main loop to read data, display, and send to Luftdaten
 while True:
     try:
         values = read_values()
-        print(values)
+        logging.info(values)
         resp = send_to_luftdaten(values, id)
         resp = send_to_luftdaten(values, id)
-        print("Response: {}\n".format("ok" if resp else "failed"))
+        logging.info("Response: {}\n".format("ok" if resp else "failed"))
         display_status()
     except Exception as e:
         display_status()
     except Exception as e:
-        print(e)
+        logging.info(e)