Розумний дім #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 і виготовляємо плати під завдання клієнта. Подивіться приклади в нашому портфоліо і напишіть нам, щоб обговорити проєкт.

<< Проекти << Усі товари >> Статті, уроки >>

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Arduino функції та як з ними боротися

Arduino функції та як з ними боротися

Ця стаття із серії уроки Arduino. Тема цього уроку: Arduino функції і як з ними боротися.Ми дізнаємо..

Arduino 3 піни на 6 світлодіодів чарліплексинг

Arduino 3 піни на 6 світлодіодів чарліплексинг

ЧарліплексингПропоную вашій увазі корисне робоче рішення, як за допомогою трьох пінів контролера нез..

Розумний дім #4: Розумна розетка на ESP32

Розумний дім #4: Розумна розетка на ESP32

Розумний дім #4: Розумна розетка на ESP32 Розумна розетка — один із найбільш затребуваних е..

Arduino SIM800 вхідний дзвінок

Arduino SIM800 вхідний дзвінок

Привіт фанам GSM автоматики! Підпишіться, щоб нічого не пропустити, і почнемо черговий випуск роботи..

Мініатюрний  WeMos D1 mini ESP8266

Мініатюрний WeMos D1 mini ESP8266

Дуже маленька і дешева плата WeMos D1 mini контролера з WiFi зв'язком на борту. Має не багато в..

112.31грн.