Skip to main content

Crate percepter_scd41

Crate percepter_scd41 

Source
Expand description

§SCD41 CO2 Sensor Driver

This crate provides a driver for the SCD41 CO2 sensor from Sensirion. It uses embedded-hal for I2C communication and timing.

§Example

use percepter_scd41::SCD41;

// Here, you can use any I2C and Delay implementation from `embedded-hal`.
// For example, `linux-embedded-hal` for Linux systems:
// use linux_embedded_hal::{Delay, I2cdev};
// let i2c = I2cdev::new("/dev/i2c-1")?;
// let mut scd41 = SCD41::new_with_default_address(i2c, Delay);


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

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
    std::thread::sleep(std::time::Duration::from_secs(5));
}

§Features

  • Periodic and Single Shot measurement modes.
  • Low power periodic measurement mode.
  • Ambient pressure and altitude compensation.
  • Temperature offset calibration.
  • Forced recalibration (FRC) and Automatic Self-Calibration (ASC).
  • Power down and wake up for power saving.

Re-exports§

pub use crate::scd41::SCD41;

Modules§

error
Error types for the SCD41 driver
scd41
SCD41 CO2 Sensor Implementation

Structs§

Measurement
A single sensor measurement with converted values.