def __init__(self): self._logger = Logger("Humidistat") self._logger.setLevel(Logger.INFO) self._logger.debug("initialize Humidistat object") self._co2 = SCD30() self._humidifier = Humidifier() self._target_rh = 80
def co2_attach(): scl_pin_scd30 = Pin(pin_I2C_SCL, Pin.IN, Pin.PULL_UP) sda_pin_scd30 = Pin(pin_I2C_SDA, Pin.IN, Pin.PULL_UP) i2c_scd30 = I2C(scl=scl_pin_scd30, sda=sda_pin_scd30, freq=40000) ### debug scan i2c_scd30-bus and print found devices DEBUG = True if DEBUG: dev_scd30 = i2c_scd30.scan() print("idev= ", end=''); print(dev_scd30) time.sleep_ms(200) ### attach to sensor scd30 = SCD30(i2c_scd30, 0x61) scd30.soft_reset() time.sleep_ms(1000) fw_version = scd30.get_firmware_version() print("SCD30 Firmware Version: major=0x%02x minor=0x%02x" % fw_version) scd30.set_measurement_interval(2) time.sleep_ms(100) scd30.start_continous_measurement() time.sleep_ms(100) return scd30
def getSCD(self): """Record CO2 sensor (scd30) Generates co2, temperature and relative humidity Args: None Returns: None Raises: None """ from scd30 import SCD30 self._scd = SCD30(self._logger) self._logger.debug("In SCD30") try: co2, temp, rh = self._scd.get_data() status = 'Success' if self._test: status = 'Test' c_rec = [ 'Environment_Observation', '', 'Top', 'Air', 'CO2', "{:10.1f}".format(co2), 'ppm', 'scd30', status, '' ] t_rec = [ 'Environment_Observation', '', 'Top', 'Air', 'Temperature', "{:10.1f}".format(temp), 'Centigrade', 'scd30', status, '' ] h_rec = [ 'Environment_Observation', '', 'Top', 'Air', 'Humidity', "{:10.1f}".format(rh), 'Percent', 'scd30', status, '' ] self._persist.save(c_rec) self._persist.save(t_rec) self._persist.save(h_rec) self._logger.info("{} {:6.1f}, {} {:3.1f}, {} {:3.1f}".format( "EnvObsv-CO2:", co2, "Temp", temp, "Humidity:", rh)) except Exception as e: status = 'Failure' if self._test: status = 'Test' c_rec = [ 'Environment_Observation', '', 'Top', 'Air', 'CO2', '', 'ppm', 'scd30', status, str(e) ] t_rec = [ 'Environment_Observation', '', 'Top', 'Air', 'Temperature', '', 'Centigrde', 'scd30', status, '' ] h_rec = [ 'Environment_Observation', '', 'Top', 'Air', 'Humidity', '', 'Percent', 'scd30', status, '' ] self._persist.save(c_rec) self._persist.save(t_rec) self._persist.save(h_rec) self._logger.debug("{} {}".format("EnvObsv-SCD30 Error:", e))
def __init__(self, update_env=600): self._scd30 = SCD30(use_pin=True) self._ccs811 = CCS811(use_pin=True) self.CO2 = 0 self.eCO2 = 0 self.temp = 0 self.temp_NTC = 0 self.hum = 0 self.TVOC = 0 self._update_env = update_env gevent.spawn(self._data_loop) gevent.spawn(self._update_env_loop)
def __init__(self, send_queue): self.sendToQueue = send_queue self.uuid = my_ids.UUID() self.bme280 = BME280() self.measurement_interval = 60 auto_calibration = 1 self.scd30 = SCD30(self.measurement_interval, auto_calibration, int(self.bme280.read_pressure())) self.lock = threading.Lock() self.current_pressure = None self.current_scd30_data = None self.readThread = threading.Thread(target=self.read_thread) self.readThread.setDaemon(True) self.readThread.start()
def getAirCanopyCO2Obsv(self, test=False): '''CO2 from the canopy (SCD30 Sensiron sensor) Args: self: test: Returns: None: Raises: None ''' status_qualifier = 'Success' co2 = 0 temp = 0 rh = 0 try: sensor = SCD30() sensor.start_periodic_measurement(test) co2, temp, rh = sensor.get_data(test) if test: status_qualifier = 'Test' saveList([self._activity_type, '', 'Canopy', 'Air', 'CO2', "{:3.1f}".format(co2), 'ppm', 'SCD30', status_qualifier,'']) self._logger.debug("{}, {}, {:10.1f}".format("Canopy CO2", status_qualifier, co2)) saveList([self._activity_type, '', 'Canopy', 'Air', 'Temperature', "{:3.1f}".format(temp), 'ppm', 'SCD30', status_qualifier,'']) self._logger.debug("{}, {}, {:10.1f}".format("Canopy Temperature", status_qualifier, temp)) saveList([self._activity_type, '', 'Canopy', 'Air', 'Humidity', "{:3.1f}".format(rh), 'ppm', 'SCD30', status_qualifier,'']) self._logger.debug("{}, {}, {:10.1f}".format("Canopy Humidity", status_qualifier, rh)) except Exception as e: status_qualifier = 'Failure' if test: status_qualifier = 'Test' saveList([self._activity_type, '', 'Canopy', 'Air', 'CO2', '', 'ppm', 'SCD30', status_qualifier,str(e)]) self._logger.error("{}, {}".format("Canopy CO2", e)) saveList([self._activity_type, '', 'Canopy', 'Air', 'Temperature', '', 'c', 'SCD30', status_qualifier,str(e)]) self._logger.error("{}, {}".format("Canopy CO2", e)) saveList([self._activity_type, '', 'Canopy', 'Air', 'Humidity', '', 'percent', 'SCD30', status_qualifier,str(e)]) self._logger.error("{}, {}".format("Canopy Humidity", e))
from pyb import LED import sys, os, pyb import machine from machine import Pin import time import utime from scd30 import SCD30 from machine import I2C errled = LED(1) led = LED(2) # Get Sensor, should be scannable here... i2c = I2C(1) scd30 = SCD30(i2c, 0x61) # Make sure we have a SD card! sd = pyb.SDCard() if sd.present() != 1: errled.on() machine.deepsleep() # Power off the board... sd.power(0) en_3v3 = Pin('EN_3V3') en_3v3.value(0) while True: data = {}
from scd30 import SCD30 sensor = SCD30() data = sensor.get_data_ready() print("result:") for byte in data: print(byte)
def __init__(self): self.logger = Logger("CO2_stat") self.logger.debug("initialize CO2 controller object") self._co2 = SCD30(self.logger) self._fan = Fan(self.logger)