Files
zlab/sensors.py
2026-04-06 15:59:35 +00:00

41 lines
1.1 KiB
Python

import smbus2
import bme280
import time
# I2C bus ini initialisieren
bus = smbus2.SMBus(1)
class EnvironmentSensor:
def __init__(self, addr):
self.addr = addr
def temperature(self):
return bme280.sample(bus, self.addr).temperature
def humidity(self):
return bme280.sample(bus, self.addr).humidity
def pressure(self):
return bm2280.sample(bus, self.addr).pressure
env=[EnvironmentSensor(0x76), EnvironmentSensor(0x77)]
lightMeasurementTime=0.2
def readBH1750(bus, addr = 0x23):
bus.write_byte(addr, 0x01) # power on
bus.write_byte(addr, 0x20) # set high res onetime measurement mode
time.sleep(lightMeasurementTime) # 0.1 should already be enough time for measurement
data = bus.read_i2c_block_data(addr, 0, 2) # get measurement result
return ((data[0] << 8) + data[1]) / 1.2 # factor 1.2 is from sensor datasheet
def illuminance():
return readBH1750(bus)
def environment(sensor):
if sensor == 0:
return bme280.sample(bus, 0x76)
elif sensor == 1:
return bme280.sample(bus, 0x77)
else:
raise ValueError