Как самостоятельно собрать датчик задымления с сиреной и уведомлением на смартфон на базе модуля ESP32 и датчика MQ-2?
Сборка датчика задымления на базе ESP32 и MQ-2 — отличный DIY-проект для умного дома. Ниже приведена пошаговая инструкция.
## Необходимые компоненты
— Модуль ESP32 (например, ESP32 DevKit v1)
— Датчик газа и дыма MQ-2
— Активный зуммер (пьезосирена) 5В
— Резисторы 10 кОм и 220 Ом
— Макетная плата и провода
— Источник питания 5В (USB или внешний)
## Схема подключения
1. **MQ-2**: VCC → 5V ESP32, GND → GND, AOUT → GPIO34 (аналоговый вход), DOUT → GPIO35 (цифровой вход).
2. **Зуммер**: плюс через резистор 220 Ом → GPIO26, минус → GND.
Важно: GPIO34 и GPIO35 на ESP32 — только входные, что идеально для аналогового чтения. MQ-2 требует прогрева 30–60 секунд перед первым использованием.
## Настройка уведомлений
Для отправки уведомлений на смартфон используйте сервис **Telegram Bot** или **Pushover**. Наиболее простой вариант — Telegram:
1. Создайте бота через @BotFather, получите токен.
2. Узнайте свой chat_id через @userinfobot.
3. В коде используйте HTTP-запрос к Telegram API.
## Пример кода (Arduino IDE)
cpp
#include
#include
const char* ssid = «ВАШ_WIFI»;
const char* password = «ВАШ_ПАРОЛЬ»;
const String botToken = «ВАШ_ТОКЕН»;
const String chatID = «ВАШ_CHAT_ID»;
const int mq2Pin = 34;
const int buzzerPin = 26;
const int threshold = 1500; // порог срабатывания
void sendTelegramMessage(String message) {
HTTPClient http;
String url = «https://api.telegram.org/bot» + botToken + «/sendMessage?chat_id=» + chatID + «&text=» + message;
http.begin(url);
http.GET();
http.end();
}
void setup() {
Serial.begin(115200);
pinMode(buzzerPin, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
Serial.println(«WiFi подключён»);
}
void loop() {
int sensorValue = analogRead(mq2Pin);
Serial.println(sensorValue);
if (sensorValue > threshold) {
digitalWrite(buzzerPin, HIGH);
sendTelegramMessage(«⚠️ ВНИМАНИЕ! Обнаружен дым или газ!»);
delay(30000); // пауза 30 сек, чтобы не спамить
} else {
digitalWrite(buzzerPin, LOW);
}
delay(1000);
}
## Калибровка датчика
Значение `threshold` подбирается экспериментально. В чистом воздухе MQ-2 обычно даёт 300–600 единиц на 12-битном АЦП ESP32. При задымлении значение резко возрастает до 1500–4000. Рекомендуется протестировать датчик с небольшим количеством дыма и зафиксировать пороговое значение.
## Советы по размещению
— Устанавливайте устройство на потолке или в верхней части стены — дым поднимается вверх.
— Избегайте кухонь с частым приготовлением пищи во избежание ложных срабатываний.
— Обеспечьте стабильное питание — перебои могут вызывать сброс ESP32.
Данная система обеспечивает базовую защиту и может быть расширена: добавьте датчик температуры DS18B20, реле для отключения газа или интеграцию с Home Assistant.
