Arduino управление теплыми полами

Arduino управление теплыми полами

Задача

Этот проект является частью более обширного проекта Дом, который, в свою очередь, входит в проект Умная дача. 10 помещений дома отапливаются тёплыми водяными полами, работой которых управляет AMS сервер (см. описание проектов по ссылкам выше). В процессе управления работой полов участвуют изощрённые алгоритмы, одной из функций которых является энергосбережение и снижение затрат на отопление дома.

Для ещё большей эффективности отопительной системы было принято решение добавить в неё отдельный контроллер управления контуром тёплых полов. Этот контроллер предназначен для управления забором горячей воды у основного контура и выводом холодной воды в основной контур в зависимости от настроек системы, показаний датчиков и внешних условий.

Реализация

Контроллер контура тёплых полов выполнен в виде беспроводного nRF24 блока. Связь с базовым контроллером Дома осуществляется по беспроводному каналу. Контроллер является автономным, связь с «базой» ему нужна только для изменения его режимов работы и настроек, а также для отображения текущего состояния контроллера в интерфейсе системы.

Оборудование

Оборудование контроллера контура тёплых полов:

  • Контроллер Arduino Pro Mini
  • Беспроводной модуль nRF24L01
  • Цифровые датчики температуры DS18B20 (4 шт.)
  • Реле коммутации нагрузок (2 шт.)
  • И прочее оборудование

Топология сети

На схеме представлен фрагмент топологии сети Дома в которую входит контроллер контура тёплых полов. С полной схемой можно ознакомиться на странице описания проекта Дом.

Алгоритмы управления

Алгоритм управления работой системы отопления довольно изощрённый и использует множество формул и различных констант и описание этих формул выходит за рамки этой статьи. Приведём здесь только скриншот настройки базового алгоритма, который учитывает такие параметры, как теплопотери здания, нелинейность теплоотдачи приборов отопления, температура наружного воздуха и т. д.

Интерфейс управления

Система управления тёплыми полами в доме представляет собой большой и развитый комплекс со множеством настроек (см. основной проект Дом). Отдельно устанавливаются требуемые температуры в помещениях, режимы отопления и т. д. Две нижние плашки «Тёплый пол» и «Проработка клапанов» относятся непосредственно к рассматриваемому контроллеру.

Беспроводной nRF24 контроллер

Контроллер управления контуром тёплого пола подключён к базовому контроллеру дома по беспроводному nRF24 каналу. Поскольку соединение беспроводное, то для нормальной работы системы протокол связи должен обеспечивать гарантию доставки пакетов и следить за качеством связи.

В интерфейс системы выводятся данные о нахождении удалённого контроллера на связи, информация о последнем обновлении данных и количестве ошибок беспроводной связи. Это позволяет одним взглядом оценить состояние дел с беспроводной связью с контроллером.

В случае проблем со связью окно контроллера становится серым и в нём показываются данные о том, сколько времени прошло с момента последней связи с контроллером и количестве ошибок за текущий день.

Настройки контроллера

В первом окне показываются текущие расчётные величины, вычисленные встроенным в контроллер алгоритмом управления контуром тёплых полов, данные с датчиков, подключённых контроллеру и данные о текущем состоянии реле. То есть вся информация о состоянии системы видна как на ладони.

Читайте также:  Что такое трубный регистр отопления

Во втором окне можно задать исходные данные для работы алгоритма регулирования. Все выходные значения пересчитываются в реальном времени, что удобно для подбора оптимальных значений для конкретных условий эксплуатации системы. Все вводимые данные сохраняются во внутренней памяти контроллера.

Проработка клапанов

Для борьбы с известной проблемой застоя клапанов в контроллер внедрена подсистема их проработки, т. е. принудительного открывания и закрывания. Эта подсистема имеет два режима работы — автоматический и ручной. В автоматическом режиме задаётся количество профилактических включений в месяц, в ручном режиме процедура проработки запускается нажатием кнопки в интерфейсе.

Для более эффективной работы можно задать такие параметры как количество импульсов, их продолжительность и периодичность.

Информационная панель

В информационную панель выводится индикатор работы контроллера «COF». На скриншоте он жёлтого цвета, что говорит о его работе в данный момент и нахождении на связи.

