77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
# 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)
|