Главная → Датчики

Датчики газа MQ-2 и MQ-135 — что они реально меряют

15 сентября 2026 · Датчики

Датчики газа серии MQ — самые популярные газовые сенсоры для Arduino. Они дёшевы и просты в подключении, но обещания «обнаруживает 10 газов» скрывают нюансы. MQ-2 не различает метан от пропана, а MQ-135 не измеряет CO₂ в ppm. Разберёмся, что они реально умеют.

Что внутри датчика MQ

Внутри металлической сетки — керамическая трубка с покрытием из диоксида олова (SnO₂). Нагреватель раскаляет слой до 200–400 °C, и сопротивление меняется в присутствии целевых газов. Это резистивный датчик: на выходе напряжение делителя, а не цифровой сигнал. Нагреватель потребляет до 800 мВт — датчик тёплый на ощупь.

MQ-2: горючие газы и дым

MQ-2 по datasheet Hanwei Electronics обнаруживает LPG, пропан, бутан, метан, водород, алкоголь и дым. Диапазон: 200–5000 ppm для LPG и пропана, 5000–20000 ppm для метана, 300–5000 ppm для H₂, 100–2000 ppm для алкоголя. Рекомендуемая RL — 20 кОм (5–47 кОм), Rs в воздухе — 3–30 кОм при 1000 ppm изобутана.

MQ-135: воздух в помещении

MQ-135 предназначен для контроля качества воздуха: NH₃, NOx, бензол, алкоголь, дым и CO₂. Диапазон для аммиака — 10–300 ppm, для бензола — 10–1000 ppm, алкоголя — 10–300 ppm. Но «CO₂» в datasheet — косвенная зависимость, не селективное измерение. Для точного CO₂ нужен NDIR-сенсор (MH-Z19). Rs в воздухе — 30–200 кОм при 100 ppm NH₃.

Таблица характеристик

Параметр MQ-2 MQ-135
Питание (Vc) 5 В ±0,1 5 В ±0,1
Нагреватель (VH) 5 В ±0,1 5 В ±0,1
Сопротивление RH 33 Ом ±5 % 33 Ом ±5 %
Потребление <800 мВт <800 мВт
Температура −20…+50 °C −10…+45 °C
Влажность <95 % RH <95 % RH
Слой SnO₂ SnO₂
Целевые газы LPG, пропан, бутан, метан, H₂, алкоголь, дым NH₃, NOx, бензол, алкоголь, дым, CO₂
LPG/пропан 200–5000 ppm —
NH₃ — 10–300 ppm
Алкоголь 100–2000 ppm 10–300 ppm
Прогрев ≥24 ч ≥24 ч
RL (рекоменд.) 20 кОм (5–47) 20 кОм (10–47)
Rs (воздух) 3–30 кОм 30–200 кОм

Параметры — по datasheet Hanwei Electronics (MQ-2 и MQ-135).

Что значит «широкий спектр»

Оба датчика — полупроводниковые резистивные. Они не различают газы: сопротивление SnO₂ падает при контакте с любым восстановительным газом. Если в воздухе одновременно есть алкоголь и пропан — датчик покажет суммарную реакцию. Калибровка по эталонному газу: для MQ-2 — 1000 ppm LPG, для MQ-135 — 100 ppm NH₃. Без калибровки показания — относительные, «больше/меньше», а не ppm.

Подключение к Arduino

Модуль поставляется на плате с компаратором LM393 и подстроечным резистором. 4 пина: VCC, GND, D0 (цифровой), A0 (аналоговый). VCC — 5 В (не 3,3 В), A0 — аналоговый пин A0, D0 — цифровой с порогом подстроечника.

// MQ-2 / MQ-135: чтение аналогового выхода
// A0 модуля → A0 Arduino
const int gasPin = A0;

void setup() {
  Serial.begin(9600);
  Serial.println("Запуск датчика. Прогрев 24 часа!");
}

void loop() {
  int raw = analogRead(gasPin);          // 0..1023
  float voltage = raw * (5.0 / 1023.0);  // в вольты
  Serial.print("Raw: "); Serial.print(raw);
  Serial.print(" | V: ");  Serial.println(voltage, 2);
  // Меньше напряжение = больше газа (SnO2 падает при газе)
  delay(1000);
}

