Розумний дім #7: ESP32 — тепла підлога з автоматичним регулюванням за DS18B20 та WEB-керуванням
Керування «теплою підлогою» на ESP32 — це гнучке, економне та доступне рішення для підтримання комфортної температури в кімнаті. У цьому матеріалі ми зберемо термостат на базі цифрового датчика температури DS18B20 (1-Wire), реле/SSR для комутації нагрівального контуру та мінімалістичного WEB-інтерфейсу. Реалізуємо автоматичний режим із уставкою (setpoint) та гістерезисом, ручний режим, ліміт максимальної температури підлоги, а також мінімальні паузи між перемиканнями, щоб не «смикати» реле/SSR. Ви отримаєте повністю робочий код і практичні рекомендації з підключення, калібрування та безпеки.
Список обладнання та компонентів
- ESP32 DevKit з підтримкою Wi-Fi (будь-яка сумісна плата).
- DS18B20 у термозахищеному виконанні на кабелі (бажано) для вимірювання температури підлоги (у гофрі).
- Підтягувальний резистор 4.7 кОм між лінією Data DS18B20 та 3.3 В (обов’язково для шини 1-Wire).
- Реле/SSR для нагрівача:
- Для нагрівальних матів/плівки 220 В — твердотільне реле (SSR) з керуванням 3–32 В DC і запасом по струму/потужності; обов’язково УЗО/дифавтомат.
- Для низьковольтних систем (12/24 В) — силове реле або MOSFET-ключ згідно з паспортом навантаження.
- Нагрівальний контур (інфрачервона плівка/кабель/мат) відповідно до проєкту приміщення.
- Блок живлення для ESP32 (5 В, ≈1 А), клеми, DIN-бокс/корпус, дроти потрібного перерізу.
- За бажанням: другий DS18B20 для вимірювання температури повітря та комбінованих алгоритмів («підлога + повітря»).
Схема підключення та принцип роботи
DS18B20 під’єднується до одного GPIO ESP32 по 1-Wire: лінія Data → вибраний GPIO, між Data і 3.3 В — резистор 4.7 кОм (pull-up), загальні GND з ESP32. Керування нагрівачем здійснюється GPIO через SSR/реле. Контролер періодично зчитує температуру підлоги, порівнює з уставкою і вмикає/вимикає нагрів за правилами гістерезису. Додаємо обмеження максимальної температури підлоги та мінімальні інтервали між перемиканнями, щоб уникати частих «клацань» та перегріву покриття.
| Сигнал | Пін ESP32 | Примітка |
|---|---|---|
| DS18B20 Data | GPIO4 (приклад) |
Підтяжка 4.7 кОм до 3.3 В, спільна «земля» |
| Керування SSR/реле | GPIO23 (приклад) |
Багато модулів реле — active LOW; перевірте ваш |
| Живлення ESP32 | 5 В | Стабільний БЖ 5 В, ≥1 А |
Безпека: для мережі 220 В силову частину слід монтувати виключно за нормами електробезпеки (корпуси, заземлення, захист УЗО/дифавтомат, клеми, переріз кабелів). Датчик підлоги розміщуйте в гофрі для можливості заміни. Для ламінату/ПВХ виробники часто рекомендують обмеження температури 27–32 °C — налаштовуйте максимум відповідно.
Приклад коду (ESP32 + DS18B20 + SSR/реле + WEB)
Скетч нижче реалізує: читання DS18B20, авто/ручний режим, гістерезис, ліміт максимальної температури, мінімальні паузи між вмиканням/вимиканням, а також веб-сторінку зі статусом і налаштуваннями. Параметри (уставка, гістерезис, зсув калібрування, максимум, режим) зберігаються у NVS і переживають перезапуск.
Коротке пояснення коду
- Датчик DS18B20: зчитується бібліотекою DallasTemperature (шина 1-Wire).
readTempC()повертає температуру з урахуванням зсувуoffsetC; у разі помилки —NaN, і нагрів примусово вимикається. - Алгоритм термостата: уставка
setpointCі гістерезисhysteresisCзадають пороги вмикання/вимикання: вмикаємо приT ≤ SP − HYS, вимикаємо приT ≥ SP + HYS. Мінімальні інтервали minOn/minOff запобігають частим перемиканням. - Обмеження максимальної температури підлоги: параметр
maxFloorC— «тверда» межа безпеки, вище якої нагрів заборонений у будь-якому режимі. - WEB-інтерфейс: головна сторінка показує температуру, режим, стан нагріву, уставку; дозволяє змінювати параметри (
/set) та режим (/mode?m=auto|manual), а також у ручному режимі вмикати/вимикати нагрів (/heat?cmd=1|0). Оновлення стану — запитом/statusкожні 2 секунди. - Постійні налаштування: уставка, гістерезис, зсув і максимум зберігаються в NVS (
Preferences) й відновлюються під час старту.
Застосування та розширення проєкту
- Комбіноване керування «підлога + повітря»: додайте другий DS18B20 для повітря й реалізуйте пріоритети (наприклад, не гріти підлогу вище 29 °C, якщо повітря вже досягло 22 °C).
- Профілі за розкладом: денний/нічний профілі уставки (наприклад, 28.0/26.5 °C); зберігайте 2–4 пресети в NVS і перемикайте за часом.
- MQTT та Home Assistant: публікація температури/стану, віддалена зміна уставки/режиму, сценарії, історія та графіки.
- Логування й аналітика: запис T/SP/подій у InfluxDB та візуалізація у Grafana для тонкого підбору гістерезису й інтервалів.
- Захист підлогового покриття: для ламінату/ПВХ встановіть безпечний
maxFloorC, датчик у гофрі — посередині «теплових зон». - Апартна безпека: для 220 В — УЗО/дифавтомат, сертифікований SSR або силове реле на DIN-рейці, термостійка проводка, закриті корпуси.
- Довгі лінії 1-Wire: екранірований кабель, «зірка» небажана; для складної топології використовуйте знижену швидкість та якісний pull-up.
- Калібрування: перевірте offset за контрольним термометром; для енергоощадності збільшуйте гістерезис і інтервали minOn/minOff.
Висновок
Ми реалізували інтелектуальний термостат теплої підлоги на ESP32 з датчиком DS18B20, керуванням через SSR/реле та зручним WEB-інтерфейсом. Проєкт містить практичні функції: гістерезис, мінімальні інтервали перемикання, ліміт максимальної температури, збереження параметрів у NVS. Рішення легко розширити — від MQTT/HA до розкладів і логування. Дотримуйтеся правил електробезпеки й рекомендацій виробників покриття.
Потрібне індивідуальне рішення — розробка схеми, друкованої плати, прошивки та корпусу під ваші умови? Звертайтесь: ми створюємо надійні системи на ESP32 і виготовляємо плати під завдання клієнта. Подивіться приклади в нашому портфоліо і напишіть нам, щоб обговорити проєкт.





