def __init__(self, i2c_channel): """ __init__(self, i2c_channel) creates a light sensor object on I2c channel [i2c_channel] """ self.channel = i2c_channel sensor = adafruit_veml7700.VEML7700(i2c_channel) self.sensor = sensor
class Light(): i2c = busio.I2C(board.SCL, board.SDA) VEML_SENSOR = adafruit_veml7700.VEML7700(i2c) def read(self): self.VEML_SENSOR.light_gain = self.VEML_SENSOR.ALS_GAIN_1_8 self.VEML_SENSOR.light_integration_time = self.VEML_SENSOR.ALS_25MS return self.VEML_SENSOR.lux
def __init__(self, i2c_bus, name="sns_lt0", interval=SENSOR_UPDATE_INTERVAL, *args, **kwargs): Device.__init__(self, name=name, interval=interval, *args, **kwargs) import adafruit_veml7700 self.sensor = adafruit_veml7700.VEML7700(i2c_bus)
def __init__(self, scl=board.SCL, sda=board.SDA, serial_no=None, channels=None, *args, **kwargs): self.i2c = busio.I2C(scl, sda) self.veml7700 = adafruit_veml7700.VEML7700(self.i2c) self.type = __name__ super().__init__(serial_no, channels, *args, **kwargs)
def basic_light_test(n_iter): """ basic_light_test(n_iter) runs basic test on light sensor to make sure hardware reads properlu """ i2c = busio.I2C(board.SCL, board.SDA) sensor = adafruit_veml7700.VEML7700(i2c) for _ in range(n_iter): print("Ambient Light: %0.1f " % sensor.light) time.sleep(2) i2c.deinit()
async def _control(self): config = self._config.auto_backlight backlight = Backlight(self._config.backlight_sysfs_path) i2c = busio.I2C(board.SCL, board.SDA) veml7700 = adafruit_veml7700.VEML7700(i2c) backlight.fade_duration = config.fade_duration while True: light = veml7700.light rel_light = min(1, light / config.light_max) brightness = round(exponential_ease_out(min(1, rel_light)) * 100) limited_brightness = max(config.brightness_min, brightness) backlight.brightness = limited_brightness logger.debug("light: %s, rel_light: %s, brightness: %s, limited_brightness: %s", light, rel_light, brightness, limited_brightness) await asyncio.sleep(config.refresh)
def three_sensor_test(n_iter): """ three_sensor_test(n_iter) runs basic test on all three sensors to make sure hardware reads properlu """ i2c = busio.I2C(board.SCL, board.SDA) temp_humid = adafruit_si7021.SI7021(i2c) light = adafruit_veml7700.VEML7700(i2c) moisture = MCP3001() for _ in range(n_iter): print("\nTemperature: %0.1f C" % temp_humid.temperature) print("Humidity: %0.1f %%" % temp_humid.relative_humidity) print("Ambient Light: %0.1f " % light.light) print("Moisture Level: %f " % moisture.value) time.sleep(2) i2c.deinit()
import adafruit_adxl34x import adafruit_si7021 import adafruit_veml7700 i2c1 = busio.I2C(board.SCL, board.SDA) i2c2 = busio.I2C(board.SCL, board.SDA) i2c3 = busio.I2C(board.SCL, board.SDA) # For ADXL343 accelerometer = adafruit_adxl34x.ADXL343(i2c1) accelerometer.enable_motion_detection() while True: try: sensor = adafruit_si7021.SI7021(i2c2) break except: continue veml7700 = adafruit_veml7700.VEML7700(i2c3) while True: print("******************************") print("\nAcceleration: %f %f %f" % accelerometer.acceleration) print("Motion detected: %s" % accelerometer.events["motion"]) print("\nTemperature: %0.1f C" % sensor.temperature) print("Humidity: %0.1f %%" % sensor.relative_humidity) print("\nAmbient light:", veml7700.light) time.sleep(0.5)
import time import board import busio import adafruit_veml7700 i2c = busio.I2C(board.SCL, board.SDA) veml = adafruit_veml7700.VEML7700(i2c) while (True): print("ambiant light: ", veml.light) print("ux:", veml.lux) time.sleep(0.5)
from time import sleep # neopixels neop = neopixel.NeoPixel(board.D21, 12) pixel_num = 12 neop.brightness = 0.2 neop.auto_write = True bright_f = 0.2 bright_r = 0.2 # multiplexer i2c = busio.I2C(board.SCL, board.SDA) tca = adafruit_tca9548a.TCA9548A(i2c) # lux sensors veml1 = adafruit_veml7700.VEML7700(tca[0]) veml2 = adafruit_veml7700.VEML7700(tca[1]) lux_min = 20 lux_max = 6000 def constrainLux(lux): return min(max(lux_min, lux), lux_max) def mapLux(lux): lux_range = lux_max - lux_min return (lux - lux_min) / lux_range def constrainAndMapLux(lux):
}) # firebase = None # # For debugging # firebase.delete() # For setting up the ADC adc = Adafruit_ADS1x15.ADS1115() GAIN = 2 / 3 # AO Channel for Moisture is 0 # AO channel for Temperature is 1 temperatureAo = 1 moistureAo = 0 # Lux sensor setup i2c = busio.I2C(board.SCL, board.SDA) luxSensor = adafruit_veml7700.VEML7700(i2c) luxA0 = 2 # Moisture sensor calibration test results without soil # Range 20523 -> 0%, 17366 -> 100%. Assume 18935 -> 50% moistureZero = 19000 # Water pump motorPin = 7 # Flowrate of 8ml/s flowRate = 14 total = 0 container = total run = False # Time gap between each probe in second