སྒྱུ་རྩལ
མཛེས་སྡུག་དང་བདེ་ཐང
བཟོ་རིག
རིག་གནས་དང་ལོ་རྒྱུས
དགའ་སྟོན
ཁོར་ཡུག
ཟས་དང་བཏུང་རྫས
ལྗང་མ་འཇོར་ལུགས
ཕྱིར་འཕྲུལ་རིག
ཚན་རིག
རྩེད་འགྲན
རིག་རྩལ
གྱོན་རུང
Building an Air-Quality Monitor
Ed

བཟོས་མཁན

Ed

13. སྤྱི་ཟླ་བདུན་པ 2026FI

Building an Air-Quality Monitor

Build a traffic-light air-quality monitor. An MQ-135 sensor responds to smoke, fumes, alcohol, CO2 and other gases; the Arduino compares the reading to clean air and lights a green, yellow or red LED for good, moderate or poor air. A hands-on way to watch indoor air change — with the honest limit that it shows RELATIVE quality, not a calibrated ppm figure.

བར་མ
1-2 hours

ལམ་སྟོན

1

Wire the sensor and three LEDs

On the breadboard: MQ-135 VCC to Arduino 5V, GND to GND, and its analog output (AOUT) to A0. Wire three LEDs — ideally green, yellow and red — to pins 5, 6 and 7, each through a 330 Ω resistor to GND (long leg to the pin).

གོམ་པ་འདིའི་རྫས་རིགས:

Arduino Uno R3Arduino Uno R31 piece
MQ-135 Air Quality Sensor ModuleMQ-135 Air Quality Sensor Module1 piece
LED - Basic 5mm (25 pack)LED - Basic 5mm (25 pack)1 pack
Resistor 330 Ohm 1/6 Watt PTH - 20 packResistor 330 Ohm 1/6 Watt PTH - 20 pack1 pack
BreadboardBreadboard1 piece
Jumper Wires (Male-to-Male)Jumper Wires (Male-to-Male)1 pack
2

Connect and open the IDE

Plug the Arduino into your computer with the USB cable, open the Arduino IDE, and select Arduino Uno and its serial port.

གོམ་པ་འདིའི་རྫས་རིགས:

USB-B CableUSB-B Cable1 piece

ལག་ཆས་དགོས་མཁོ:

Computer with Arduino IDEComputer with Arduino IDE
3

Upload the traffic-light sketch

Paste this sketch and upload. It warms the sensor, records a clean-air baseline, then lights green for good air, yellow for moderate and red for poor. Open the Serial Monitor to see the raw reading.

air_quality_monitor.inoarduino
// Traffic-light air-quality monitor using an MQ-135 sensor.
// Shows RELATIVE air quality vs a clean-air baseline - not a calibrated ppm meter.
// MQ-135 analog out on A0; green LED pin 5, yellow pin 6, red pin 7.

const int MQ135_PIN = A0;
const int GREEN_PIN = 5;
const int YELLOW_PIN = 6;
const int RED_PIN = 7;

int cleanAir = 0;             // baseline, set at startup
const int MODERATE = 80;     // rise above baseline -> moderate
const int POOR = 200;        // rise above baseline -> poor

void setup() {
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(YELLOW_PIN, OUTPUT);
  pinMode(RED_PIN, OUTPUT);
  Serial.begin(9600);

  Serial.println("Warming up MQ-135 (2 min) in clean air...");
  delay(120000);
  cleanAir = analogRead(MQ135_PIN);
  Serial.print("Clean-air baseline: ");
  Serial.println(cleanAir);
}

void loop() {
  int reading = analogRead(MQ135_PIN);
  int rise = reading - cleanAir;
  Serial.println(reading);

  digitalWrite(GREEN_PIN, LOW);
  digitalWrite(YELLOW_PIN, LOW);
  digitalWrite(RED_PIN, LOW);

  if (rise >= POOR) {
    digitalWrite(RED_PIN, HIGH);       // poor
  } else if (rise >= MODERATE) {
    digitalWrite(YELLOW_PIN, HIGH);    // moderate
  } else {
    digitalWrite(GREEN_PIN, HIGH);     // good
  }
  delay(500);
}
4

Warm up, baseline and test

Run it in fresh air and let the 2-minute warm-up set the baseline (a new MQ-135 also needs a 24–48 h burn-in to settle). Then test it: breathe on it, spray a little deodorant nearby, or hold a blown-out match's smoke close — it should climb to yellow then red, and return to green in clean air. Tune MODERATE and POOR to change the thresholds.

5

Know the limits

The MQ-135 reacts to many gases at once and gives a RELATIVE reading, not a calibrated CO2 or ppm value — despite what some tutorials claim, real ppm needs proper calibration against known concentrations. It also drifts and needs re-baselining. Treat this as an air-change indicator and a great sensing project, not a laboratory instrument.

རྫས་རིགས

7

ལག་ཆས་དགོས་མཁོ

1
ཚོད་དཔག་བསྡོམས
$54.00

འབྲེལ་ཡོད་བིལུ་པིརིན་ཊི

བིལུ་པིརིན་ཊི་འདི་ཚུ་ཐབས་ལམ་དང་རྫས་རིགས། སྤྱི་ཆོས་བགོ་བཤའ་བྱེད

CC0 སྤྱི་དབང

བིལུ་པིརིན་ཊི་འདི་CC0 འོག་བཀྲམས་ཡོད། ཁྱེད་རང་གིས་ཆོག་མཆན་མ་བཞེས་པར་ཕབ་ལེན་དང་བཟོ་བཅོས། བགོ་བཤའ། དགོས་མཁོ་གང་ལའང་བཀོལ་སྤྱོད་བྱས་ཆོག

བཟོ་མཁན་ལ་རྒྱབ་སྐྱོར་བྱེད་པའི་ཆེད་ཁོང་ཚོའི་བིལུ་པིརིན་ཊི་བརྒྱུད་ཐོན་སྐྱེད་ཉོ། བཟོ་མཁན་གྱིས བཟོ་མཁན་གྱི་ཁེ་ཕོགས ཚོང་པས་གཏན་འཁེལ་བྱས་པ། ཡང་ན་བིལུ་པིརིན་ཊི་འདིའི་པར་གསར་བཟོས་ཏེ་ཁྱེད་རང་གི་བིལུ་པིརིན་ཊི་ནང་མཐུད་སྦྲེལ་བྱས་ཏེ་ཡོང་སྒོ་བགོ་བཤའ་བྱེད།

གྲོས་བསྡུར

(0)

ནང་འཛུལ གྲོས་བསྡུར་ནང་མཉམ་ཞུགས་ཆེད

བསམ་ཚུལ་ཚུ་ཐོབ་བཞིན...