#humidity-sensor #temperature-humidity #humidity #sensor #pressure #temperature

no-std ms8607

A platform agnostic driver for the MS8607 Pressure, Temperature, and Humidity Sensor from TE Connectivity

3 releases

0.1.2 Feb 5, 2023
0.1.1 Feb 4, 2023
0.1.0 Feb 3, 2023

#2061 in Embedded development

GPL-3.0 license

26KB
337 lines

ms8607

Crates.io

A platform agnostic Rust driver for the MS8607 Pressure, Temperature, and Humidity Sensor from TE Connectivity.

MS8607

Tested and works great with the Adafruit MS8607 Breakout Board : MS8607 Breakout Board ©Adafruit

Example

There is an example for the Raspberry Pi Pico board in the examples directory.

Usage

Using the ms8607 driver in your own project is possible with any platform that supports the embedded-HAL. See awesome-embedded-rust for a list of supported platforms.

In order to use the ms8607 driver you'll need to configure an I2C device that implements the embedded HAL blocking I2C traits. You'll also need a delay device that implements the embedded HAL blocking delay traits.

I recommend to use the shared-bus crate in order to manage the concurrency on the I2C bus if several sensors are used in your project. Unfortunately I haven't found an equivalent for Delay yet and it will have to be passed to each call to a function requiring to wait before reading the sensor response.

// Create a new instance of the MS8607 driver
let mut ms8607 = MS8607::new(i2c);
// Initialize and calibrate the sensor
let begin = ms8607.begin(&mut delay);
// Init OK, sensor foun

// Get measurements
let (pres, temp, hum) = ms8607.get_measurements(&mut delay).unwrap();
hprintln!("Pressure: {pres:.2} Pa, Temperature: {temp:.2} C, Humidity: {hum:.2} %RH\r");

About this crate

Written by Antoine Raulin for the HydroVinci's MicroTransat project, a student association at the ESILV.

Dependencies

~71KB