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::blocking::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§

blocking
Blocking interface for the SCD30 Implementation of the SCD30’s interface
command
SCD30 I2C Commands.
data
Data send to or received from the SCD30 sensor.
error
Errors emitted by this library.