Система автоматичного моніторингу рівня води в баку на базі ESP32-C3. Проект включає веб-інтерфейс, інтеграцію з HomeAssistant через MQTT та логування даних.
- Вимірювання відстані до поверхні води ультразвуковим датчиком HC-SR04
- Розрахунок об'єму води в циліндричному баку (літри)
- Аналіз швидкості зміни рівня води (л/хв)
- Прогнозування часу наповнення/спорожнення
- Ковзне вікно для згладжування показань
- Лінійна регресія для точного розрахунку швидкості
- Головна сторінка з поточними показниками (відстань, об'єм, швидкість)
- Графіки історії рівня води (Highcharts)
- Файловий менеджер для керування файлами на LittleFS
- Завантаження логів у форматі CSV
- Аутентифікація Digest Auth для захисту
- Автоматичне виявлення (MQTT Discovery)
- Сенсори:
- Відстань до води (см)
- Об'єм води (л)
- Швидкість зміни (л/хв)
- Прогнозований час (хв)
- Публікація станів кожні 5-10 секунд
- Availability топік для статусу підключення
- Автоматичне логування об'єму кожні 10 хвилин
- Синхронізація часу через NTP
- Збереження на LittleFS у форматі CSV
- Веб-перегляд з графіками
- ElegantOTA для оновлення прошивки через веб-інтерфейс (
/update)
- ESP32-C3 - основний контролер
- HC-SR04 - ультразвуковий датчик відстані
HC-SR04:
TRIG -> GPIO 7
ECHO -> GPIO 6
- Живлення: Датчик обов'язково потребує 5В. При живленні від 3.3В він працює нестабільно або видає
Pulse Timeout. - Мертва зона: Становить близько 20-25 см. Якщо рівень води ближче, датчик може видавати невірні дані.
- Дільник напруги: Оскільки Ехо-сигнал має амплітуду 5В, а ESP32-C3 працює з 3.3В, використання дільника (1к та 2к Ом) на піні Echo є обов'язковим для захисту контролера.
Тип: Циліндричний
Діаметр: 50 см
Дно (поріг): 115 см (відстань від датчика)
Верх (поріг): 45 см (відстань від датчика)Налаштування WiFi зберігаються в secrets.h. Підтримується mDNS hostname: tank-monitor.local.
/- головна сторінка/sensor_data- JSON з даними сенсорів/logs- список логів/api/status- повний статус системи/files- файловий менеджер/update- OTA оновлення
WaterTank/
├── WaterTank.ino # Головний файл
├── Constants.h # Константи та налаштування бака
├── Config.h/cpp # Збереження конфігурації
├── SensorMonitor.h/cpp # Робота з HC-SR04
├── TankMonitor.h/cpp # Розрахунки об'єму та швидкості
├── PagesHandlers.h/cpp # Обробники веб-сторінок
├── Log.h/cpp # Логування даних
├── MqttManager.h/cpp # MQTT інтеграція
├── html_templates.h # HTML шаблони
└── README.md # Цей файл
- Створіть
secrets.hна основіsecrets.h.example. - Налаштуйте параметри бака в
Constants.h. - Виберіть плату
ESP32C3 Dev Moduleв Arduino IDE. - Прошийте пристрій.
- ✅ Видалено всю логіку керування реле та насосами.
- ✅ Проект перетворено на чисту систему моніторингу.
- ✅ Оновлено розрахунки для циліндричного бака (діаметр 50см).
- ✅ Очищено веб-інтерфейс від зайвих елементів.
- ✅ Додано WiFiManager та ESPWebFileManager.
- ✅ Базовий моніторинг бака.