# SPDX-FileCopyrightText: Copyright (c) 2025 Liz Clark for Adafruit Industries # # SPDX-License-Identifier: MIT # Example usage: import time import board import adafruit_sen6x # Initialize I2C i2c = board.I2C() # Create SEN66 instance sensor = adafruit_sen6x.SEN66(i2c) # Read sensor info print(f"Product: {sensor.product_name}") print(f"Serial: {sensor.serial_number}") # Check device status status = sensor.device_status print(f"Device {status}") # Optional: Configure sensor before starting # sensor.temperature_offset(offset=-2.0, slot=0) # Apply -2°C offset # sensor.voc_algorithm_tuning(index_offset=100) # Adjust VOC baseline # print(sensor.voc_algorithm) # Print VOC baseline # CO2 configuration examples: # sensor.co2_automatic_self_calibration = False # Disable ASC for greenhouses # sensor.ambient_pressure = 1020 # Set pressure in hPa # sensor.sensor_altitude = 500 # Or set altitude in meters # Start measurements sensor.start_measurement() # Wait for first measurement to be ready print("Waiting for first measurement...") time.sleep(2) print("-" * 40) # Read data continuously while True: if sensor.data_ready: # Check for errors before reading sensor.check_sensor_errors() # Read all measurements data = sensor.all_measurements() # Display values (None = sensor still initializing) print( f"Temperature: {data["temperature"]:.1f}°C" if data["temperature"] else "Temperature: initializing..." ) print( f"Humidity: {data["humidity"]:.1f}%" if data["humidity"] else "Humidity: initializing..." ) print(f"PM2.5: {data["pm2_5"]:.1f} µg/m³" if data["pm2_5"] else "PM2.5: initializing...") print( f"VOC Index: {data["voc_index"]:.1f}" if data["voc_index"] else "VOC Index: initializing..." ) print( f"NOx Index: {data["nox_index"]:.1f}" if data["nox_index"] else "NOx Index: initializing..." ) print(f"CO2: {data["co2"]} ppm" if data["co2"] else "CO2: initializing...") print("-" * 40) time.sleep(2)