Crate svm40[][src]

Platform agnostic Rust driver for Sensirion SVM40 device with gas, temperature and humidity sensors based on the embedded-hal traits.

Sensirion SVM40

Sensirion SGPC3 is a low-power accurate gas sensor for air quality application. The sensor has different sampling rates to optimize power-consumption per application bases as well as ability save and set the baseline for faster start-up accuracy. The sensor uses I²C interface and measures TVOC (Total Volatile Organic Compounds)

Evaluation board: https://www.sensirion.com/cn/environmental-sensors/evaluation-kit-sek-svm40/

Usage

Instantiating

Import this crate and an embedded_hal implementation, then instantiate the device:

use linux_embedded_hal as hal;

use hal::{Delay, I2cdev};
use svm40::Svm40;

fn main() {
    let dev = I2cdev::new("/dev/i2c-1").unwrap();
    let mut sgp = Svm40::new(dev, 0x6a, Delay);
}

Doing Measurements

The device is doing measurements independently of the driver and calls to the device will just fetch the latest information making the usage easy.

use linux_embedded_hal as hal;
use hal::{Delay, I2cdev};

use std::time::Duration;
use std::thread;

use svm40::Svm40;

fn main() {
    let dev = I2cdev::new("/dev/i2c-1").unwrap();

    let mut sensor = Svm40::new(dev, 0x6A, Delay);

    let version = sensor.version().unwrap();

    println!("Version information {:?}", version);

    let mut serial = [0; 26];

    sensor.serial(&mut serial).unwrap();

    println!("Serial {:?}", serial);

    sensor.start_measurement().unwrap();

    thread::sleep(Duration::new(2_u64, 0));

    for _ in 1..20 {
        let signals = sensor.get_measurements().unwrap();
        println!("Measurements: {:?}", signals);
        thread::sleep(Duration::new(1_u64, 0));

        let signals = sensor.get_raw_measurements().unwrap();
        println!("Measurements: {:?}", signals);
        thread::sleep(Duration::new(1_u64, 0));
    }
    sensor.stop_measurement().unwrap();
}

Structs

RawSignals

Raw signal measurement. Raw signals include the standard signals.

Signals

Standard signal measurement

Svm40

Svm40 main driver to manipulate the sensor

Version

Version information structure

Enums

Error

Svm40 errors