Crate scd30_i2c

Source
Expand description

SCD30 trait implementing basic SCD30 I2C CO2 sensor operations

Operations taken from interface description At current version 1.0.0 we support all basic operations from the interface

§Basic Example

Obtaining measurements, co2, temperature and humidity

use scd30_i2c::scd30::Scd30;
use std::thread;
use std::time::Duration;

fn main() {
    // Open the I2C device
    let mut scd = Scd30::new().unwrap();
    let mut counter = 0;
    scd.trigger_cont_measurements();

    scd.set_measurements_interval(2);

    loop {
        match scd.get_measurements() {
            Ok((a, b, c)) => {
                println!("Co2: {} ppm Temp: {} C RH: {} %", a, b, c);
                thread::sleep(Duration::from_secs(2));
                counter += 1;
                println!("{}", counter);
            }
            Err(e) => {
                println!(
                    "Error obtaining measurements. More details: {}. Waiting 10 seconds for recovering",
                    e
                );
                thread::sleep(Duration::from_secs(10));
            }
        }
    }
}

Modules§

scd30
Trait implementing SCD30 device related operations