Как самостоятельно собрать датчик утечки газа на базе MQ-5 и ESP8266 с оповещением через Telegram-бота?

Сборка датчика утечки газа на базе MQ-5 и ESP8266 с оповещением через Telegram-бота — отличный DIY-проект для умного дома. Рассмотрим всё пошагово.

## Необходимые компоненты
— Модуль газового датчика MQ-5 (реагирует на природный газ, пропан, бутан, метан)
— Плата ESP8266 (например, NodeMCU v3 или Wemos D1 Mini)
— Резистор 10 кОм (при необходимости)
— Макетная плата и провода
— Источник питания 5В (USB)
— Активный зуммер (опционально, для локальной сигнализации)

## Схема подключения
Модуль MQ-5 имеет 4 вывода: VCC, GND, DO (цифровой выход) и AO (аналоговый выход).
— VCC → 3.3В или 5В на ESP8266 (NodeMCU имеет пин VIN для 5В)
— GND → GND
— DO → D5 (GPIO14) — цифровой сигнал тревоги
— AO → A0 — аналоговое значение концентрации

Важно: ESP8266 имеет только один аналоговый вход A0, рассчитанный на 0–1В (NodeMCU) или 0–3.3В. Используйте делитель напряжения при необходимости.

## Настройка Telegram-бота
1. Откройте Telegram и найдите @BotFather
2. Создайте нового бота командой /newbot, задайте имя и username
3. Получите токен вида: 123456789:AAF…
4. Узнайте ваш chat_id через @userinfobot или отправив сообщение боту и запросив updates через API

## Код для ESP8266 (Arduino IDE)
cpp
#include
#include

const char* ssid = «ВАШ_WIFI»;
const char* password = «ВАШ_ПАРОЛЬ»;
const String botToken = «ВАШ_ТОКЕН»;
const String chatId = «ВАШ_CHAT_ID»;

const int gasSensorPin = A0;
const int digitalPin = D5;
const int threshold = 400; // порог срабатывания

bool alertSent = false;

void sendTelegramMessage(String message) {
WiFiClient client;
HTTPClient http;
String url = «https://api.telegram.org/bot» + botToken + «/sendMessage?chat_id=» + chatId + «&text=» + message;
http.begin(client, url);
http.GET();
http.end();
}

void setup() {
Serial.begin(115200);
pinMode(digitalPin, INPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
Serial.println(«WiFi подключён»);
sendTelegramMessage(«Датчик газа запущен и работает»);
}

void loop() {
int gasValue = analogRead(gasSensorPin);
int digitalValue = digitalRead(digitalPin);
Serial.println(gasValue);

if (gasValue > threshold && !alertSent) {
sendTelegramMessage(«⚠️ ВНИМАНИЕ! Обнаружена утечка газа! Значение: » + String(gasValue));
alertSent = true;
}

if (gasValue < threshold — 50) {
alertSent = false; // сброс флага после нормализации
}

delay(2000);
}

## Важные рекомендации
— Перед использованием прогрейте датчик MQ-5 не менее 24–48 часов для стабилизации показаний
— Установите порог срабатывания опытным путём, наблюдая за значениями в мониторе порта
— Добавьте флаг alertSent, чтобы не засыпать Telegram спамом
— Для HTTPS-запросов используйте библиотеку WiFiClientSecure с fingerprint сертификата Telegram
— Разместите датчик вблизи газовых приборов, но не над плитой
— Дополнительно подключите зуммер к D6 для локальной сигнализации

Проект легко расширяется: можно добавить дисплей OLED, интеграцию с Home Assistant или отправку данных на сервер мониторинга.


Задайте вопрос нейросети

Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.