Важно: меньше напряжение на A0 = больше газа. При росте концентрации сопротивление SnO₂ падает, и напряжение делителя уменьшается.

Подключение к ESP32

ADC ESP32 работает от 0 до 3,3 В. Подключать A0 напрямую нельзя — напряжение может достигать 5 В. Нужен делитель: резисторы 2 кОм и 3,3 кОм дают ~3,1 В при 5 В на A0 (Vout = 5 × 3300/(2000+3300) = 3,11 В).

// MQ-2 на ESP32 через делитель
// A0 → делитель → GPIO34 (ADC1_CH6)
const int gasPin = 34;

void setup() {
  Serial.begin(115200);
  analogReadResolution(12);       // 0..4095
  analogSetAttenuation(ADC_11db); // 0..3,3 В
}

void loop() {
  int raw = analogRead(gasPin);
  float v = raw * (3.3 / 4095.0);
  Serial.print("Raw: "); Serial.print(raw);
  Serial.print(" | V: ");  Serial.println(v, 3);
  delay(1000);
}

Используйте пины ADC1 (GPIO 32–39) — ADC2 занят Wi-Fi.

Частые ошибки

1. Нет калибровки

Без калибровки по эталонному газу показания — просто числа. Производитель рекомендует 24 часа прогрева. Многие включают и через 5 минут делают выводы.

2. «Прогрел 5 минут»

Datasheet: время прогрева — более 24 часов. Первые минуты датчик показывает что угодно. Для повторных включений достаточно 1–3 минут, но первая калибровка — после суток работы.

3. «Измеряет CO₂ в ppm» — нет

MQ-135 не различает газы. Для CO₂ нужен NDIR-сенсор (MH-Z19).

4. Питание от 3,3 В

Нагреватель требует 5 В ±0,1 В. От 3,3 В датчик работает некорректно.

5. Аналоговый выход выше 3,3 В на ESP32

A0 может выдавать до ~5 В. Без делителя напряжения пин ESP32 выйдет из строя.

6. Игнорирование температуры и влажности

Показания зависят от температуры и влажности (33 % RH и 85 % RH в datasheet). Для точных измерений нужен BME280 рядом и программная компенсация.

7. D0 как измеритель концентрации

D0 — компаратор с порогом подстроечника. Он показывает «газ выше/ниже порога», а не концентрацию. Для измерения используйте A0.

Где применять

Подходит: детектор утечки газа (MQ-2), сигнал «плохой воздух» (MQ-135), автоматическая вентиляция, учебные проекты.

Не подходит: точный измеритель ppm CO₂, промышленный газоанализатор, медицинский монитор.

Смотрите также

MQ-2 и MQ-135 — дешёвые и полезные сенсоры для обнаружения газа. Но «обнаружение» и «измерение» — разные задачи. Для сигнализации «пахнет газом, включи вентиляцию» они годятся. Для лабораторной точности — нет. Главное: калибровка, 24 часа прогрева, не путать D0 с A0.

Информация собрана из открытых источников и паспортов производителей и не является истиной в последней инстанции. Характеристики, распиновку и совместимость проверяйте по документации конкретной партии модуля перед покупкой и подключением.

Читайте дальше

Связь

Bluetooth-модули HC-05 и HC-06: обзор и подключение

Две платы на одном чипе Когда надо добавить в самоделку беспроводной «провод» — чтобы телефон или вторая Arduino видели плату как обычный…

Читать обзор →
Питание

Модуль часов реального времени DS3231: обзор и подключение

Зачем плате Arduino часы У Arduino и ESP32 есть таймеры, но нет часов: millis() честно считает миллисекунды с момента включения, а какой…

Читать обзор →
Датчики

Датчик освещённости BH1750 против фоторезистора: обзор и подключение

Задача: узнать, сколько вокруг света Свет в самоделках измеряют постоянно: включить ночник, закрыть дверцу курятника, понять, что теплице хватит. Ходовых решения два…

Читать обзор →