percepter-scd41 0.0.1

a user space driver for the Sensirion SCD41 CO2 sensor.
Documentation
use percepter_scd41::SCD41;
use linux_embedded_hal::{Delay, I2cdev};
use std::thread;
use std::time::Duration;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Here, you can use any I2C and Delay implementation from `embedded-hal`.
    // For example, `linux-embedded-hal` for Linux systems:
    let i2c = I2cdev::new("/dev/i2c-1")?;
    let mut scd41 = SCD41::new_with_default_address(i2c, Delay);

    // Start periodic measurement
    scd41.start_periodic_measurement()?;

    println!("Starting measurement loop...");

    loop {
        if scd41.data_ready()? {
            let measurement = scd41.read_measurement()?;
            println!("CO2: {} ppm", measurement.co2());
            println!("Temperature: {:.1} °C", measurement.temperature());
            println!("Humidity: {:.1} %RH", measurement.relative_humidity());
        }
        // SCD41 updates every 5 seconds in periodic mode
        thread::sleep(Duration::from_secs(5));
    }
}