Merged cipy-improved-logging, omitted luftdaten.py for now
authorPhil Howard <phil@gadgetoid.com>
Tue, 20 Aug 2019 15:22:05 +0000 (16:22 +0100)
committerPhil Howard <phil@gadgetoid.com>
Tue, 20 Aug 2019 15:22:05 +0000 (16:22 +0100)
1  2 
examples/compensated-temperature.py
examples/luftdaten.py

index 7d0d0f1bd565821c26cd8af7ee12813b001b3c0f,6a9c115ed05cf3d6229f5ead5178724a1f1967d4..74b6babf103cf63c3b98da31c733a83f62a54e90
@@@ -2,13 -2,21 +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
@@@ -23,17 -31,16 +30,17 @@@ 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
  # temperature down, and increase to adjust up
  factor = 0.8
  
- cpu_temps = [0] * 5
+ cpu_temps = [get_cpu_temperature()] * 5
  
  while True:
      cpu_temp = get_cpu_temperature()
@@@ -42,5 -49,5 +49,5 @@@
      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 --combined examples/luftdaten.py
index 358d442f364ab70c26c9f9913f101a2418ed77dd,85e3cb26cd0109b5dad28ea43df075cca540a1c5..9995914e23d71144c9f1e99ff11c58f7baaf4e69
@@@ -13,7 -13,14 +13,7 @@@ try
  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.
  
@@@ -74,6 -81,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("'")])
  
  
@@@ -163,8 -170,8 +164,8 @@@ font_size = 1
  font = ImageFont.truetype("fonts/Asap/Asap-Bold.ttf", 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()
@@@ -174,11 -181,11 +175,11 @@@ while True
      try:
          time_since_update = time.time() - update_time
          values = read_values()
 -        logging.info(values)
 +        print(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"))
 +            print("Response: {}\n".format("ok" if resp else "failed"))
          display_status()
      except Exception as e:
 -        logging.info(e)
 +        print(e)