Как самостоятельно собрать систему оповещения об открытии двери на базе геркона и модуля ESP32 с отправкой пуш-уведомлений?
Система оповещения об открытии двери на базе геркона и ESP32 — это простой и эффективный IoT-проект, который можно реализовать самостоятельно за несколько часов. Ниже представлена подробная инструкция.
**Необходимые компоненты:**
— Модуль ESP32 (например, ESP32 DevKit v1)
— Геркон (магнитный датчик двери) с нормально разомкнутыми или нормально замкнутыми контактами
— Постоянный магнит (обычно идёт в комплекте с герконом)
— Резистор 10 кОм (подтягивающий)
— Провода, макетная плата
— Источник питания 5В (USB или аккумулятор)
**Схема подключения:**
Один вывод геркона подключается к пину GPIO (например, GPIO 4) ESP32, второй — к GND. Между GPIO и питанием 3.3В устанавливается подтягивающий резистор 10 кОм. Можно также использовать встроенный pull-up резистор ESP32, активировав его программно.
**Настройка отправки пуш-уведомлений:**
Для пуш-уведомлений удобно использовать сервис **Telegram Bot API** или **Pushover**. Рассмотрим вариант с Telegram:
1. Создайте бота через @BotFather и получите токен.
2. Узнайте свой chat_id, написав боту и запросив обновления через API.
3. В коде ESP32 используйте библиотеку HTTPClient для отправки GET-запроса к Telegram API при срабатывании геркона.
**Пример кода на Arduino IDE (упрощённый):**
cpp
#include
#include
const char* ssid = «ВашWiFi»;
const char* password = «ВашПароль»;
const String token = «ВАШ_ТОКЕН»;
const String chatId = «ВАШ_CHAT_ID»;
const int doorPin = 4;
bool lastState = HIGH;
void setup() {
pinMode(doorPin, INPUT_PULLUP);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
}
void sendNotification(String msg) {
HTTPClient http;
String url = «https://api.telegram.org/bot» + token + «/sendMessage?chat_id=» + chatId + «&text=» + msg;
http.begin(url);
http.GET();
http.end();
}
void loop() {
bool state = digitalRead(doorPin);
if (state != lastState) {
delay(50); // дебаунс
if (state == LOW) sendNotification(«Дверь открыта!»);
else sendNotification(«Дверь закрыта.»);
lastState = state;
}
}
**Монтаж на дверь:**
Геркон крепится на дверной коробке, магнит — на полотне двери напротив геркона. При открытии двери магнит удаляется, контакты геркона размыкаются (или замыкаются — зависит от типа), ESP32 фиксирует изменение состояния пина и отправляет уведомление.
**Советы по надёжности:**
— Используйте дебаунс (задержку 50–100 мс) для устранения ложных срабатываний.
— Для автономной работы подключите LiPo-аккумулятор и используйте режим глубокого сна (Deep Sleep) ESP32 с пробуждением по прерыванию.
— Для защиты от потери WiFi добавьте функцию переподключения.
Таким образом, система получается компактной, надёжной и не требует облачных подписок — достаточно бесплатного Telegram-бота.
