Pure rust implementation to read out the Winsen MH-Z19C CO2 sensor.
This crate provides an API to read-out the nondispersive infrared (NDIR) CO₂ sensor MH-Z19C by Winsen via the serial (UART) interface.
The provided API supports non-blocking usage and is no_std
.
use mh_z19c::MhZ19C;
use nb::block;
let mut co2sensor = MhZ19C::new(uart);
let co2 = block!(co2sensor.read_co2_ppm())?;
println!("CO₂ concentration: {}ppm", co2);
To activate features of a sensor with a firmware of version 5:
let mut co2sensor = block!(co2sensor.upgrade_to_v5())?;
let co2_temp = block!(co2sensor.read_co2_and_temp())?;
println!("Temperature: {}°C", co2_temp.temp_celsius);
This crate uses Semantic Versioning.
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.
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.