Crate mh_z19c

source ·
Expand description

Crate 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.

Examples

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

no_std

This crate is no_std by default, unless the std feature is activated. Currently, the std feature will only add std::error::Error trait implementations to the error types.

Versioning

This crate uses Semantic Versioning.

Modules

MH-Z19C command definitions.
Serial communication frame handling for the MH-Z19C sensor.

Structs

Data-transfer object for combined measurement of CO₂ and temperature.
Driver for the MH-Z19C sensor.
Driver for the MH-Z19C sensor with firmware 5 capabilities.

Enums

Traits

Methods supported by all MH-Z19C sensors.
Methods supported by all MH-Z19C sensors with firmware 5.