🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


💨 Проект: автоматическая вентиляция по датчику газа MQ-2

Датчик MQ-2, реле и зуммер

MQ-2 реагирует на дым и горючий газ в воздухе — при превышении порога Arduino сразу включает вытяжной вентилятор через реле, а при сильной концентрации добавляет звуковую сирену.

Как это работает

MQ-2 — полупроводниковый газовый датчик: внутри находится чувствительный элемент на основе диоксида олова (SnO2), сопротивление которого падает при контакте с дымом и горючими газами (пропан, бутан, метан, водород). Плата-компаратор переводит это в аналоговое напряжение на выходе AO — чем выше концентрация газа, тем выше значение `analogRead()`.

Важная особенность всех MQ-датчиков: им требуется несколько минут прогрева после включения питания для стабилизации показаний, и желательно держать питание постоянно включённым, а не включать его каждый раз заново — иначе показания первые минуты будут недостоверными.

Два порога в проекте решают разные задачи: `ventThreshold` включает только вентилятор для проветривания при небольшом превышении нормы, `alarmThreshold` — уже настоящая тревога с сиреной при действительно опасной концентрации.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Подключите MQ-2: AO → A0, VCC → 5V, GND → GND.
  2. Подключите модуль реле KY-019 (вентилятор): сигнал → D7, VCC → 5V, GND → GND.
  3. Подключите активный зуммер: сигнал → D8, GND → GND.
  4. Дайте датчику прогреться несколько минут после первого включения, прежде чем калибровать пороги.
  5. Подберите `ventThreshold` и `alarmThreshold` под конкретное помещение, наблюдая значения через Serial-монитор в нормальных условиях.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

const int gasPin = A0;
const int relayPin = 7;
const int buzzerPin = 8;

const int ventThreshold = 300;  // порог включения вентилятора
const int alarmThreshold = 500; // порог настоящей тревоги с сиреной

void setup() {
  Serial.begin(9600);
  pinMode(relayPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  Serial.println("Прогрев датчика MQ-2, подождите несколько минут...");
}

void loop() {
  int value = analogRead(gasPin);
  Serial.println(value);

  digitalWrite(relayPin, (value > ventThreshold) ? HIGH : LOW);
  digitalWrite(buzzerPin, (value > alarmThreshold) ? HIGH : LOW);

  delay(1000);
}

Два порога решают разные задачи: `ventThreshold` включает только вентилятор для проветривания, `alarmThreshold` — уже настоящая тревога с сиреной при опасной концентрации.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🐠 термостат для аквариума/террариума на DS18…☀️ сигнализация ультрафиолета на GUVA-S12SD →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 229 ₽ 206 ₽ (экономия 23 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA