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§
Structs§
- Measurement
- A single sensor measurement with converted values.