| Crates.io | mq135 |
| lib.rs | mq135 |
| version | 0.1.0 |
| created_at | 2025-05-28 06:23:58.83832+00 |
| updated_at | 2025-05-28 06:23:58.83832+00 |
| description | Rust embedded driver for MQ135 air quality sensor |
| homepage | |
| repository | https://github.com/prabesh-shrestha/mq135 |
| max_upload_size | |
| id | 1692401 |
| size | 25,494 |
mq135 is a minimal, #![no_std] Rust driver for the MQ135 air quality sensor.
Itβs designed for embedded systems using the embedded-hal ADC traits.
The MQ135 sensor detects air quality by measuring gases like COβ, NHβ, Benzene, and Smoke via analog voltage readings. This driver converts those readings into gas concentration (PPM).
embedded-hal traits for wide MCU compatibility#![no_std]), perfect for microcontrollersFirst, add the crate to your dependencies:
[dependencies]
mq135 = "0.1" # replace with latest version
embedded-hal = "0.2" # or your compatible version
libm = "0.2" # for math in no_std environment
Example code snippet:
use mq135::{Mq135, GasType};
// `adc` must implement `embedded_hal::adc::OneShot`
// `pin` is the ADC input pin connected to MQ135 sensor output
let mut sensor = Mq135::new(adc, pin, 10_000.0); // RL load resistance in Ohms
// Calibrate the sensor in clean air before readings
sensor.calibrate_in_clean_air().unwrap();
// Get gas concentration in PPM
let co2_ppm = sensor.read_gas_ppm(GasType::CO2).unwrap();
println!("CO2 Concentration: {:.2} ppm", co2_ppm);
Calibration is necessary to set the baseline sensor resistance (R0) in clean air. This ensures accurate gas concentration measurements.
| Gas | Description |
|---|---|
| COβ | Carbon Dioxide |
| NHβ | Ammonia |
| Benzene | Aromatic Hydrocarbon |
| Smoke | General Smoke Levels |
embedded-hal β Hardware abstraction layer for embedded deviceslibm β Math functions compatible with no_std environmentsThis project is licensed under the MIT License Β© 2025 Prabesh Shrestha.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
Thank you for using mq135! Happy coding and clean air monitoring! πΏ