Система моніторингу та охорони на базі ESP8266
Вступ
KomcatKit.V1 — це комплексна система моніторингу та охорони, розроблена для платформи ESP8266 (Wemos D1 Mini). Система забезпечує контроль температури, виявлення руху, управління реле та інтеграцію з Telegram для дистанційного моніторингу та керування.
Основні компоненти
- Моніторинг температури — DS18B20 датчик з тривогами
- Виявлення руху — HC-SR501 PIR датчик
- Telegram інтеграція — Дистанційне керування
Основні можливості
Функції моніторингу
- 🌡️ Вимірювання температури (DS18B20)
- 🔔 Температурні тривоги (вище/нижче порогу)
- 👁️ Виявлення руху (HC-SR501)
- 🛡️ Режим охорони з сповіщеннями
- 📈 Лічильник спрацьовувань датчика
Мережеві можливості
- 📶 STA режим (підключення до роутера)
- 📡 AP режим (точка доступу)
- 🔄 Автоматичне перепідключення
- 🌐 Веб-інтерфейс налаштувань
- 🔒 HTTP Basic Auth авторизація
Telegram Bot
- 📨 Миттєві сповіщення
- ⌨️ Інтерактивне меню
- 🎛️ Дистанційне керування
- 🔌 Керування реле
Збереження даних
- 💾 EEPROM зберігання налаштувань
- 🛡️ CRC32 перевірка цілісності
- ⏪ Збереження стану охорони
- ↩️ Фабричне скидання
Апаратна частина
Підключення контактів
| Контакт | Пристрій | Функція | Примітка |
|---|---|---|---|
| D2 | Реле | Керування навантаженням | Active HIGH |
| D4 | LED (вбудований) | Індикація статусу | Active LOW (інвертований) |
| D5 | GND (датчик руху) | Спільний GND | Живлення HC-SR501 |
| D6 | HC-SR501 | Датчик руху (PIR) | NO/NC типи |
| D7 | DS18B20 | Датчик температури | OneWire протокол |
| D8 | Кнопка Reset | Скидання налаштувань | Утримати 5 сек |
DS18B20
- Діапазон: -55°C до +125°C
- Точність: ±0.5°C
- Роздільна здатність: 12 біт
- Потрібен резистор 4.7kΩ між DATA та VCC
HC-SR501
- Живлення: 5V DC
- Кут огляду: 120°
- Дальність: 3-7 м (регулюється)
- Налаштування: Time delay, Sensitivity
WiFi налаштування
Режими роботи
STA режим
Підключення до існуючої WiFi мережі роутера.
- Статичний IP або DHCP
- Доступ до веб-інтерфейсу
- Telegram сповіщення активні
AP режим
Створення точки доступу "WemosKit".
- IP за замовчуванням: 192.168.4.1
- Налаштування через веб-інтерфейс
- Автоматичний пошук STA мережі
Алгоритм підключення
- Спроба STA підключення — при старті система намагається підключитися до збереженої мережі (таймаут 15-25 сек).
- Перехід в AP режим — якщо STA недоступний → запуск точки доступу "WemosKit".
- Фоновий пошук STA — кожні 30 сек перевірка доступності роутера (AP залишається активним).
- Автоматичне відновлення — при успішному підключенні → AP вимикається, Telegram повідомлення.
DHCP vs Статичний IP
- DHCP режим: Встановіть IP: 0.0.0.0 або залиште порожнім. Таймаут DHCP: 25 секунд
- Статичний IP: Вкажіть IP, Gateway, DNS, Subnet у веб-інтерфейсі. Швидше підключення, стабільний IP
Telegram інтеграція
Створення бота
- Відкрийте @BotFather в Telegram
- Надішліть
/newbot - Вкажіть ім'я бота
- Отримайте токен
Отримання Chat ID
- Напишіть боту будь-яке повідомлення
- Перейдіть на
api.telegram.org/botTOKEN/getUpdates - Знайдіть
"chat":{"id":XXXXXX - XXXXXX — це ваш Chat ID
Типи повідомлень
Старт системи
При включенні живлення
- Час запуску
- IP адреса
- Температура
- Статус охорони
WIFI відновлено
При відновленні з'єднання
- Час відновлення
- Новий IP
Температурна тривога
Кожні 20 секунд
- Поточна температура
- Поріг тривоги
Система тривог
Налаштування
Веб-інтерфейс
Доступ до налаштувань через браузер: http://[IP-адреса]/
Авторизація: За замовчуванням: admin / admin123. Рекомендується змінити при першому налаштуванні!
Параметри налаштувань
| Параметр | Опис | За замовчуванням |
|---|---|---|
| SSID | Назва WiFi мережі | ssid |
| Пароль WiFi | Пароль від мережі (мін. 8 символів) | pass |
| Статичний IP | IP адреса або 0.0.0.0 для DHCP | 0.0.0.0 (DHCP) |
| Шлюз | IP адреса роутера | 192.168.1.1 |
| DNS | DNS сервер | 8.8.8.8 |
| Маска підмережі | Subnet mask | 255.255.255.0 |
| Пароль AP | Пароль точки доступу (мін. 8 символів) | 12345678 |
| Логін веб | Логін для веб-інтерфейсу | admin |
| Пароль веб | Пароль для веб-інтерфейсу (мін. 6 символів) | admin123 |
| Токен бота | Telegram Bot Token | — |
| Chat ID | ID чату Telegram | — |
| Поріг температури | Температура тривоги (-50...100°C) | 30.0°C |
| Напрямок тривоги | ⇧ вище порогу / ⇩ нижче порогу | ⇧ (вище) |
| Тип датчика | NO (норм. відкритий) / NC (норм. замкнутий) | NO |
Фабричне скидання
Як виконати скидання
- Утримуйте кнопку на контакті D8 (замкнути на GND)
- Тримайте 5 секунд
- Відпустіть — система перезавантажиться
Увага: Всі налаштування будуть скинуті до заводських!
Telegram команди
Інтерактивне меню
| Команда | Дія |
|---|---|
/start |
Показати меню |
/status |
Повний статус системи |
/guard |
Увімкнути/вимкнути охорону |
/temp |
Температура / керування тривогою |
/relay |
Перемкнути реле |
/help |
Довідка |
/hide |
Сховати клавіатуру |
Детальний опис команд
💢 Статус
Показує повну інформацію:
- Статус охорони та час роботи
- Стан датчика руху
- Лічильник спрацьовувань
- Стан реле
- Температура та поріг
🌡️ Температура
Показує температуру та поріг. При активній тривозі: перше натискання → пригнічення, повторне → відновлення.
🔒 Охорона
Перемикає режим охорони:
- ON: Датчик руху активний
- OFF: Тривоги вимкнені
Стан зберігається в EEPROM
⚡ Реле
Перемикає реле:
- ON: Реле увімкнено
- OFF: Реле вимкнено
Керування навантаженням
Усунення проблем
Часті проблеми та рішення
📶 ESP не підключається до WiFi
- Перевірте SSID та пароль (чутливі до регістру)
- Переконайтеся що роутер працює на 2.4 GHz (не 5 GHz)
- Спробуйте DHCP замість статичного IP
- Перевірте силу сигналу WiFi
- Виконайте фабричне скидання
✈️ Telegram бот не відповідає
- Перевірте правильність токена бота
- Перевірте Chat ID (має бути число, не @username)
- Переконайтеся що WiFi підключено
- Перевірте доступ до api.telegram.org
- Напишіть боту /start для активації
🌡️ Температура показує "Помилка" або "Датчик відсутній"
- Перевірте підключення DS18B20 (D7)
- Перевірте pull-up резистор 4.7kΩ
- Перевірте живлення датчика (3.3V)
- Спробуйте інший датчик
- Перевірте цілісність проводів
🚶 Датчик руху не спрацьовує
- Перевірте живлення HC-SR501 (5V)
- Налаштуйте SENSITIVITY на датчику
- Встановіть TIME DELAY на мінімум
- Перевірте правильність типу датчика (NO/NC)
- Переконайтеся що охорона активована
🔄 ESP не перепідключається після вимкнення роутера
- Оновіть прошивку до V4.2.7+
- Перевірте що AP режим запускається
- При DHCP збільште таймаут до 25 сек
- Додайте бібліотеку ESP8266Ping для ping перевірки
- Перевірте Serial Monitor логи
🌐 Не вдається відкрити веб-інтерфейс
- Перевірте що ви в правильній мережі
- Використовуйте http:// не https://
- Перевірте логін/пароль (admin/admin123)
- Спробуйте підключитися через AP режим
- Перевірте IP адресу в Telegram повідомленні
Serial Monitor
Для діагностики підключіть ESP через USB та відкрийте Serial Monitor (115200 бод).
// Типові лог повідомлення
// Успішний старт [WIFI] Підключено: MyNetwork, IP: 192.168.1.100 [TELEGRAM] ✅ Бот ініціалізовано успішно [TEMP] Датчик DS18B20 знайдено [NTP] Час синхронізовано
// Проблема WiFi [WIFI] ❌ Втрата з'єднання (status: 6) [WIFI] Без з'єднання 30 сек, спроб: 6 [AP] Точка доступу запущена: WemosKit
// Проблема температури [TEMP] Датчик DS18B20 не знайдено // або 🌡️ Температура: Помилка