Датчик газа и дыма MQ-2 с ESP8266: отправка сообщения в Telegram

Датчик MQ-2 — недорогой и эффективный сенсор для обнаружения бытового газа (пропан, бутан, метан), водорода и дыма. В этом проекте своими руками мы подключим MQ-2 к ESP8266, настроим порог срабатывания и отправим уведомления об утечке газа в Telegram-бот. Идеально для системы безопасности дома или гаража.

Датчик газа MQ-2 с ESP8266 и Telegram

Возможности проекта

  • Обнаружение утечки газа и дыма
  • Настройка порога срабатывания
  • Отправка до 3 уведомлений в Telegram
  • Беспроводная работа на ESP8266
  • Простая калибровка в чистом воздухе

Характеристики MQ-2

  • Питание: 5В, ток 150 мА
  • Диапазон: пропан 200–5000 ppm, метан 5000–20000 ppm
  • Время прогрева: ~1 минута
  • Аналоговый и цифровой выходы

Необходимые компоненты

  • ESP8266 (NodeMCU / Wemos)
  • Модуль MQ-2
  • Telegram-бот (создаётся через BotFather)

Схема подключения

  • VCC MQ-2 → VIN ESP (5В)
  • GND → GND
  • A0 MQ-2 → A0 ESP
  • DO (опционально) → любой GPIO

Калибровка и скетч

#include <ESP8266WiFi.h>
#include <UniversalTelegramBot.h>

#define WIFI_SSID "yourSSID"
#define WIFI_PASS "yourPASS"
#define BOT_TOKEN "your:token"
#define CHAT_ID "your_chat_id"

WiFiClientSecure client;
UniversalTelegramBot bot(BOT_TOKEN, client);

const int sensorPin = A0;
int threshold = 150;  // ваш порог
int alertCount = 3;

void setup() {
  Serial.begin(115200);
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  bot.sendMessage(CHAT_ID, "Датчик газа запущен", "");
}

void loop() {
  int value = analogRead(sensorPin);
  if (value > threshold && alertCount > 0) {
    bot.sendMessage(CHAT_ID, "Утечка газа!", "");
    alertCount--;
    delay(10000);
  }
  if (value < threshold) alertCount = 3;
  delay(1000);
}
Подключается к Wi-Fi и инициализирует Telegram-бота;
Считывает данные с газового датчика на A0;
Если значение превышает порог threshold и есть доступные предупреждения (alertCount > 0), отправляет в Telegram сообщение "Утечка газа!" и уменьшает счетчик предупреждений;
После снижения значения ниже порога счетчик предупреждений сбрасывается до 3;
Проверка происходит каждые 1 секунду, при отправке сообщения делается пауза 10 секунд, чтобы не спамить чат.

Установка библиотек

  • ESP8266WiFi
  • UniversalTelegramBot

Заключение

MQ-2 с ESP8266 — надёжный беспроводной датчик газа с уведомлениями в Telegram. Проект легко расширить: добавить buzzer, реле для клапана или несколько датчиков.

FAQ — Датчик газа MQ-2

Как калибровать MQ-2?

Прогрейте 1 минуту в чистом воздухе, снимите значения A0 (обычно 50–100), порог ставьте на 50–100 выше.

Работает ли без микроконтроллера?

Да, цифровой выход DO подключается к реле (низкий уровень при тревоге).

Можно использовать Arduino вместо ESP?

Да, но без Wi-Fi — добавьте ESP-01 или используйте buzzer/реле.

Как добавить звук?

Подключите buzzer к GPIO и tone() при тревоге.

Ложные срабатывания?

Увеличьте порог или усредняйте несколько измерений (moving average).

Сколько датчиков можно подключить?

Несколько на разные GPIO, с отдельными порогами и сообщениями.

Питается от 3.3В?

Нагреватель требует 5В, логика поддерживает 3.3В.

📁 Скачать примеры