Try   HackMD

Arduino-compatible sensors that can detect PPM (parts per million) values typically measure gases or chemical concentrations in air or liquid. Here's a list of commonly used PPM-detecting sensors you can interface with Arduino, along with their applications:

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Common Arduino Sensors for Detecting PPM

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Notable Digital (Calibrated) PPM Sensors
These are more accurate than analog MQ sensors and often output calibrated PPM readings directly:

1. MH-Z19B / MH-Z14A (CO₂ sensor)

  • Measures 400–5000 PPM CO₂
  • UART or PWM output
  • Ready-to-use and accurate for indoor air quality

2. SCD30 / SCD41 by Sensirion

  • Advanced CO₂, temperature, and humidity sensor
  • I2C interface, 0–40,000 PPM range
  • Accurate and factory-calibrated

Considerations When Using PPM Sensors with Arduino

  • Analog sensors (MQ series) need calibration to get accurate PPM values.
  • PPM readings are often non-linear — use datasheet curves or calibration gases.
  • For precision, use digital sensors (MH-Z19, SCD30) with direct PPM output.
  • Warm-up time for gas sensors: usually 30–60 seconds for stable readings.
  • Add temperature/humidity compensation where needed.

Example: MQ-135 with Arduino (Air Quality)

cpp

int sensorPin = A0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  int analogValue = analogRead(sensorPin);
  float voltage = analogValue * (5.0 / 1023.0);
  Serial.print("Sensor voltage: ");
  Serial.println(voltage);
  delay(1000);
}

To convert to PPM, you must apply a calibration formula or use a lookup table based on the gas and MQ datasheet.