Заключение

Просто замечательный проект, который реализует работу сложных алгоритмов по управлению контуром тёплых полов, даёт возможность настраивать работу системы в интерактивном режиме через веб-интерфейс, позволяет снижать энергозатраты на отопление дома и экономить денежные средства.

Arduino.ru

Погодозависимое управление водяным тёплым полом

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

200кг и свободен).

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Наблюдал четыре дня. На улице постоянно скачет температура (фиолетовый график, было от -15°С до +4°С). День был очень сильный ветер — дом конкретно выстужало.

А по графику дома (черный) более менее стабильно, отклонение от -0.4° до +0.7°.

Попробую увеличить Ki до 0.5 (с ограничением -10 > istate Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Наблюдал трое суток. Неплохо.

Но решил еще добавить дифф.составляющую. Kd=50

После этого 16 суток ничего не менял и не трогал. Разное было — отключение электричества, яркое солнце+оттепель (даже отопление отключал на пару суток), сильные ветры, куча народу в доме.

На улице перепады с -13°С до +10°С

Дома с +25.5° до 26.3° (заслуга солнца в южные окна). Ничего не регулирую в котельной уже месяц. Скоро уже отопление отключать.

Мой вердикт — задумка удалась! Возможно, добавил бы еще выключение циркуляционных насосов при перегреве весенним солнцем. Но это уже после проверки новым отопительным сезоном. А пока — надо придумывать для самоделки корпус, подбирать БП и красивый настенный шкаф.

Arduino управление теплыми полами

Дельта принтеры крайне требовательны к точности изготовления комплектующих (геометрия рамы, длины диагоналей, люфтам соединения диагоналей, эффектора и кареток) и всей геометрии принтера. Так же, если концевые выключатели (EndStop) расположены на разной высоте (или разный момент срабатывания в случае контактных концевиков), то высота по каждой из осей оказывается разная и мы получаем наклонную плоскость не совпадающая с плоскостью рабочего столика(стекла). Данные неточности могут быть исправлены либо механически (путем регулировки концевых выключателей по высоте), либо программно. Мы используем программный способ калибровки.
Далее будут рассмотрены основные настройки дельта принтера.
Для управления и настройки принтера мы используем программу Pronterface.
Калибровка принтера делится на три этапа:

Читайте также:  Максимально увеличить теплоотдачу батареи центрального отопления с физической точки зрения
1 Этап. Корректируем плоскость по трем точкам

Выставление в одну плоскость трех точек — A, B, C (расположенных рядом с тремя направляющими). По сути необходимо уточнить высоту от плоскости до концевых выключателей для каждой из осей.
Большинство (если не все) платы для управления трехмерным принтером (В нашем случае RAMPS 1.4) работают в декартовой системе координат, другими словами есть привод на оси: X, Y, Z.
В дельта принтере необходимо перейти от декартовых координат к полярным. Поэтому условимся, что подключенные к двигателям X, Y, Z соответствует осям A, B, C.(Против часовой стрелки начиная с любого двигателя, в нашем случае смотря на логотип слева — X-A, справа Y-B, дальний Z-C) Далее при слайсинге, печати и управлении принтером в ручном режиме, мы будем оперировать классической декартовой системой координат, электроника принтера сама будет пересчитывать данные в нужную ей систему. Это условность нам необходима для понятия принципа работы и непосредственной калибровки принтера.

Точки, по которым мы будем производить калибровку назовем аналогично (A, B, C) и позиция этих точек равна A= X-52 Y-30; B= X+52 Y-30; C= X0 Y60.

Алгоритм настройки:

  1. Подключаемся к принтеру. (В случае “крагозяб” в командной строке, необходимо сменить скорость COM порта. В нашем случае с 115200 на 250000 и переподключится)

    После чего мы увидим все настройки принтера.
  2. Обнуляем высоты осей X, Y, Z командой M666 x0 y0 z0.
    И сохраняем изменения командой M500. После каждого изменения настроек необходимо нажать home (или команда g28), для того что бы принтер знал откуда брать отсчет.
  3. Калибровка принтера производится “на горячую”, то есть должен быть включен подогрев стола (если имеется) и нагрев печатающей головки (HotEnd’а) (Стол 60град., сопло 185 град.) Так же нам понадобится щуп, желательно металлический, известных размеров. Для этих задач вполне подойдет шестигранный ключ (самый большой, в нашем случае 8мм, он предоставляется в комплекте с принтерами Prizm Pro и Prizm Mini)
  4. Опускаем печатающую головку на высоту (условно) 9мм (от стола, так, что бы сопло еле касалось нашего щупа, т.к. высота пока что не точно выставлена.) Команда: G1 Z9.
  5. Теперь приступаем непосредственно к настройке наших трех точек.
    Для удобства можно вместо g- команд создать в Pronterface четыре кнопки, для перемещения печатающей головки в точки A, B, C, 0-ноль.
  • Последовательно перемещаясь между тремя точками (созданными ранее кнопками или командами) выясняем какая из них находится ниже всего (визуально) и принимает эту ось за нулевую, относительно нее мы будем менять высоту остальных двух точек.
  • Предположим, что точка A у нас ниже остальных. Перемещаем головку в точку B(Y) и клавишами управления высотой в Pronterface опускаем сопло до касания с нашим щупом, считая величину, на которую мы опустили сопло (в лоб считаем количество нажатий на кнопки +1 и +0.1)
    Далее командой меняем параметры высоты оси Y: M666 Y <посчитанная величина>
    M666 Y0.75
    M500
    G28
  • Ту же операцию проделываем с оставшимися осями. После чего следует опять проверить высоту всех точек, может получится, что разброс высот после первой калибровки уменьшится, но высота все равно будет отличатся, при этом самая низкая точка может изменится. В этом случае повторяем пункты 6-7.
  • 2 Этап. Исправляем линзу

    После того как мы выставили три точки в одну плоскость необходимо произвести коррекцию высоты центральной точки. Из за особенности механики дельты при перемещении печатающей головки между крайними точками в центре она может пройти либо ниже либо выше нашей плоскости, тем самым мы получаем не плоскость а линзу, либо вогнутую либо выпуклую.

    Корректируется этот параметр т.н. дельта радиусом, который подбирается экспериментально.

    Калибровка:

    1. Отправляем головку на высоту щупа в любую из трех точек стола. Например G1 Z9 X-52 Y-30
    2. Сравниваем высоту центральной точки и высоту точек A,B,C. (Если высота точек A, B, C разная, необходимо вернутся к предыдущей калибровки.)
    3. Если высота центральной точки больше остальных, то линза выпуклая и необходимо увеличить значение дельта радиуса. Увеличивать или уменьшать желательно с шагом +-0,2мм, при необходимости уменьшить или увеличить шаг в зависимости от характера и величины искривления (подбирается экспериментально)
    4. Команды:
      G666 R67,7
      M500
      G28
    5. Подгоняем дельта радиус пока наша плоскость не выровняется
    3 Этап. Находим истинную высоту от сопла до столика

    Третьим этапом мы подгоняем высоту печати (от сопла до нижней плоскости — столика) Так как мы считали, что общая высота заведомо не правильная, необходимо ее откорректировать, после всех настроек высот осей. Можно пойти двумя путями решения данной проблемы:
    1 Способ:
    Подогнав вручную наше сопло под щуп, так что бы оно свободно под ним проходило, но при этом не было ощутимого люфта,

    • Командой M114 выводим на экран значение фактической высоты нашего HotEnd’а
    • Командой M666 L получаем полное значение высоты (Параметр H)
    • После чего вычитаем из полной высоты фактическую высоту.
    • Получившееся значение вычитаем из высоты щупа.

    Таким образом мы получаем величину недохода сопла до нижней плоскости, которое необходимо прибавить к полному значению высоты и и записать в память принтера командами:
    G666 H 235.2
    M500
    G28

    2 Способ:
    Второй способ прост как валенок. С “потолка”, “на глаз” прибавляем значение высоты (после каждого изменение не забываем “уходить” в home), добиваясь необходимого значения высоты, но есть шанс переборщить со значениями и ваше сопло с хрустом шмякнется об стекло.

    Как сделать авто калибровку для вашего принтера и что при этом авто калибрует принтер вы узнаете из следующих статей.

    Читайте также:  Расчет потребляемой мощности теплого пола
    Оцените статью