Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 Gas Leak Guardian with LCD Display

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


Описание

Система предназначена для обнаружения утечек бытового газа (пропан/бутан), дыма и других горючих веществ. При превышении порогового значения активируется звуковая и световая сигнализация, а на LCD дисплее отображается текущее состояние и уровень газа.

Обнаруживаемые вещества:

  • Пропан / Бутан (газ из баллона или от плиты)
  • Дым (горение / тление)
  • Водород
  • Пары спирта

Состав системы (BOM)

Компонент Модель Примечание
MCU ESP32 DevKit V1 (38 pin) Основной контроллер
Sensor MQ-2 Электрохимический датчик газа/дыма
Display LCD 16x1 (или 16x2) Индикация текущих значений
Buzzer Активный зуммер (5V) Звуковая сигнализация
LED Красный + Зеленый Визуальная индикация
Power micro-USB (5V) Питание

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

Компонент Пин ESP32 Примечание
MQ-2 (Analog Out) D34 Аналоговый вход
LCD RS D19 Регистр выбора
LCD E D18 Строб
LCD D4 D5 Data bit 4
LCD D5 D23 Data bit 5
LCD D6 D14 Data bit 6
LCD D7 D2 Data bit 7
Red LED D13 Через резистор 220 Ом
Green LED D27 Через резистор 220 Ом
Buzzer D12 Активный зуммер (PWM)

Особенности подключения:

  • Датчик MQ-2 запитан от пина VIN (5V)
  • Для корректного считывания АЦП настроено затухание (attenuation) 11dB
  • Светодиоды подключены через ограничительные резисторы 220 Ом
  • Зуммер использует PWM (ledc) для генерации звука

Программная реализация

Инженерные решения

1. Экспоненциальная фильтрация (IIR фильтр)

filteredValue = filteredValue + FILTER_K * (rawValue - filteredValue);

Коэффициент FILTER_K = 0.2 обеспечивает плавное изменение значений без резких скачков.


2. Гистерезис

const int ALARM_ON = 3500;   // Включение тревоги
const int ALARM_OFF = 2700;  // Выключение тревоги


Разница в 800 единиц предотвращает дребезг при колебаниях уровня газа.

3. Неблокирующая логика

    Таймеры на millis() вместо delay()

    Разные интервалы для опроса датчика (50ms), обновления дисплея (250ms) и мигания LED (300ms)

4. PWM управление зуммером

ledcAttach(BUZZER_PIN, 300, 8);  // Частота 300Hz, разрешение 8 бит


┌─────────────────┐
│   MQ-2 Sensor   │
│   (аналоговый)  │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   ESP32 ADC     │
│   GPIO 34       │
│   11dB atten    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  Фильтрация     │
│  (экспоненц.)   │
└────────┬────────┘
         │
         ▼
┌─────────────────────────────────┐
│         Сравнение с порогом      │
│  Тревога: значение > 3500        │
│  Норма: значение < 2700          │
└────────┬────────────────────────┘
         │
         ├──────────┬──────────┬──────────┐
         ▼          ▼          ▼          ▼
   ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
   │Красный  │ │Зеленый  │ │ Buzzer  │ │   LCD   │
   │LED (D13)│ │LED (D27)│ │ (D12)   │ │(16x1)   │
   └─────────┘ └─────────┘ └─────────┘ └─────────┘



Установка и запуск
1. Установка зависимостей

В Arduino IDE установите библиотеку для LCD:

    LiquidCrystal (входит в стандартный набор)

2. Настройка пинов

3. Калибровка порогов

Подберите значения ALARM_ON и ALARM_OFF под ваше окружение:

    В нормальных условиях смотрите значения в Serial Monitor

    Установите ALARM_ON на 20-30% выше фонового значения

    ALARM_OFF на 300-500 единиц ниже ALARM_ON

4. Загрузка прошивки

Выберите плату ESP32 Dev Module, порт и нажмите "Загрузить"



Отладка:
В Serial Monitor (115200 бод) выводятся:

Raw:1234 Filtered:1256.78
Raw:1245 Filtered:1254.32
...


About

ESP32 based gas leak detector with MQ-2 sensor, LED/Buzzer alerts, and hysteresis logic to prevent false alarms.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages