Crate scd30_interface

Source
Expand description

§SCD30 Driver

A driver for interacting with Sensirion’s SCD30 CO2 measuring sensor via I2C. This driver is based on embedded-hal traits.

§Example

use scd30_interface::Scd30;
use scd30_interface::data::DataStatus;
use esp_hal::i2c::master::{Config, I2c};
use dfmt;

#[entry]
fn main() {
    let peripherals = esp_hal::init(esp_hal::Config::default());

    let i2c = I2c::new(peripherals.I2C0, Config::default())
        .with_sda(peripherals.GPIO4)
        .with_scl(peripherals.GPIO5);

    let sensor = Scd30::new(i2c);

    // Read out firmware version
    let firmware_version = sensor.read_firmware_version().unwrap();

    loop {
        while sensor.is_data_ready() != DataStatus::Ready {}
        let measurement = sensor.read_measurement().unwrap();
        dfmt::log!("{}", measurement);
    }
}

Modules§

  • SCD30 I2C Commands.
  • Data send to or received from the SCD30 sensor.
  • Errors emitted by this library.

Structs§