Подключение датчика газа MQ-2 к ESP32

Датчик горючих газов и дыма

MQ-2 к ESP32 — питание от VIN (5 В), земля и AO на вход АЦП через делитель напряжения. Нагреватель потребляет заметный ток, поэтому питание модуля — отдельная забота.

Схема подключения датчика газа MQ-2 к ESP32

MQ-2ESP32
AOGPIO34
VCCVIN
GNDGND

Схема из примера «Датчик газа MQ-2: сигнализация с порогом».

Датчик газа MQ-2: сигнализация с порогом

Открыть пример целиком

Выводы MQ-2

ВыводНазначение
AOаналоговый выход: выше напряжение — больше газа
DOцифровой выход компаратора, низкий при превышении порога
VCCпитание нагревателя и платы, 5 В
GNDобщий провод

Код для ESP32

// Сигнализация утечки газа на MQ-2.
//
// Датчик греет внутренний нагреватель, и первые минуты его показания
// плавают. Здесь прогрев сокращён до пяти секунд, чтобы было видно
// работу; на настоящем датчике ждут минимум пару минут.
//
// Порогов два: включаем при высоком, выключаем только при заметно более
// низком. Иначе у границы сигнал будет дребезжать от шума АЦП.
//
// Внимание: у модуля на 5 В выход AO доходит до 5 В, а вход ESP32
// терпит 3,3 В. На настоящей плате AO ставят через делитель (например,
// 10 кОм и 20 кОм).

const int GAS = 34;
const int LED = 2;

const int ALARM_ON = 2400;
const int ALARM_OFF = 1800;
const unsigned long WARMUP_MS = 5000;

bool gasAlarm = false;

void setup() {
  Serial.begin(115200);
  pinMode(LED, OUTPUT);
  Serial.println("прогрев датчика...");
}

void loop() {
  if (millis() < WARMUP_MS) {
    delay(200);
    return;
  }

  int level = analogRead(GAS);

  if (!gasAlarm && level > ALARM_ON) {
    gasAlarm = true;
    Serial.println("ГАЗ! превышен порог");
  } else if (gasAlarm && level < ALARM_OFF) {
    gasAlarm = false;
    Serial.println("воздух чистый");
  }

  digitalWrite(LED, gasAlarm);
  Serial.printf("уровень: %d\n", level);
  delay(300);
}

Скетч можно править и запускать в симуляторе без платы и установки среды.

Что учесть на ESP32

В железе

Нагреватель потребляет заметный ток и рассчитан на 5 В: питайте модуль от USB-5 В платы, а не от вывода 3,3 В. Выход AO у такого модуля доходит до 5 В, поэтому для входа ESP32 его нужно пропустить через делитель. Датчик нельзя считать защитным устройством: для настоящей сигнализации утечки газа нужен сертифицированный прибор.

Частые ошибки при подключении к ESP32

Другие детали для ESP32