tinywetter/src/main.rs

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());
}