Arduino

технологии

Климат-контроль на основе дешевого обогревателя

Введение

Типы систем обогрева

Если вам нужно реализовать обогрев помещения с использованием электрообогревателя, то вы столкнетесь с выборов покупки одного из 3 видов обогревателей (тут я не рассматриваю профессиональные дорогие системы, а только недорогие решения, доступные в каждом магазине бытовой техники).

Первый: самые дешевые спиральные или масляные обогреватели. В таких обогревателях из настроек - только выбор мощности работы. Работает и греет постоянно с одной и той же температурой. При этом если помещение уже нагрелось, он будет продолжать работать. Плюсы: дешевизна. Минусы: большой расход электроэнергии и невозможность контроля температуры в помещении.

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

Третий тип: самый дорогой тип из рассматриваемых. Позволяет задать как мощность, так и необходимую температуру в помещении, с помощью цифрового блока управления с дисплеем. Отличное решение, позволяет действительно эффективно экономить электроэнергия, очень удобен в использовании. Также обычно имеется режим "непромерзация" - поддержание небольшой плюсовой температуры, если, например, вы живете в загородном доме и требуется уехать на какое-то время. Датчик температуры правда все равно расположен внутри обогревателя, что так или иначе снижает его точность. Решается обычно поправками в программной части блока управления.

Доработка обогревателя блоком управления на Arduino

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

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

Функциональные возможности:

  • быстрый нагрев помещения и поддержание нужной температуры с большой точностью
  • режим "непромерзания"
  • встроеные часы с календарем и датчик влажности
  • запись/просмотр журнала изменений температуры и влажности

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

Подготовка

Итак, нам понадобится:

  • Arduino Nano: 1 2 3
  • Черырехстрочный дисплей (2004) со встроеным I2C модулем: 1 2 3
  • Модуль часов RTC: 1 2
  • Датчик температура/влажность DHT22 (лучше в виде модуля): 1 2 3
  • Реле: 1 2 3
  • 2 кнопки: 1 2 3

Корпус можно сделать любой в зависимости от бюджета и фантазии: из любой ненужной коробки, купить готовый или напечатать на 3d-принтере, если есть такая возможность.

Также нужные любые подходящие провода и батарейка CR2032 для модуля часов.

Из инструментов могут быть полезны:

  • Паяльник (пользуюсь таким давно, идеальный по соотношения цена/качество): 1 2 3
  • Инструмент для зачистки и обжима проводов (фирменный китайский LAOA): 1, 2 3

Сборка

Собираем все по следующей схеме:

Climat control module schema

Примерно так это может выглядеть:

Climat control module

Соответственно высоковольтную сторону реле подключаем на размыкание фазы 220, идущей на обогреватель. А сам обогреватель включаем на нужную нам мощность (чем больше, тем быстрее будет осуществляться нагрев помещения) и, если на нем есть настройка температуры - то ее выкручиваем на максимум.

Код я выложил на github: https://github.com/arduinotech/workshop_station/

Загружаем и проверяем.

Управление модулем

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

Climat control module: screen

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

Требуемая температура меняется с помощью двух кнопок (соответственно увеличивается и уменьшается).

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

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

UPD Добавил отображение времени включения/выключения обогревателя. Чеередуется с историей температуры и влажнности каждые 10 секунд.