Sensirion SHT4x Driver for Embedded HAL
A platform agnostic device driver for the Sensirion SHT4x temperature and
humidity sensor
family.
It is based on embedded-hal
traits and works in no_std environments.
In theory, it supports all of the sensor family's devices but has only been tested with the SHT40-AD1B so far.
Features
- Blocking operation
- Supports all commands specified in the datasheet
- Explicitly borrows
DelayMsfor command execution so that it could be shared (among multiple sensors) - Could be instantiated with the alternative I2C address for the SHT40-BD1B
- Uses fixed-point arithmetics for converting raw sensor data into measurements
in SI units
- Based on
I16F16from thefixedcrate - Allows conversion to floating-point values, if needed
- Convenience methods for fixed-point conversions to milli degree Celsius or milli percent relative humidity which are commonly used by drivers for other humidity and temperature sensors from Sensirion
- Based on
- Optional support for
defmt
Example
use Sht4x;
// Device-specific use declarations.
let mut delay = // Device-specific initialization of delay.
let i2c = // Device-specific initialization of I2C peripheral.
let mut sht40 = new;
let serial = sht40.serial_number;
info!;
let measurement = sht40.measure;
info!;
if let Ok = measurement
embedded-hal-async support
This crate has optional support for the embedded-hal-async crate, which
provides async versions of the I2c and DelayNs traits. Async support
is an off-by-default optional feature, so that projects which aren't using
embedded-hal-async can avoid the additional dependency.
To use this crate with embedded-hal-async, enable the embedded-hal-async
feature flag in your Cargo.toml:
= { = "0.2", = ["embedded-hal-async"] }
Once the embedded-hal-async feature is enabled, construct an instance of
the Sht4xAsync struct, providing types implementing the
embedded_hal_async::i2c::I2c and embedded_hal_async::delay::DelayNs
traits. The Sht4xAsync struct is identical to the Sht4x struct,
except that its methods are async fns.
Related Work
sensor-temp-humidity-sht40 is another driver for this sensor family.
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 discretion.
Contribution
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.