33 lines
1.1 KiB
Rust
33 lines
1.1 KiB
Rust
extern crate i2cdev;
|
|
extern crate i2cdev_bmp280;
|
|
extern crate i2csensors;
|
|
extern crate si7021;
|
|
|
|
use i2cdev::linux::LinuxI2CDevice;
|
|
use i2cdev_bmp280::*;
|
|
use si7021::*;
|
|
use i2csensors::{Barometer, Hygrometer, Thermometer};
|
|
|
|
fn main() {
|
|
let i2c_device = LinuxI2CDevice::new("/dev/i2c-11", 0b1110110).unwrap();
|
|
|
|
let settings = BMP280Settings {
|
|
compensation: BMP280CompensationAlgorithm::Float,
|
|
t_sb: BMP280Timing::ms4000,
|
|
iir_filter_coeff: BMP280FilterCoefficient::UltraHigh,
|
|
osrs_t: BMP280TemperatureOversampling::x2,
|
|
osrs_p: BMP280PressureOversampling::UltraHighResolution,
|
|
power_mode: BMP280PowerMode::NormalMode,
|
|
};
|
|
|
|
let mut bmp280 = BMP280::new(i2c_device, settings).unwrap();
|
|
|
|
println!("pressure: {:6.2} kPa", bmp280.pressure_kpa().unwrap());
|
|
println!("temp1: {:6.2} °C", bmp280.temperature_celsius().unwrap());
|
|
|
|
let device = LinuxI2CDevice::new("/dev/i2c-11", SI7021_I2C_ADDRESS).unwrap();
|
|
let mut si7021 = Si7021::new(device);
|
|
println!("humidity: {:6.2} %", si7021.relative_humidity().unwrap());
|
|
println!("temp2: {:6.2} °C", si7021.temperature_celsius().unwrap());
|
|
}
|