Умный дом #7: ESP32 — тёплый пол с автоматическим регулированием температуры по DS18B20 и WEB-управлением

Тёплый пол, управляемый ESP32, — это удобный и экономичный способ поддерживать комфорт в помещении. В этой статье мы соберём систему на базе датчика DS18B20 (цифровой термодатчик 1-Wire), реле/SSR для включения нагревательного контура и минималистичного WEB-интерфейса. Реализуем автоматическое регулирование по уставке (setpoint) с гистерезисом, ручной режим, ограничения по максимальной температуре пола и антидребезг включений (минимальные паузы между переключениями). Вы получите полностью рабочий код и практические рекомендации по безопасности и калибровке.

Список оборудования и компонентов

  • ESP32 DevKit (с поддержкой Wi-Fi).
  • DS18B20 — цифровой датчик температуры (желательно в водозащищённом исполнении на кабеле), работает по шине 1-Wire.
  • Подтягивающий резистор 4.7 кОм между линией данных DS18B20 и 3.3 В.
  • Реле/SSR для нагревателя:
    • Для плёночного/кабельного пола на 220 В рекомендуем твердотельное реле (SSR) с управлением от 3–32 В DC и соответствующим током/мощностью. Обязательно ставьте УЗО/дифавтомат и соблюдайте ПУЭ!
    • Для низковольтных систем (например, 12/24 В) — MOSFET/реле по паспорту нагрузки.
  • Нагревательный контур (инфракрасная плёнка/кабель/мат) — по проекту помещения и расчётной мощности.
  • Блок питания ESP32 (5 В, 1 А), коммутационная арматура, клеммы, DIN-бокс/корпус.
  • По желанию: второй датчик DS18B20 для измерения температуры воздуха (тогда можно строить комбинированные алгоритмы).

Схема подключения и принцип работы

Датчик DS18B20 подключается к одному GPIO ESP32 по интерфейсу 1-Wire. В линию данных ставится подтягивающий резистор 4.7 кОм к 3.3 В (обязательно). Нагреватель управляется через реле/SSR от GPIO. ESP32 периодически считывает температуру пола и сравнивает её с уставкой. В автоматическом режиме включение происходит при падении ниже (уставка − гистерезис), отключение — при достижении (уставка + гистерезис). Встроены: ограничение максимальной температуры пола и минимальные интервалы между переключениями, чтобы избежать «дёргания» relе/SSR.

Сигнал Пин ESP32 Примечание
DS18B20 Data GPIO4 (пример) Подтяжка 4.7 кОм к 3.3 В, общий GND
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, чтобы не «дёргать» реле/SSR слишком часто.
  • Лимит максимальной температуры пола: maxFloorC — твёрдая отсечка, выше которой нагрев принудительно отключается независимо от режима.
  • WEB-интерфейс: корневая страница показывает температуру, режим, состояние нагрева, уставку; позволяет менять параметры и режим (/mode?m=auto|manual) и вручную включать/выключать нагрев (/heat?cmd=1|0) в ручном режиме. Статус обновляется опросом /status каждые 2 с.
  • Постоянные настройки: уставка, гистерезис, смещение и потолок температуры сохраняются в NVS (Preferences) и восстанавливаются при старте.

Применение и расширение проекта

  • Комбинированное управление «пол+воздух»: добавьте второй DS18B20 для измерения воздуха и переключайтесь между режимами или используйте минимальный/максимальный приоритет (например, не греть пол выше 29 °C, если воздух уже достиг +22 °C).
  • Расписание: ночной/дневной профили уставки (например, днём 28 °C, ночью 26.5 °C). Можно хранить 2–4 пресета в NVS и переключать по времени.
  • MQTT и Home Assistant: публикуйте температуру/состояние в брокер, управляйте уставкой и режимами из HA, рисуйте графики.
  • Графики и логирование: сохраняйте значения T/SP/события в InfluxDB, визуализируйте в Grafana. Это полезно для подбора гистерезиса и интервалов minOn/minOff.
  • Защита напольного покрытия: для ламината/ПВХ ограничьте maxFloorC и используйте точный датчик в гофре, расположенный на равном удалении от нагревательных зон.
  • Аппаратная безопасность: для 220 В обязательны УЗО/дифавтомат, кабель нужного сечения, сертифицированный SSR или силовое реле на DIN-рейке, клеммы и термостойкая проводка.
  • Фильтрация питания и помех: для длинных линий датчика используйте экранированный кабель и общую «землю», при необходимости — RC-фильтр и программную медиану вместо простого среднего.

Заключение

Мы реализовали интеллектуальный термостат тёплого пола на ESP32 с датчиком DS18B20, управлением через SSR/реле и удобным WEB-интерфейсом. В проект встроены практичные функции: гистерезис, минимальные интервалы переключений, лимит максимальной температуры, сохранение параметров в NVS. Система легко расширяется — от MQTT/HA до расписаний и логирования. Соблюдайте требования электробезопасности и рекомендации производителей покрытий.

Нужен индивидуальный проект под ваши условия — от подбора схемы и датчиков до разработки печатных плат и прошивки? Мы можем помочь. Реализуем надёжное решение на ESP32 и изготовим платы под ваши задачи. Примеры работ смотрите в нашем портфолио.

<< Проекты << Все товары >> Статьи, уроки >>

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Радиатор для транзистора 21х15х10мм

Радиатор для транзистора 21х15х10мм

Радиатор алюминиевый для пассивного охлаждения различных полупроводниковых силовых компонентов: тран..

13.58грн.

ESP32 и Telegram bot: удалённый мониторинг

ESP32 и Telegram bot: удалённый мониторинг

ESP32 и Telegram bot: удалённый мониторинг Современные IoT-системы всё чаще используют облачные..

Создание простого таймера на ESP32: пример периодического вызова функции

Создание простого таймера на ESP32: пример периодического вызова функции

Создание простого таймера на ESP32: пример периодического вызова функции При разработке проектов ..

Модуль повербанка 4,2В на 2 USB выхода

Модуль повербанка 4,2В на 2 USB выхода

К данному модулю нужно только подключить литий-ионный аккумулятор 3,7-4,2В, закрыть в корпус и повер..

133.25грн.

Контроллер WeMos D1 mini ESP8266

Контроллер WeMos D1 mini ESP8266

Очень маленькая и дешевая плата контроллера с WiFi связью на борту. Не может похвастаться множеством..

112.31грн.