Crate scd30pi[][src]

Library to communicate with the I2C SCD30 CO2, temperature and humidity sensor made by Sensirion.

Provides basic functionality according the SCD30 Reference from Sensirion.

The target platform is a Raspberry pi so either you compile it on an rpi or use crosscompiling. It is based on Raspberry Pi Peripheral Access Library RPPAL. The physical SCD30 connection to i2c can be done by wiring the device to the first i2c ports of the GPIO connector.

Connect to RaspberryPi GPIO:

  • pin 1 (3.3V/VCC)
  • pin 3 (SDA)
  • pin 5 (SCL)
  • pin 6 (GND).

Examples

use scd30pi::i2c::SCD30;
use std::{thread, time};

fn main() {
   let mut sensor = SCD30::new().unwrap();
   let speed = sensor.get_bus_speed().unwrap();
   println!("bus Speed: {}", speed);

   sensor.start().unwrap();
   sensor.set_measure_interval(2).unwrap();

   let version = sensor.read_firmware_version().unwrap();
   println!("Current firmware version {}", version);

   while !sensor.data_available().unwrap() {
       thread::sleep(time::Duration::from_millis(200));
   }

   let temperature = sensor.temperature().unwrap();
   let co2 = sensor.co2().unwrap();
   let humidity = sensor.humidity().unwrap();

   println!(
       "co2 = {:.0} ppm, temp = {:.2} °C, humidity = {:.0} %",
       co2, temperature, humidity
   );
}

Modules

i2c