Adafruit_CircuitPython_SEN6x/examples/sen6x_simpletest.py
2025-05-27 17:36:56 -04:00

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)