1 unstable release
0.1.0 | Dec 18, 2018 |
---|
#39 in #humidity-sensor
16KB
205 lines
Rust HDC1080 Temperature and Humidity Sensor
This is based on LM75 work of Diego Barrios Romero
This is a platform agnostic Rust driver for the HDC1080 temperature and humidity
sensor, based on the
I2CDevice
traits.
This driver allows you to:
- Enable/disable the device.
- Read the temperature.
The device
The HDC1080 temperature sensor includes a delta-sigma analog-to-digital converter, and a digital overtemperature detector. The host can query the HDC1080 through its I2C interface to read temperature at any time.
Datasheet:
Usage
extern crate i2cdev;
extern crate hdc1080;
use hal::I2cdev;
use hdc1080::{ Hdc1080, SlaveAddr };
const HDC1080_SLAVE_ADDR: u16 = 0x40;
fn main() {
let dev = LinuxI2CDevice::new("/dev/i2c-0", HDC1080_SLAVE_ADDR).unwrap();
let mut sensor = Hdc1080::new(dev);
sensor.read_temperature_start().unwrap();
thread::sleep(time::Duration::from_millis(500u64));
let temp_celsius = sensor.read_temperature_finish().unwrap();
println!("Temperature: {}ºC", temp_celsius);
}
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Contributing
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~2MB
~39K SLoC