def observe(self): with busio.I2C(board.SCL, board.SDA) as i2c: self.data["uv"] = Sensor.VEML6070(i2c).uv_raw self.data["time"] = datetime.fromtimestamp( datetime.now().timestamp(), tz=timezone.utc) for i in self.data: logger.debug(f'outcome: {self.data[i]}, short_name: {i}')
def __init__(self, channel, tca=None, precision=3): if tca: channel = tca[channel] # favor precision device = adafruit_veml6070.VEML6070(channel, "VEML6070_4_T") self.device = device self.precision = precision # output is unitless, 'light intensity' - 0-9999 self.accepted_units = ["intensity"]
def read(self, SIO): try: if self.sens is None: i2c = busio.I2C(board.SCL, board.SDA) self.sens = adafruit_veml6070.VEML6070(i2c, 'VEML6070_4_T') self.t = time.time() #self.sens.wake() self.UV = self.sens.uv_raw * 0.25 #self.sens.sleep() print(self.UV) except: traceback.print_exc() self.sens = None return SIO.log_readout(self.UV_id, self.UV, self.t)
# VEML6070 Driver Example Code import time import busio import board import adafruit_veml6070 with busio.I2C(board.SCL, board.SDA) as i2c: uv = adafruit_veml6070.VEML6070(i2c) # Alternative constructors with parameters #uv = adafruit_veml6070.VEML6070(i2c, 'VEML6070_1_T') #uv = adafruit_veml6070.VEML6070(i2c, 'VEML6070_HALF_T', True) # take 10 readings for j in range(10): uv_raw = uv.uv_raw risk_level = uv.get_index(uv_raw) print('Reading: {0} | Risk Level: {1}'.format(uv_raw, risk_level)) time.sleep(1)
def __init__(self): i2c = busio.I2C(board.SCL, board.SDA) self.uv = adafruit_veml6070.VEML6070(i2c)
import typer import adafruit_tca9548a import adafruit_veml6070 import board import busio # Initialize I2C bus and sensor. i2c = busio.I2C(board.SCL, board.SDA) # mux tca2 = adafruit_tca9548a.TCA9548A(i2c, address=0x72) # each sensor uv_sensor = adafruit_veml6070.VEML6070(tca2[4]) def main(num: int = 100): for i in range(num): try: uv = uv_sensor.uv_raw except OSError: uv = None print(f"uv. {uv: 0.3f}") time.sleep(1.0) if __name__ == "__main__": typer.run(main)