Вконтакте Facebook Twitter Лента RSS

Что можно автоматизировать в доме. Как сделать простую систему автоматизации для дома своими руками. "Умный дом": что это

Улучшать жилище и делать его более комфортным свойственно любому человеку. Вне зависимости от того проживает ли он в малогабаритной квартире-студии или в загородном доме в несколько этажей который окружают гектары приусадебного участка.

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


Чем отличается автоматизация дома от умного дома

Очень многие владельцы недвижимости любое автоматическое или полуавтоматическое устройство, которое выполняет функции по включению/выключению какого-либо прибора или считают элементом «умного дома». Это далеко не так. И даже возможность дистанционного управления отдельными функциями с помощью интернета не делает дом «умным».

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

Поэтому многочисленные фирмы-инсталляторы элементов автоматизации дома не всегда объективно и достоверно доносят до потенциального пользователя-заказчика смысл новшеств.

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

  • Холодильники – полностью автоматические приборы, которые работают по жесткой программе;
  • Кондиционеры не требуют вмешательства извне, чтобы поддерживать заданную температуру;
  • Стиральные машины имеют таймер отсроченного включения;
  • Системы включения/отключения освещения легко управляются реле с фотодиодами, реагирующими на уровень освещенности и так жале.

Создание специализированных каналов управления системами жизнеобеспечения – собственно «умный дом» необходим только в тех случаях, когда жилое помещение функционирует в полностью автономном режиме. К таким относятся загородные дома (коттеджи), где единственным благом цивилизации является подъездная дорога.

Именно в них можно полностью реализовать все преимущества дистанционно управления и контроля.


Автоматизация квартиры

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

Любое произвольное вмешательство своими руками в работу общедомовых сетей жизнеобеспечения совершенно не приветствуется со стороны управляющих компаний. Поэтому реализовать концепцию «умного дома» в многоквартирном доме можно в очень ограниченных масштабах:

  • Установить несколько управляемых дистанционно розеток, к которым подключить устройства, таймером включать/выключать освещение или допотопный утюг, не имеющий реле отключения при перегреве или по времени или другой неавтоматический электроприбор.
  • Принудительно вмешаться в работу автоматики кондиционера или электрического теплого пола полностью отключив их, или, напротив – включив.
  • Автоматизировать закрывание/открывание штор или жалюзи на окнах.
  • Включение/выключение системы аудиовизуального контроля.
Внимание! С установкой скрытых видеокамер или микрофонов, даже в собственном доме нужно быть крайне осторожным. Все без исключения, приборы, не имеющие датчика-сигнализатора о работе, или замаскированные под другие предметы в РФ запрещены к использованию. Их приобретение – уже состав преступления, которое в самом неблагоприятном случае может обернуться реальным сроком лишения свободы.

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

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


Автоматизация частного дома

Большинство загородных домов строятся в пределах выделенных участков для ИЖС и по требованиям благоустройства имеют подвод электрических и газовых сетей. Некоторые поселки более благоустроены и имеют комплексы центрального водоснабжения и канализации.

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

Частный дом может быть в полной мере оснащен системой интеллектуального управления по концепции «умного дома».

Еще на стадии проектирования могут быть заложены элементы автоматизации, связанные:

  1. С электроснабжением (от автономного электрогенератора).
  2. Регулировкой температуры за счет управления газовым/жидкотопливным водонагревательным котлом.
  3. Управлением системой подачи воды (при скважинном/колодезном водоснабжении).
  4. Системой регулирования температуры воздуха в различных помещениях (жилых, подсобных, хозяйственных).
  5. Системой регулирования внутридомового и наружного освещения приусадебного участка.
  6. Управлением системой полива и кормления сельскохозяйственных животных.
  7. Системой визуального контроля внутри и снаружи помещения и обзора придомовой территории.
  8. Возможна реализация аварийного отключения систем газоснабжения и электроснабжения при возникновении аварийных ситуаций.

Для некоторых владельцев, большую часть времени находящихся вне дома, «умный дом» это система автоматизации жилых домов, являющаяся насущной необходимостью.


Выбор системы управления умным домом

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

Наиболее распространенными является путь управления по Wi-Fi каналу. Неудобство заключается в том, что эта функция предназначена для передачи значительных объемов информации и не адаптирована для большинства приборов «умного дома», которые работают с короткими командами: «включить/выключить», «прибавить/убавить», «вверх/вниз» и т. п.

  • Z-Wave – специализированный протоколом управления «умным домом» работающий на частоте 869 МГц и имеющий высокую защищенность от постороннего воздействия и помех.
  • ZigBee – похожий специализированный протокол, специально разработанный для работы устройств в комплекте «умного дома», но использующий другую частоту 2400–2485 МГц.

До сих пор широкая автоматизация жилых домов в РФ буксует из-за высоких цен на оборудование и инсталляцию, наладку и обслуживание оборудования. Ведь оно должно работать круглосуточно 24 часа в неделю без каких-либо сбоев. В противном случае неисправное оборудование умного дома может само стать источником ЧП – пожара, затопления помещения, разморозки систем отопления.

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

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

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

Большинство функций, реализуемых в «умном доме», интересны только в первое время после их установки. Возможность дистанционного визуального контроля удовлетворяет только любопытство владельца помещения, ни сколько не препятствуя действиям злоумышленников, проникших в дом. Гораздо эффективнее система централизованной охраны. Использование функции автоматического открытия/закрытия штор в спальне или возможность регулировать громкость музыки в соседней комнате – настолько сомнительны, что могут заинтересовать только истинных фанатов непрерывного общения с мобильным устройством, вместо физического движения рукой.

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

chouck 4 декабря 2012 в 18:16

От домашней автоматизации и умных домов в общем к конкретному примеру

  • DIY или Сделай сам

Основная причина того что системы домашней автоматизации всё ещё не стали так популярны это акцент на освещении, который обычно делают при их продвижении. Ведь мигать светом (как светодиодами на Ардуине) не вставая с дивана это баловство, которое не имеет никакого практического значения и отталкивает людей от серьёзных мыслях о внедрении и использовании систем домашней автоматизации у себя в домах и квартирах. Мигать светом (на что обычно заточено 90% функционала) никому не нужно а вот например управлять отоплением индивидуально в каждой комнате это удобно и экономит энергию=деньги. Заоблачные цены на сами (копеечные по себестоимости) компоненты готовых продающихся систем домашней автоматизации вместе с ценами на интеграцию их только подливают масла в огонь. Спешу заверить что самым дорогим компонентом у нас будет 20 долларовая Arduino Megа. Если рассматривать вопрос в целом то мне видится только следующий список задач которые имеет практический смысл централизованно автоматизировать:
> управление климатом температурой (отопление/кондиционирование) и влажностью (увлажнитель/осушитель),
> управление естественным освещением (жалюзи, ставни, навесы)
> и управление поливом газонов, цветников и лужаек вокруг дома (если таковые имеются и их таки надо поливать).
Из децентрализованных систем удобно иметь локальную (без центрального управления 1-2 датчика управляющие напрямую включением подсветки) срабатывающую от датчиков движения(присутствия) маломощную светодиодную подсветку лестниц (иногда пола) и частей столов на кухне которые затенены от обычного потолочного освещения навесными шкафами и полками. Эта же подсветка в комбинации с перечисленными выше незаменима ночью когда надо, не разбудив никого и в первую очередь себя, пробраться на кухню (и отрезать там что-то от чего-то и съесть ни с кем не делясь) или в другое заведение не спотыкнувшись об предусмотрительно разбросанные детские игрушки. Также имеет смысл включать датчиками движения основное освещение ТОЛЬКО в технических помещениях: шкафы, кладовки, гараж, прачечные и тп. Датчики движения и централизованные системы не практично использовать для основного освещения в жилых помещениях. Внешняя и декоративное праздничная подсветка дома удобнее всего включается от копеечных готовых блоков с датчиками освещения и/или таймерами. Настоящие охранные системы подключённые к службам реагирования (не просто разбросанные по дому датчики и веб камеры) обычно не имеет смысла смешивать с системами умного дома из многих соображений.

Таким образом начнём с самого актуального. Идеальным объектом является отопление которым можно управлять например: электрическое(батареи на колёсиках в розетку и настенные батареи) и централизованное или не очень отоплением частного дома. В моём примере мы рассмотрим работу с системой Термо Помпы (Heat Pump в северной Америке) с мазутным отоплением по средствам прямого подключения к имеющемуся Блоку Управления (термостату) и дополнительно устройствами. В первой версии системы я использовал устройтва и разетки протокола Х10. Но к сожалению они плохо зарекомендовали себя, изза медленного интерфейса и очень громких счелков при переключении, котрые будили всех домашних. В последствии я перевйл систему на радио разетки, что оказалось гораздо проще и тише чем x10. Эти разетки имеются в огромном асортименте радиочастот и напряжения. Всё это, применимо для огромного множества других систем. Всё началось с того что мой приятель вместе с соседом ненавязчиво капали мне на голову про огромную роль чуда чудного - Arduino в современном обществе и что я как человек умеющий и любящий держать паяльник просто обязан заразиться этой Ардуино манией как можно скорее. Я всячески отмахивался и говорил что область практического (не робото-игрушки) применения её дома очень сомнительна и делать на основе мощного микроконтроллера последовательно загорающиеся светодиодные линейки для подсветки ступенек лестницы (вместо одного сдвигового регистра и генератора) это просто из пушки по воробьям а остальное баловство. Но всё-таки зерно Arduino им удалось заложить в мою голову и как все зёрна с приходом весны и на подступах лета росток начал пробиваться. Я не люблю хобби проекты ради самих проектов. Какая-то практическая сторона должна присутствовать а тем более что ресурсо ($ и время) ёмкие проекты для семейного человека должны ещё иметь высокийWAF (Wife acceptance factor) или как говорит мой Папа его легко легализовать.

И как всегда лень явилась двигателем прогресса. Сидели мы чуть позже полудня на веранде, солнце приятно припекало а в тоже время в спальне на верхнем этаже спал сынишка и судя по китайскому термометру за 2 доллара (до которого надо было ещё дойти и посмотреть не разбудив сына) температура была за 26. Значит надо теперь идти в гостиную и включать центральный кондиционер, а потом надо его ещё и выключать чтобы он не включался каждый раз когда температура немного подымится. Особенно это неприятно делать летом ночью, замёрзнув под лёгким одеялом надо вскакивать и опять же не перебудив всех домочадцев бежать в гостиную к пульту и вырубать это достижение прошлого века. Тут то я и смекнул что пора прекратить такое безобразие и звонить другу со словами "Где там твоя хвалёная Ардунья, Давай её сюда щас мы посмотрим на что она способна!". Сразу скажу что совсем не выбирал именно её и не думал что она окажется такая никчёмная(например в работе со строками) и даже от злости и бессилия бороться с ней дальше чуть не переехал посреди проекта на STM32. В конечном итоге всё-таки остался с ней, но обо всём по порядку.

Чтобы проще было понять почему всё сделано так и как Вам намазать на хлеб мой опыт и наработки, начнём с описания того что есть/было у меня под рукой:
1) Частный дом в Канаде (хотелось бы сказать что он мой, но конечно же он принадлежит банку и как бы это абсурдно не звучало но иметь его полностью выплаченным при текущих ставках даже не выгодно) 1959 года постройки как тут их называют Split Level те дом двух этажный но половина его сдвинута вертикально относительно другой половины на пол этажа.
2) Arduino Uno (в последствии изза малого числа Вх/Вых для X10 и радио потребовалась Mega)
3) дорогой и родной Ethernet Shild. Что-то запустить и найти адекватную библиотеку для ENC28J60 мне так и не удалось
4) Желание, время и немного денег.
Как здесь принято, спальни находятся на верхнем этаже и для меня получается это на пол этажа выше гостиной где и находится прикрученный к стене зловещий пульт управления системой отопления охлаждения. Тут такие систем называются HVAC (heating, ventilation, and air conditioning) на самом же деле это обычный огромный (десятки тысяч BTU или они их тут в тоннах чего то меряют) сплит кондиционер внешний теплообменник и компрессор которого находятся на улице а внутри теплообменник встроен в систему центрального вентилирования, которая полтора кило ватным вентилятором забирает воздух с уровня пола гостиной прогоняет через два теплообменника (один до кондиционера другой от мазутной или газовой горелки) и по системе коробов гонит в каждую комнату. Удобство и собственно само название тепловой насос вызвано тем что этот аппарат может гонять фреон в обе стороны и соответственно не только охлаждать но и нагревать воздух в доме. Надо заметить что нагревать он его может более менее эффективно только если на улице достаточно тепло больше 0 или -5 (зависит от модели и конструкции). Если же холодно то тепловой насос работать не будет и для этого как раз то и нужен бак с мазутом или газ.

Я начал свой проект и амбиции с малого, так давайте и мы разберём как же сделан этот HVAC и как им управлять. На поверку оказывается не так страшен чёрт. Одним из удобств является жидкая стандартизация всего домашнего и не очень в Америке это позволяет скрещать ежей с ужами по открытому, простому (иногда слишком) и общеизвестному (как правило древнему, кондовому) протоколу/стандарту. В нашем случае саму систему (вентилятор горелки теплообменники можно купить одного производителя кондиционер второго, увлажнитель у третьего а Блок Управления всем этим у четвёртого. Честно говоря не знаю также ли называются/управляются подобные устройства в Европе, но думаю что всё либо слизано либо очень похоже. Насколько я понял такие системы уже есть в России и возят их откуда попало/дешевле, так что у вас есть большие шансы столкнуться именно с такой системой. Давайте посмотрим на схему типичного подключения системы до того как мы начнём врезаться в систему.

Как мы видим почти всё понятно с первого взгляда. Единственное что надо пояснить что БУ питается и сам тепло насос управляется переменными 24 вольтами. которые подаются с входного трансформатора R и С. Линия С это общая и всегда соединена. Соответственно при подаче R(замыкании) на Y, O, W или G включается соотв. блок. От этого и будем отталкиваться. Значит если они включают то чем хуже мы? Сделаем так что наша новая система будет дополнять уже имеющуюся. Те управление можно осуществлять со старого пульта и контроллера как и раньше, но только когда надо, Arduino может отключить старую систему от управления и взять борозды в свои руки и потом отдать их обратно.Ставим релюшки.


Причем ставим их так чтобы без питания и вообще отключенные они сохраняли прежнюю конструкцию. R-0 отключает стандартный модуль управления и передаёт управление нашему Ардуину. R-1-4 подают нужное напряжение на соответствующую линию. Это управляющее напряжение R подаётся на каждое реле зелёным проводом. Управлять конечно хорошо, но система серьёзная и если мы случайно или не очень что-то не так включим или в неправильной комбинации. Например теплообменник будет греться а вентилятор не будет гонять воздух и отводить тепло с него, он может перегреться и привести к возникновению пожара, а нам это совсем не зачем. Во избежание подобных ситуаций давайте сделаем тройную защиту. И так первым бастионом будут сенсоры напряжения на каждой линии S1-4 (те их должно быть 4ре).


Они представляют из себя диод два резистора(делитель) и маленький электролит. Это может быть навесная сборка как на фотографии. В результате мы можем в Ардуине знать есть ли на самом деле на каждой из линий управления напряжение или нет. Соответственное если текущее состояние линий управления (Y, O, W, G) не соответствует тому что должно быть мы выводим код ошибки и отключаем систему. Следующим бастионом является наш дополнительный датчик температуры в камере теплообменника (plenum sensor). Если там слишком горячо или холодно (близко к 0С) то мы опять же выводим код и отключаем систему. Очевидно что запитывать реле напрямую от выходов ардуины нельзя поэтому надо либо громоздить по транзистору на каждое реле или купить готовый модуль с несколькими реле и транзисторами на одной плате. 99% компонентов я покупаю на ибее. Например на ибее полно таких 8 канальных модулей (8 Channel Electronic Relay Module) примерно по 9$. или же можно купить 4+2 (так как на самом деле нам надо всего 5 и одно запасное)

В качестве датчиков температуры и влажности я использовал китайские цифровые DHT22 которые неплохо зарекомендовали себя. Им надо всего три провода +5, GNd и Data. Провода могут быть достаточно длинными без потери точности и сигнала. Один датчик выкидывается на улицу в тень и под навес от прямого попадания влаги. Один датчик в доме.
В уже построенном много лет назад доме обычно самая большая проблема это провести новые провода, поэтому я старался по максимуму использовать текущую проводку. Для DHT22 есть несколько библиотек. У меня были проблемы со всеми кроме этой . Я поставил внутренний DHT22 рядом с настенным пультом управления. Если В вашем доме как и в моём когда-то стояла система управления HVAC то у вас должно быть аж 6 жильный кабель идущий от БУ к месту где висит сам пульт с индикатором и кнопками. Современные пульты (как мой) требуют всего 2х проводов. Таким образом у нас в распоряжении получается 4 уже проложенных провода. В них мы запускаем +5V, GND, Data для внутреннего DHT22 и на последний Serial(UART) Tx с Ардуины для вывода информации на дисплей.

В качестве дисплея я использовал маленький (2.5 см) OLED экранчик с серийным интерфейсом .
ДА он немного дороговат, но есть несколько уникальных отличия от подобных доступных: Наличие Serial(UART) интерфейса, что позволяет использовать всего один провод для его подключения, наличие пяти цифровых выводов на контроллере экрана (куда мы подключим RGB светодиод для дополнительного отображения состояния системы) и наконец компактность в сочетании с контрастом и отличной читаемости как при ярком свете так и ночью и он не освещает весь коридор ночью как любой ЖК с постоянной включённой подсветкой.

Далее встала проблема как поместить в каждую комнату, без дополнительных проводов, питания и радио модулей датчики температуры. В качестве датчика я выбрал цифровой DS18B20, (имея хорошую точность +- 0.5C) которому надо всего два провода (земля и сигнал). Их можно на эти 2 провода вешать много параллельно (каждый имеет свой уникальный MAC адрес). Но даже протянуть два провода во всем комнатам это адский труд. У тут меня осенило. Ведь по всем комнатам проложен телефонный кабель и он 4х жильный и в лучшем случае используется 2 жилы для телефона (как правило красный и зелёный) а остальные (жёлтый и черный) проходят по всем нужным мне местам и остаются свободными. Таким образом не разрезая провода а лишь оголив нужные два я подпаял к ним в каждой комнате по DS18B20.
Общая длинна проводов получилась достаточно большая и если сигнальный провод подпирать (на +5В) рекомендуемыми 4.7 кОм, то в моём случае датчики практически не читались и я сократил подпирающее сопротивление вдвое до 2.3 кОм и всё прекрасно заработало.

Потом я заморочился датчиком давление и остановился на недешёвом BMP085 зато он имеет I2C интерфейс, что опять же экономит ножки и количество проводов. Так как он ещё может читать температуру eго я поставил в подвале, куда было ближе и проще всего тянуть новые провода (аж 4). Я старался по максимуму использовать стандартные телефонные кабели и разъемы(RJ11) чтобы конструкция была разбираемой и ремонтно - замено пригодной.
При подключении этого барометра на туже I2C шину что и RTC (модуль энергонезависимых часов) возникли не очень понятные проблемы. Они мешали друг другу и пока я не поставил небольшую задержку перед чтением барометра работало всё не стабильно. Так как коротко временное отключение электричества не такая уж редкость да и модуль RTC стоит копейки я добавил его для энергонезависимого времени. в основном нужного при использовании х10. Используя его возникло желание автоматически синхронизовать его с NTP через интернет (раз уж он у нас есть), но у меня что-то не получилось скрестить webduino сервер и NTP. В итоге NTP время (Unix epoch) посылается на Arduino (и обновляется RTC) каждый раз при изменении каких либо настроек или режимов в web интерфейсе. Что имеет свои недостатки так как оно берётся JavaScript из времени на текущем компьютере или мобильном устройстве и не всегда точное и в правильной временной зоне.

Команды моим радио розеткамс Ардуины в эфир я посылаю с помощью копеечного (2$) передатчика модуля. Их прудом пруди на ибее (поиск «RF transmitter 315 Mhz..») и в любом магазине. Единственное надо правильно выбрать радио частоту соответветствующую вашим разеткам. К сожалению мои разетки не корректно поддерживались стандартной библиотекой RCswitch. в описании библиотеки есть список поддерживаемых чипов , но не стоит расстраиваться если ваш не в списке, у меня заработало после анализа эфира в ручную и без библиотеки. Про подобнве разетки, работы с библиотекой много написано. В частности cдесь: http://habrahabr.ru/post/213425 http://habrahabr.ru/post/212215 Я использовал 110В розетки
. Несмотря на то что управление радио требует нестандарного решения, оно является самым простым и бюджетным решением стоящей задачи. A именно включать и выключать электрические батареи или любой другой прибор (не обязательно резистивный) по времени или в ручную и иногда включать- выключать наружный свет. Insteon, Zwave и другие имеют много подчас не нужных дополнительных функций но на порядок дороже и имеют проблемы с открытостью интерфейса для того чтобы Ардуино могла посылать устройствам простые команды. Единственная проблема с розетками x10, Insteon и другими это то что они очень громко щёлкают во время переключения. Особенно это раздражает тихой ночью. Ещё один нюанс: x10 был заточен и популярен в северной америке и соответственно под 110 Вольт. Тут каждый выбирает для себя сам. Либо платить много за:
Z-Wave - розеток готовых нет, есть странной формы модули реле которые также но по тише щёлкают и их куда-то, как-то в стены надо прятать, потом замурованные, непонятно как их обслуживать – менять/чинить. Зато появились USB модули для посылки команд. Но для этого ещё нужен микрокомпьютер (возможно роутер подойдёт) с правильной OS драйверами и тд;
Insteon - розетки есть, но также противно щёлкают как x10 и насколько я понял открытого модуля для посылки команд нет и система опять-же заточена под 110В;
Вам решать заморачиваться с интеграцией и посылкой команд в эту сеть или платить меньше в 5-10 раз за каждое радио устройство и при необходимости подтачивать код под него. Как и любая другая вещь всё для 110В стоит дешевле. Конечно есть ещё экстремальные пути, как например описанная несколькими авторами тут, идея опутать всю квартиру (дом) парой (а на поверку пучком) молоточных проводов и собирая каждое управляющее и управляемое устройство с нуля в ручную использовать 1-Wire протокол. Некоторые пошли ещё дальше и разрабатывают свои протоколы…

Также я как кайтер прикрутил анемометр (датчик скорости ветра). Для её измерения я использовал имевшийся под руками чашечный датчик с герконом замыкающим 1 кОм между двумя контактами при вращении чашечек. В программе используется прерывание и замеряется количество раз +5В подаётся(переход из 0 в 1) на цифровой вход (подпряжённый 5 кОм ами на теже +5В). Данное значение умножается на подходящий для вашего датчика коэффициент и из количества замыканий за одну секунду получается скорость ветра в узлах. Также за каждый час меряется максимальное и минимальное значения скорости (порывы) и отображается максимальное за час. В веб отдаются текущее и максимальное. Каждый датчик надо калибровать индивидуально и подбирать правильный коэффициент. Для управления гаражной дверью я использовал запасной радио пульт от неё и с помощью дополнительного реле (шестого) эмулировал нажатие кнопки на пульте (вскрыв пульт и подпаявшить в контактам кнопки).

Протокол общения стандартного БУ термопомпы с её пультом (обычно 2 провода) как правило закрытый и наша ардуина не может знать какой режим и настройки выставлены в стандартном блоке управления, но с помощью наших сенсоров мы можем знать в каком режиме сейчас HVAC и хотя у них тоже есть датчик температуры в теплообменнике дополнительная защита с помощью Ардуины не помешает. Меня часто спрашивают: А не страшно ли мне доверять Ардуине управление такой ответственной системой с своём то доме? Мой код открытый и прозрачный. Я понимаю что происходит и всегда могу отловить и исправить неточность (если такие остались после полугода пользования системой). И самое главное я могу добавлять любые функции которые мне потребуются. В той-же коробочке скорее всего менее мощный контроллер и конечно нечего уже поменять и добавить нельзя. Без ардуины добавление опять же ограниченных функций как доступ из интернета к стандартному БУ стоит новой коробочки сотен долларов. Всё началось не с того что я хотел сэкономить а мне нужны были удобные для меня функции которые не за какие деньги не купить у производителей оборудования. Но конечно если взять в расчёт цену человеко часов затраченных мной, да и даже вами если вы просто решите сделать подобное на базе моих и других наработок, на этот проект то конечно дешевле купить готовое но попрощаться с гибкостью и нужными функциями. Это примерно как поставить FreeBSD и кропотливо долго и по каждому поводу копаться в барахолке знаний интернета и в ручную из командной строки подкручивать её под себя в сравнении Mac OS, красивой готовой но ограниченной на базе той же BSD. Основная из них это включение обогрева/охлаждения до нужной температуры не навечно или по расписанию а всего лишь на час-2-4. Звучит просто и удобно но никак не присутствует в стандартных БУ.

Если вы хотите управлять только термонасосом без RF, RTC, барометра и прочих заморочек памяти и ног хватит и у Uno(я так и сделал в первой фазе своего проекта). В полной же версии без Mega не обойтись. Давайте посмотрим на получаемые функции и интерфейс.

Сам интерфейс сделан в рамках всего одной html странички с использованием технологии Ajax для обмена данными с Arduino web server (webduino) и основана на библиотеках JQuery Mobile. Поэтому для работы нужны несколько файлов картинок и сами библиотеки, которые могут быть заменены ссылками.

В верхнем левом углу, мы видим луну, это значит что по настройкам дня и ночи (в первой строке синего блока) сейчас ночной режим. Если дневной режим там будет солнышко. Дальше мы видим наш домик. В домике куча температур в каждой комнате и в центре температура с десятыми, это температура в гостиной на основном уровне. Зелёным внизу домика мы видим относительную влажность внутри дома. Справа от неё снежинка, это индикатор того что сейчас работает кондиционер. На этом месте отображается разными иконками остальные режимы работы (отопление термопомпой или AUX или же х10). Если иконка приглушена (полупрозрачная) значит система в этом режиме но не активна. Т.е. например в режиме кондиционирования до температуры 21 градус, но так как сейчас 20 градусов кондиционер не активен. Если одновременно работают два режима, например отопление х10 и отопление термопомпой, то будут последовательно мигать две иконки. Слева и справа у домика мы видим лучики, при нажатии на которые они становятся яркими и при последующем нажатии опять приглушаются. Это включение внешнего освещения у дома. У меня есть внешний свет на заднем дворе и впереди дома. Управление передаётся по х10 и номера соответствующих устройств прописаны в html(JS) коде, Ардуина лишь посылает команды на переданные ей из HTML номера устройств. Справа домика мы видим автоматическую гаражную дверь. которая открывается и закрывается при нажатии на неё. Сверху справа от домика мы видим текущую (усреднённую за 1-2 минуты) или максимальную за час скорость ветра в узлах. Значение скорости ветра подсвечивается разными цветами от голубого до красного в зависимость от скорости и в соответствии с международно принятыми цветами шкалы Бофорта. Справа сверху мы видим температуру на улице и ниже текущее атмосферное давление. Розовым фоном для значения давления служит график его относительного изменения за последние 24 часа (x-время, у- относительное значение давления). Под давлением зелёным относительная влажность на улице.

Теперь рассмотрим группу белых селектов и кнопку SET. Левым селектом выбирается нужная температура/режим. Правым на какое время включать этот режим. Если режим активный то надписи немного поменяется, как в этом примере
Если активен режим отопления то дополнительно кнопка подкрасится красным а если охлаждения голубым. Чтобы выключить надо оставить температуру и выбранный режим слева и оставшиеся минуты справа и тогда кнопка SET поменяется на OFF и её нажатие выключит режим. Режим охлаждения или отопления выбирается автоматически в зависимости от температуры на улице. Если на улице меньше чем значение константы heat_temp описанной в html(JS) файле, то будет предлагаться только отопление иначе только охлаждение.

Теперь давайте рассмотрим синий х10 блок. Нажатие на первую строку открывает общие настройки: ON - Все Розетки Всегда Включены (например летом), OFF все розетки всегда выключены (например если вы в отпуске), Split - в силу вступают индивидуальные настройки групп и комнат. Далее вы можете выбрать с какого часа начинается день и с какого ночь. Для сохранения настроек не забывайте нажать кнопку Apply внизу. далее каждая строка отражает группу комнат которая может состоять из одной и более комнат. Я сделал группировку по этажам в своём доме. На некоторых этажах только одна комната а на некоторых больше. У каждой группы мы можем установить режим ON - все розетки этой группы всегда включены, OFF все розетки этой группы всегда выключены (например вам надо включить пылесос и если одновременно будет работать батарея то выбьет предохранитель), Split(доступно только для групп с более чем одной комнатой)- в силу вступают индивидуальные настройки комнат внутри группы, Day - поддерживать указанную температуру только днём (ночью всегда выключено), Day&Night - поддерживать указанную температуру для дня и другую температуру ночью. У каждой комнаты доступно всё вышеперечисленное за исключение Split. Для вступления изменений в силу не забывайте нажать Apply внизу.

Самой последней строчкой является установки режима Override. Этот режим был сделан для принудительного включения розеток в выбранной комнате или светильника на некоторое время. Например вам надо нагреть максимально комнату на некоторый период для того чтобы ребёнку делать там массаж и через час продолжить поддерживать обычную температуру в ней. Или включать свет на улице на пол часа. Слева вы выбираете комнату справа на сколько включать режим и нажимаете кнопку Overrride. Если вам надо досрочно отключить режим справа выбирайте OFF и жмите Override. Вся информация обновляется каждые upd_interval (константа из html файла) секунд. По умолчания = 60 секунд. Когда информация обновляется вся верхняя часть странички с домиком моргает.

Ещё хотелось бы рассказать о концепции объединения розеток (pool). Допустим у вас одна большая комната обогреть которую в в -5 за бортом одна батарея не в состоянии или нагреваться она будет ооочень долго. Вы можете поставить вторую RF розетку с тем же кодом/адресом и вторую батарею воткнуть в неё и они обе всегда будут включаться. Что при относительно теплой температуре приведёт к частому щёлканью и включению и выключению этих двух и более батарей. Есть и другой вариант вы объединяете эти батареи в pool в коде ардуины x10pools={0,0,0,0,0,12,0,0,13,0,0,0,0,0,0,0,0}. Ноль значит отсутствия пула у данного адреса розетки число значит адрес дочерней розетки пула. Дочерняя включается если на улице холоднее чем poolt (константа из html файла) или разрыв между нужной температурой в комнате и текущей больше чем delta_temp * poolf (константы из html файла). Хотелось бы сказать больше о delta_temp (константа из html файла) это Делта температуры. Она нужна для того чтобы режимы часто не включались не выключались так как показания датчиков могут немного скакать +-. Обогрев включается если текущая температура меньше чем (нужная - delta_temp) и выключается если больше (нужная + delta_temp). По умолчанию это 0.5 Град С.

Теперь рассмотрим вопрос безопасности. Конечно нельзя оставлять доступным для всех управление вашим домом. Так как наша система состоит из клиента(JS Ajax html страничка) и сервера (Arduino) вы можете организовать различные уровни безопасности. Например вы можете положить HTML страничку на свой компьютер, телефон планшет и тд. (не выставляя её на публичный хостинг) и тогда только вы(с устройств обладающих этим файлом) сможете открывать эту панель управления своими домашними системами. Arduino web server весит на внутреннем IP и поэтому если вы его не зафорвардите на роутере во внешний мир, то к самой ардуине можно будет достучаться только из вашей внутренней сети. Доступ к самой HTML страничке можно запаролить на Web сервере где вы её захотели выложить. Также модно поднять HTTPS сервер в отношении её. Самым простым и по моему мнению достаточно надёжным является публичный хостинг странички, но сама страничка при запуске никуда не подсоединяется если ей параметром не передать адрес сервера Arduino (предварительно настроенным Dinamic DNS и Port Foewarding). Выглядит это так в браузере вводится такая ссылка http://myhosting.com/index.html?http://myhome.slyip.net:8081/hvac. Если злоумышленник и случайно наткнётся на вашу клиентскую страничку то ничего он с ней сделать не сможет не зная адреса Arduino сервера. Это самый простой и удобный компромиссный вариант, которым я сейчас пользуюсь. Да мне тоже вся эта конструкция с убогим (медленный не поддерживающий HTTPS и тд) Arduino Web Shield сервером в дополнение к которому ещё надо где-то отдельно хостить клиентскую страничку с иконки НЕ нравится. И как только я получу из китая знаменитый TP-LINK TL-WR703N
роутер который в мгновения ока превращается в wifi bridged web сервер с Serial(UART) интерфейсом к Arduine, я сразу же прикручу его к ардуине (или её к нему) и выкину это шилд и изернет провод. Таким образом получится даже больше того что я хотел так безуспешно добиться от STM32 контроллера а именно чтобы всё было в одном устройстве (не отдельно захощенная страничка клиента и отдельно исполнительный сервер) и нормальным веб сервером на котором можно реализовать достойную степень удобства скорости и безопасности.






B на последок

Основная причина того что системы домашней автоматизации всё ещё не стали так популярны это акцент на освещении, который обычно делают при их продвижении. Ведь мигать светом (как светодиодами на Ардуине) не вставая с дивана это баловство, которое не имеет никакого практического значения и отталкивает людей от серьёзных мыслях о внедрении и использовании систем домашней автоматизации у себя в домах и квартирах. Мигать светом (на что обычно заточено 90% функционала) никому не нужно а вот например управлять отоплением индивидуально в каждой комнате это удобно и экономит энергию=деньги. Заоблачные цены на сами (копеечные по себестоимости) компоненты готовых продающихся систем домашней автоматизации вместе с ценами на интеграцию их только подливают масла в огонь. Спешу заверить что самым дорогим компонентом у нас будет 20 долларовая Arduino Megа. Если рассматривать вопрос в целом то мне видится только следующий список задач которые имеет практический смысл централизованно автоматизировать:
> управление климатом температурой (отопление/кондиционирование) и влажностью (увлажнитель/осушитель),
> управление естественным освещением (жалюзи, ставни, навесы)
> и управление поливом газонов, цветников и лужаек вокруг дома (если таковые имеются и их таки надо поливать).
Из децентрализованных систем удобно иметь локальную (без центрального управления 1-2 датчика управляющие напрямую включением подсветки) срабатывающую от датчиков движения(присутствия) маломощную светодиодную подсветку лестниц (иногда пола) и частей столов на кухне которые затенены от обычного потолочного освещения навесными шкафами и полками. Эта же подсветка в комбинации с перечисленными выше незаменима ночью когда надо, не разбудив никого и в первую очередь себя, пробраться на кухню (и отрезать там что-то от чего-то и съесть ни с кем не делясь) или в другое заведение не спотыкнувшись об предусмотрительно разбросанные детские игрушки. Также имеет смысл включать датчиками движения основное освещение ТОЛЬКО в технических помещениях: шкафы, кладовки, гараж, прачечные и тп. Датчики движения и централизованные системы не практично использовать для основного освещения в жилых помещениях. Внешняя и декоративное праздничная подсветка дома удобнее всего включается от копеечных готовых блоков с датчиками освещения и/или таймерами. Настоящие охранные системы подключённые к службам реагирования (не просто разбросанные по дому датчики и веб камеры) обычно не имеет смысла смешивать с системами умного дома из многих соображений.

Таким образом начнём с самого актуального. Идеальным объектом является отопление которым можно управлять например: электрическое(батареи на колёсиках в розетку и настенные батареи) и централизованное или не очень отоплением частного дома. В моём примере мы рассмотрим работу с системой Термо Помпы (Heat Pump в северной Америке) с мазутным отоплением по средствам прямого подключения к имеющемуся Блоку Управления (термостату) и дополнительно устройствами. В первой версии системы я использовал устройтва и разетки протокола Х10. Но к сожалению они плохо зарекомендовали себя, изза медленного интерфейса и очень громких счелков при переключении, котрые будили всех домашних. В последствии я перевйл систему на радио разетки, что оказалось гораздо проще и тише чем x10. Эти разетки имеются в огромном асортименте радиочастот и напряжения. Всё это, применимо для огромного множества других систем. Всё началось с того что мой приятель вместе с соседом ненавязчиво капали мне на голову про огромную роль чуда чудного - Arduino в современном обществе и что я как человек умеющий и любящий держать паяльник просто обязан заразиться этой Ардуино манией как можно скорее. Я всячески отмахивался и говорил что область практического (не робото-игрушки) применения её дома очень сомнительна и делать на основе мощного микроконтроллера последовательно загорающиеся светодиодные линейки для подсветки ступенек лестницы (вместо одного сдвигового регистра и генератора) это просто из пушки по воробьям а остальное баловство. Но всё-таки зерно Arduino им удалось заложить в мою голову и как все зёрна с приходом весны и на подступах лета росток начал пробиваться. Я не люблю хобби проекты ради самих проектов. Какая-то практическая сторона должна присутствовать а тем более что ресурсо ($ и время) ёмкие проекты для семейного человека должны ещё иметь высокийWAF (Wife acceptance factor) или как говорит мой Папа его легко легализовать.

И как всегда лень явилась двигателем прогресса. Сидели мы чуть позже полудня на веранде, солнце приятно припекало а в тоже время в спальне на верхнем этаже спал сынишка и судя по китайскому термометру за 2 доллара (до которого надо было ещё дойти и посмотреть не разбудив сына) температура была за 26. Значит надо теперь идти в гостиную и включать центральный кондиционер, а потом надо его ещё и выключать чтобы он не включался каждый раз когда температура немного подымится. Особенно это неприятно делать летом ночью, замёрзнув под лёгким одеялом надо вскакивать и опять же не перебудив всех домочадцев бежать в гостиную к пульту и вырубать это достижение прошлого века. Тут то я и смекнул что пора прекратить такое безобразие и звонить другу со словами "Где там твоя хвалёная Ардунья, Давай её сюда щас мы посмотрим на что она способна!". Сразу скажу что совсем не выбирал именно её и не думал что она окажется такая никчёмная(например в работе со строками) и даже от злости и бессилия бороться с ней дальше чуть не переехал посреди проекта на STM32. В конечном итоге всё-таки остался с ней, но обо всём по порядку.

Чтобы проще было понять почему всё сделано так и как Вам намазать на хлеб мой опыт и наработки, начнём с описания того что есть/было у меня под рукой:
1) Частный дом в Канаде (хотелось бы сказать что он мой, но конечно же он принадлежит банку и как бы это абсурдно не звучало но иметь его полностью выплаченным при текущих ставках даже не выгодно) 1959 года постройки как тут их называют Split Level те дом двух этажный но половина его сдвинута вертикально относительно другой половины на пол этажа.
2) Arduino Uno (в последствии изза малого числа Вх/Вых для X10 и радио потребовалась Mega)
3) дорогой и родной Ethernet Shild. Что-то запустить и найти адекватную библиотеку для ENC28J60 мне так и не удалось
4) Желание, время и немного денег.
Как здесь принято, спальни находятся на верхнем этаже и для меня получается это на пол этажа выше гостиной где и находится прикрученный к стене зловещий пульт управления системой отопления охлаждения. Тут такие систем называются HVAC (heating, ventilation, and air conditioning) на самом же деле это обычный огромный (десятки тысяч BTU или они их тут в тоннах чего то меряют) сплит кондиционер внешний теплообменник и компрессор которого находятся на улице а внутри теплообменник встроен в систему центрального вентилирования, которая полтора кило ватным вентилятором забирает воздух с уровня пола гостиной прогоняет через два теплообменника (один до кондиционера другой от мазутной или газовой горелки) и по системе коробов гонит в каждую комнату. Удобство и собственно само название тепловой насос вызвано тем что этот аппарат может гонять фреон в обе стороны и соответственно не только охлаждать но и нагревать воздух в доме. Надо заметить что нагревать он его может более менее эффективно только если на улице достаточно тепло больше 0 или -5 (зависит от модели и конструкции). Если же холодно то тепловой насос работать не будет и для этого как раз то и нужен бак с мазутом или газ.

Я начал свой проект и амбиции с малого, так давайте и мы разберём как же сделан этот HVAC и как им управлять. На поверку оказывается не так страшен чёрт. Одним из удобств является жидкая стандартизация всего домашнего и не очень в Америке это позволяет скрещать ежей с ужами по открытому, простому (иногда слишком) и общеизвестному (как правило древнему, кондовому) протоколу/стандарту. В нашем случае саму систему (вентилятор горелки теплообменники можно купить одного производителя кондиционер второго, увлажнитель у третьего а Блок Управления всем этим у четвёртого. Честно говоря не знаю также ли называются/управляются подобные устройства в Европе, но думаю что всё либо слизано либо очень похоже. Насколько я понял такие системы уже есть в России и возят их откуда попало/дешевле, так что у вас есть большие шансы столкнуться именно с такой системой. Давайте посмотрим на схему типичного подключения системы до того как мы начнём врезаться в систему.

Как мы видим почти всё понятно с первого взгляда. Единственное что надо пояснить что БУ питается и сам тепло насос управляется переменными 24 вольтами. которые подаются с входного трансформатора R и С. Линия С это общая и всегда соединена. Соответственно при подаче R(замыкании) на Y, O, W или G включается соотв. блок. От этого и будем отталкиваться. Значит если они включают то чем хуже мы? Сделаем так что наша новая система будет дополнять уже имеющуюся. Те управление можно осуществлять со старого пульта и контроллера как и раньше, но только когда надо, Arduino может отключить старую систему от управления и взять борозды в свои руки и потом отдать их обратно.Ставим релюшки.


Причем ставим их так чтобы без питания и вообще отключенные они сохраняли прежнюю конструкцию. R-0 отключает стандартный модуль управления и передаёт управление нашему Ардуину. R-1-4 подают нужное напряжение на соответствующую линию. Это управляющее напряжение R подаётся на каждое реле зелёным проводом. Управлять конечно хорошо, но система серьёзная и если мы случайно или не очень что-то не так включим или в неправильной комбинации. Например теплообменник будет греться а вентилятор не будет гонять воздух и отводить тепло с него, он может перегреться и привести к возникновению пожара, а нам это совсем не зачем. Во избежание подобных ситуаций давайте сделаем тройную защиту. И так первым бастионом будут сенсоры напряжения на каждой линии S1-4 (те их должно быть 4ре).


Они представляют из себя диод два резистора(делитель) и маленький электролит. Это может быть навесная сборка как на фотографии. В результате мы можем в Ардуине знать есть ли на самом деле на каждой из линий управления напряжение или нет. Соответственное если текущее состояние линий управления (Y, O, W, G) не соответствует тому что должно быть мы выводим код ошибки и отключаем систему. Следующим бастионом является наш дополнительный датчик температуры в камере теплообменника (plenum sensor). Если там слишком горячо или холодно (близко к 0С) то мы опять же выводим код и отключаем систему. Очевидно что запитывать реле напрямую от выходов ардуины нельзя поэтому надо либо громоздить по транзистору на каждое реле или купить готовый модуль с несколькими реле и транзисторами на одной плате. 99% компонентов я покупаю на ибее. Например на ибее полно таких 8 канальных модулей (8 Channel Electronic Relay Module) примерно по 9$. или же можно купить 4+2 (так как на самом деле нам надо всего 5 и одно запасное)

В качестве датчиков температуры и влажности я использовал китайские цифровые DHT22 которые неплохо зарекомендовали себя. Им надо всего три провода +5, GNd и Data. Провода могут быть достаточно длинными без потери точности и сигнала. Один датчик выкидывается на улицу в тень и под навес от прямого попадания влаги. Один датчик в доме.
В уже построенном много лет назад доме обычно самая большая проблема это провести новые провода, поэтому я старался по максимуму использовать текущую проводку. Для DHT22 есть несколько библиотек. У меня были проблемы со всеми кроме этой . Я поставил внутренний DHT22 рядом с настенным пультом управления. Если В вашем доме как и в моём когда-то стояла система управления HVAC то у вас должно быть аж 6 жильный кабель идущий от БУ к месту где висит сам пульт с индикатором и кнопками. Современные пульты (как мой) требуют всего 2х проводов. Таким образом у нас в распоряжении получается 4 уже проложенных провода. В них мы запускаем +5V, GND, Data для внутреннего DHT22 и на последний Serial(UART) Tx с Ардуины для вывода информации на дисплей.

В качестве дисплея я использовал маленький (2.5 см) OLED экранчик с серийным интерфейсом .
ДА он немного дороговат, но есть несколько уникальных отличия от подобных доступных: Наличие Serial(UART) интерфейса, что позволяет использовать всего один провод для его подключения, наличие пяти цифровых выводов на контроллере экрана (куда мы подключим RGB светодиод для дополнительного отображения состояния системы) и наконец компактность в сочетании с контрастом и отличной читаемости как при ярком свете так и ночью и он не освещает весь коридор ночью как любой ЖК с постоянной включённой подсветкой.

Далее встала проблема как поместить в каждую комнату, без дополнительных проводов, питания и радио модулей датчики температуры. В качестве датчика я выбрал цифровой DS18B20, (имея хорошую точность +- 0.5C) которому надо всего два провода (земля и сигнал). Их можно на эти 2 провода вешать много параллельно (каждый имеет свой уникальный MAC адрес). Но даже протянуть два провода во всем комнатам это адский труд. У тут меня осенило. Ведь по всем комнатам проложен телефонный кабель и он 4х жильный и в лучшем случае используется 2 жилы для телефона (как правило красный и зелёный) а остальные (жёлтый и черный) проходят по всем нужным мне местам и остаются свободными. Таким образом не разрезая провода а лишь оголив нужные два я подпаял к ним в каждой комнате по DS18B20.
Общая длинна проводов получилась достаточно большая и если сигнальный провод подпирать (на +5В) рекомендуемыми 4.7 кОм, то в моём случае датчики практически не читались и я сократил подпирающее сопротивление вдвое до 2.3 кОм и всё прекрасно заработало.

Потом я заморочился датчиком давление и остановился на недешёвом BMP085 зато он имеет I2C интерфейс, что опять же экономит ножки и количество проводов. Так как он ещё может читать температуру eго я поставил в подвале, куда было ближе и проще всего тянуть новые провода (аж 4). Я старался по максимуму использовать стандартные телефонные кабели и разъемы(RJ11) чтобы конструкция была разбираемой и ремонтно - замено пригодной.
При подключении этого барометра на туже I2C шину что и RTC (модуль энергонезависимых часов) возникли не очень понятные проблемы. Они мешали друг другу и пока я не поставил небольшую задержку перед чтением барометра работало всё не стабильно. Так как коротко временное отключение электричества не такая уж редкость да и модуль RTC стоит копейки я добавил его для энергонезависимого времени. в основном нужного при использовании х10. Используя его возникло желание автоматически синхронизовать его с NTP через интернет (раз уж он у нас есть), но у меня что-то не получилось скрестить webduino сервер и NTP. В итоге NTP время (Unix epoch) посылается на Arduino (и обновляется RTC) каждый раз при изменении каких либо настроек или режимов в web интерфейсе. Что имеет свои недостатки так как оно берётся JavaScript из времени на текущем компьютере или мобильном устройстве и не всегда точное и в правильной временной зоне.

Команды моим радио розеткамс Ардуины в эфир я посылаю с помощью копеечного (2$) передатчика модуля. Их прудом пруди на ибее (поиск «RF transmitter 315 Mhz..») и в любом магазине. Единственное надо правильно выбрать радио частоту соответветствующую вашим разеткам. К сожалению мои разетки не корректно поддерживались стандартной библиотекой RCswitch. в описании библиотеки есть список поддерживаемых чипов , но не стоит расстраиваться если ваш не в списке, у меня заработало после анализа эфира в ручную и без библиотеки. Про подобнве разетки, работы с библиотекой много написано. В частности cдесь: http://habrahabr.ru/post/213425 http://habrahabr.ru/post/212215 Я использовал 110В розетки
. Несмотря на то что управление радио требует нестандарного решения, оно является самым простым и бюджетным решением стоящей задачи. A именно включать и выключать электрические батареи или любой другой прибор (не обязательно резистивный) по времени или в ручную и иногда включать- выключать наружный свет. Insteon, Zwave и другие имеют много подчас не нужных дополнительных функций но на порядок дороже и имеют проблемы с открытостью интерфейса для того чтобы Ардуино могла посылать устройствам простые команды. Единственная проблема с розетками x10, Insteon и другими это то что они очень громко щёлкают во время переключения. Особенно это раздражает тихой ночью. Ещё один нюанс: x10 был заточен и популярен в северной америке и соответственно под 110 Вольт. Тут каждый выбирает для себя сам. Либо платить много за:
Z-Wave - розеток готовых нет, есть странной формы модули реле которые также но по тише щёлкают и их куда-то, как-то в стены надо прятать, потом замурованные, непонятно как их обслуживать – менять/чинить. Зато появились USB модули для посылки команд. Но для этого ещё нужен микрокомпьютер (возможно роутер подойдёт) с правильной OS драйверами и тд;
Insteon - розетки есть, но также противно щёлкают как x10 и насколько я понял открытого модуля для посылки команд нет и система опять-же заточена под 110В;
Вам решать заморачиваться с интеграцией и посылкой команд в эту сеть или платить меньше в 5-10 раз за каждое радио устройство и при необходимости подтачивать код под него. Как и любая другая вещь всё для 110В стоит дешевле. Конечно есть ещё экстремальные пути, как например описанная несколькими авторами тут, идея опутать всю квартиру (дом) парой (а на поверку пучком) молоточных проводов и собирая каждое управляющее и управляемое устройство с нуля в ручную использовать 1-Wire протокол. Некоторые пошли ещё дальше и разрабатывают свои протоколы…

Также я как кайтер прикрутил анемометр (датчик скорости ветра). Для её измерения я использовал имевшийся под руками чашечный датчик с герконом замыкающим 1 кОм между двумя контактами при вращении чашечек. В программе используется прерывание и замеряется количество раз +5В подаётся(переход из 0 в 1) на цифровой вход (подпряжённый 5 кОм ами на теже +5В). Данное значение умножается на подходящий для вашего датчика коэффициент и из количества замыканий за одну секунду получается скорость ветра в узлах. Также за каждый час меряется максимальное и минимальное значения скорости (порывы) и отображается максимальное за час. В веб отдаются текущее и максимальное. Каждый датчик надо калибровать индивидуально и подбирать правильный коэффициент. Для управления гаражной дверью я использовал запасной радио пульт от неё и с помощью дополнительного реле (шестого) эмулировал нажатие кнопки на пульте (вскрыв пульт и подпаявшить в контактам кнопки).

Протокол общения стандартного БУ термопомпы с её пультом (обычно 2 провода) как правило закрытый и наша ардуина не может знать какой режим и настройки выставлены в стандартном блоке управления, но с помощью наших сенсоров мы можем знать в каком режиме сейчас HVAC и хотя у них тоже есть датчик температуры в теплообменнике дополнительная защита с помощью Ардуины не помешает. Меня часто спрашивают: А не страшно ли мне доверять Ардуине управление такой ответственной системой с своём то доме? Мой код открытый и прозрачный. Я понимаю что происходит и всегда могу отловить и исправить неточность (если такие остались после полугода пользования системой). И самое главное я могу добавлять любые функции которые мне потребуются. В той-же коробочке скорее всего менее мощный контроллер и конечно нечего уже поменять и добавить нельзя. Без ардуины добавление опять же ограниченных функций как доступ из интернета к стандартному БУ стоит новой коробочки сотен долларов. Всё началось не с того что я хотел сэкономить а мне нужны были удобные для меня функции которые не за какие деньги не купить у производителей оборудования. Но конечно если взять в расчёт цену человеко часов затраченных мной, да и даже вами если вы просто решите сделать подобное на базе моих и других наработок, на этот проект то конечно дешевле купить готовое но попрощаться с гибкостью и нужными функциями. Это примерно как поставить FreeBSD и кропотливо долго и по каждому поводу копаться в барахолке знаний интернета и в ручную из командной строки подкручивать её под себя в сравнении Mac OS, красивой готовой но ограниченной на базе той же BSD. Основная из них это включение обогрева/охлаждения до нужной температуры не навечно или по расписанию а всего лишь на час-2-4. Звучит просто и удобно но никак не присутствует в стандартных БУ.

Если вы хотите управлять только термонасосом без RF, RTC, барометра и прочих заморочек памяти и ног хватит и у Uno(я так и сделал в первой фазе своего проекта). В полной же версии без Mega не обойтись. Давайте посмотрим на получаемые функции и интерфейс.

Сам интерфейс сделан в рамках всего одной html странички с использованием технологии Ajax для обмена данными с Arduino web server (webduino) и основана на библиотеках JQuery Mobile. Поэтому для работы нужны несколько файлов картинок и сами библиотеки, которые могут быть заменены ссылками.

В верхнем левом углу, мы видим луну, это значит что по настройкам дня и ночи (в первой строке синего блока) сейчас ночной режим. Если дневной режим там будет солнышко. Дальше мы видим наш домик. В домике куча температур в каждой комнате и в центре температура с десятыми, это температура в гостиной на основном уровне. Зелёным внизу домика мы видим относительную влажность внутри дома. Справа от неё снежинка, это индикатор того что сейчас работает кондиционер. На этом месте отображается разными иконками остальные режимы работы (отопление термопомпой или AUX или же х10). Если иконка приглушена (полупрозрачная) значит система в этом режиме но не активна. Т.е. например в режиме кондиционирования до температуры 21 градус, но так как сейчас 20 градусов кондиционер не активен. Если одновременно работают два режима, например отопление х10 и отопление термопомпой, то будут последовательно мигать две иконки. Слева и справа у домика мы видим лучики, при нажатии на которые они становятся яркими и при последующем нажатии опять приглушаются. Это включение внешнего освещения у дома. У меня есть внешний свет на заднем дворе и впереди дома. Управление передаётся по х10 и номера соответствующих устройств прописаны в html(JS) коде, Ардуина лишь посылает команды на переданные ей из HTML номера устройств. Справа домика мы видим автоматическую гаражную дверь. которая открывается и закрывается при нажатии на неё. Сверху справа от домика мы видим текущую (усреднённую за 1-2 минуты) или максимальную за час скорость ветра в узлах. Значение скорости ветра подсвечивается разными цветами от голубого до красного в зависимость от скорости и в соответствии с международно принятыми цветами шкалы Бофорта. Справа сверху мы видим температуру на улице и ниже текущее атмосферное давление. Розовым фоном для значения давления служит график его относительного изменения за последние 24 часа (x-время, у- относительное значение давления). Под давлением зелёным относительная влажность на улице.

Теперь рассмотрим группу белых селектов и кнопку SET. Левым селектом выбирается нужная температура/режим. Правым на какое время включать этот режим. Если режим активный то надписи немного поменяется, как в этом примере
Если активен режим отопления то дополнительно кнопка подкрасится красным а если охлаждения голубым. Чтобы выключить надо оставить температуру и выбранный режим слева и оставшиеся минуты справа и тогда кнопка SET поменяется на OFF и её нажатие выключит режим. Режим охлаждения или отопления выбирается автоматически в зависимости от температуры на улице. Если на улице меньше чем значение константы heat_temp описанной в html(JS) файле, то будет предлагаться только отопление иначе только охлаждение.

Теперь давайте рассмотрим синий х10 блок. Нажатие на первую строку открывает общие настройки: ON - Все Розетки Всегда Включены (например летом), OFF все розетки всегда выключены (например если вы в отпуске), Split - в силу вступают индивидуальные настройки групп и комнат. Далее вы можете выбрать с какого часа начинается день и с какого ночь. Для сохранения настроек не забывайте нажать кнопку Apply внизу. далее каждая строка отражает группу комнат которая может состоять из одной и более комнат. Я сделал группировку по этажам в своём доме. На некоторых этажах только одна комната а на некоторых больше. У каждой группы мы можем установить режим ON - все розетки этой группы всегда включены, OFF все розетки этой группы всегда выключены (например вам надо включить пылесос и если одновременно будет работать батарея то выбьет предохранитель), Split(доступно только для групп с более чем одной комнатой)- в силу вступают индивидуальные настройки комнат внутри группы, Day - поддерживать указанную температуру только днём (ночью всегда выключено), Day&Night - поддерживать указанную температуру для дня и другую температуру ночью. У каждой комнаты доступно всё вышеперечисленное за исключение Split. Для вступления изменений в силу не забывайте нажать Apply внизу.

Самой последней строчкой является установки режима Override. Этот режим был сделан для принудительного включения розеток в выбранной комнате или светильника на некоторое время. Например вам надо нагреть максимально комнату на некоторый период для того чтобы ребёнку делать там массаж и через час продолжить поддерживать обычную температуру в ней. Или включать свет на улице на пол часа. Слева вы выбираете комнату справа на сколько включать режим и нажимаете кнопку Overrride. Если вам надо досрочно отключить режим справа выбирайте OFF и жмите Override. Вся информация обновляется каждые upd_interval (константа из html файла) секунд. По умолчания = 60 секунд. Когда информация обновляется вся верхняя часть странички с домиком моргает.

Ещё хотелось бы рассказать о концепции объединения розеток (pool). Допустим у вас одна большая комната обогреть которую в в -5 за бортом одна батарея не в состоянии или нагреваться она будет ооочень долго. Вы можете поставить вторую RF розетку с тем же кодом/адресом и вторую батарею воткнуть в неё и они обе всегда будут включаться. Что при относительно теплой температуре приведёт к частому щёлканью и включению и выключению этих двух и более батарей. Есть и другой вариант вы объединяете эти батареи в pool в коде ардуины x10pools={0,0,0,0,0,12,0,0,13,0,0,0,0,0,0,0,0}. Ноль значит отсутствия пула у данного адреса розетки число значит адрес дочерней розетки пула. Дочерняя включается если на улице холоднее чем poolt (константа из html файла) или разрыв между нужной температурой в комнате и текущей больше чем delta_temp * poolf (константы из html файла). Хотелось бы сказать больше о delta_temp (константа из html файла) это Делта температуры. Она нужна для того чтобы режимы часто не включались не выключались так как показания датчиков могут немного скакать +-. Обогрев включается если текущая температура меньше чем (нужная - delta_temp) и выключается если больше (нужная + delta_temp). По умолчанию это 0.5 Град С.

Теперь рассмотрим вопрос безопасности. Конечно нельзя оставлять доступным для всех управление вашим домом. Так как наша система состоит из клиента(JS Ajax html страничка) и сервера (Arduino) вы можете организовать различные уровни безопасности. Например вы можете положить HTML страничку на свой компьютер, телефон планшет и тд. (не выставляя её на публичный хостинг) и тогда только вы(с устройств обладающих этим файлом) сможете открывать эту панель управления своими домашними системами. Arduino web server весит на внутреннем IP и поэтому если вы его не зафорвардите на роутере во внешний мир, то к самой ардуине можно будет достучаться только из вашей внутренней сети. Доступ к самой HTML страничке можно запаролить на Web сервере где вы её захотели выложить. Также модно поднять HTTPS сервер в отношении её. Самым простым и по моему мнению достаточно надёжным является публичный хостинг странички, но сама страничка при запуске никуда не подсоединяется если ей параметром не передать адрес сервера Arduino (предварительно настроенным Dinamic DNS и Port Foewarding). Выглядит это так в браузере вводится такая ссылка http://myhosting.com/index.html?http://myhome.slyip.net:8081/hvac. Если злоумышленник и случайно наткнётся на вашу клиентскую страничку то ничего он с ней сделать не сможет не зная адреса Arduino сервера. Это самый простой и удобный компромиссный вариант, которым я сейчас пользуюсь. Да мне тоже вся эта конструкция с убогим (медленный не поддерживающий HTTPS и тд) Arduino Web Shield сервером в дополнение к которому ещё надо где-то отдельно хостить клиентскую страничку с иконки НЕ нравится. И как только я получу из китая знаменитый TP-LINK TL-WR703N
роутер который в мгновения ока превращается в wifi bridged web сервер с Serial(UART) интерфейсом к Arduine, я сразу же прикручу его к ардуине (или её к нему) и выкину это шилд и изернет провод. Таким образом получится даже больше того что я хотел так безуспешно добиться от STM32 контроллера а именно чтобы всё было в одном устройстве (не отдельно захощенная страничка клиента и отдельно исполнительный сервер) и нормальным веб сервером на котором можно реализовать достойную степень удобства скорости и безопасности.






B на последок

Автоматизация инженерных систем в доме или как я обучал Дом уму-разуму

А началось все с 2012 года, когда я вдруг решил, что хватит жить в квартире - пора в дом переезжать.
Опущу подробности но через 6 мсц я въехал в новый дом. В течении этого времени читать форумы о том как правильно проводить те или иные инженерные коммуникации не было ни какого времени и делал все скорее по интуиции (имея за плечами некоторое образование в области радиоэлектроники).

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

2 котла Baxi Slim 1300in / Baxi Slim 1620 in. Котлы одноконтурные.
Бойлер косвенного нагрева Baxi Premier Plus 300 на 300 литров.
Контур отопления радиаторами. На каждом радиаторе установлены механические (биметаллические) термоголовки для локальной регулировки температуры.
Контур отопления "теплый пол"
Освещение в доме на 90% светодиодное. Сигнальные провода не проложены к выключателям, и кол-во защитных автоматов меньше чем комнат в доме.
Автоматические секционные ворота в гараже (в доме)
К установке на ближайшее время еще двое автоматических ворот
Помня прежние проблемы с подключением компов в квартире проложил 2000м UTP Cat5 (более 50 портов в общей сложности).
и много еще чего...

Началось все с того, что была необходимость правильно организовать подогрев воды ГВС в бойлере.
Для baxi есть возможность докупить погодную автоматику, которая в том числе имеет возможность работы с бойлерами косвенного нагрева.
Изучив возможности автоматики и поняв как и чем она управляет понял, что за предлагаемую цену можно купить более умную железку, на которой еще много чего можно организовать и более гибко в плане алгоритмов. Начались поиски возможных претендентов на звание "мозжечка" в доме. Начал изучать с adruino. Затем посмотрел на возможность использования ПК в качестве основного устройства... но все как-то не нравилось.
Тогда один из моих товарищей посоветовал мне обратить внимание на промышленные контроллеры. Изучив (конечно поверхностно) возможности различных ПЛК пришел к выводу, что это то, что мне нужно. Стандартные, промышленные протоколы, надежность и огромное количество периферии! Следующим шагом было необходимо выбрать подходящий для моих целей ПЛК. Пересмотрел довольно большое кол-во разных контроллеров. От некоторых просто слюньки текли но сидящая в глубине жаба не позволяла нажать кнопку "В корзину".

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

Набросав простейший алгоритм управления циркуляционными насосами, режимами работы котлов и ГВС приступил к исполнению.

В результате подключил к ПЛК термостат бойлера и вывел управление насосами и режимами работы котлов. В таком виде система проработала примерно пару месяцев.
Теперь вода подогревалась хорошо и отопление реагировало на изменение внешней температуры. Приоритет отдан ГВС. Если температура на улице падала ниже 15 градусов - включался контур подогрева теплых полов. Если температура опускалась ниже 13 градусов - включался контур радиаторов отопления.
Спустя некоторое время я понял, что в момент когда мы отсутствуем дома длительное время - греть воду в бойлере до 60 градусов нет смысла. Тогда был демонтирован термостат бойлера и вместо него установлено термосопротивление (pt1000). Приобретен модуль ввода аналоговых сигналов.

К дому не подведена центральная канализация и приходится пользоваться выгребной ямой. (Про септик в момент строительства я не знал).
Требовалось следить за уровнем в яме и при заполнении вызывать машину для откачки. Несколько раз в месяц заглядывал и затем надоело. Решено организовать индикацию.
Докупил кондуктометрический модуль ввода-вывода и по rs485 соединил с ПЛК. В выгребную яму опустил 4 электрода из нержавейки (общий, мин, средний и максимальный уровни). Дописал алгоритм обработки на ПЛК. Теперь ПЛК следил за уровнем.

Последнее редактирование модератором: 21.11.17

  • Приямок можно и не делать, все равно гдето будет нижняя точка после укладки плитки, как бы хорошо ее не положили.

    На полив у меня стоит таймер на 10 минут, если очень сухо то можно нажать 2-3 раза. Забыть не возможно.

    На ворото стоит кнопка АВАРИЙНЫЙ СТОП, которая полностью отключает питание на привод. Когда машина в гараже она нажата и физически не возможно открыть ворота.

    А исполнительные реле у вас не стоят? Я что то не вижу на фото.

  • По поводу шкафа тут особая тема. Как известно аппетит приходит во время еды. Так вот тот шкаф, который я предполагал будет достаточен с большим запасом для моих хотелок... хм... через пару месяцев оказался слишком тесен. Часть проводов с датчиков пришлось заводить без клемных колодок прямо на модули ввода-вывода, что на мой взгляд крайне не правильно и не удобно. Сейчас система в процессе реорганизации. Появилось еще 2 шкафа, но гораздо больших размеров. На фото шкаф в котельной. В нем останутся 3 модуля ввода (аналогвых сигналов, и 2 дискретных ввода-вывода). Все остальное перекочует в другой шкаф, вместе с головным контроллером. Третий шкаф запланирован в непосредственной близости от электрошкафа в котором сосредоточены все автоматы/диф.автоматы и ввод 3Ф в дом. В последствии в этом шкафу планирую разместить средства мониторинга сети (3-фазный мультиметр)

    а так же смонтировать систему ввода автоматического резерва на основе бензогенератора.
    И возможно часть автоматов будет заменена на контакторы с целью управления частью контуров освещения. Либо как вариант установка оборудования X10 для точечным управлением осветительными приборами.

    Провода не подписаны - да. Большая ошибка. Есть журнал в котором я все записал, но как показала практика это не очень удобно. Вы правы по поводу подписания проводов. В будущем добавлю надписи.
    Автоматы ИЕК используются исключительно как включатели.

    Последнее редактирование: 10.01.15

    Кроме того предохранительный клапан установил после редуктора в систему водоснабжения (6 кг).
    В приямок поместил дренажный насос и вывел его в канализацию. Дренажником управляет ПЛК через промежуточное реле.

    На ворото стоит кнопка АВАРИЙНЫЙ СТОП, которая полностью отключает питание на привод. Когда машина в гараже она нажата и физически не возможно открыть ворота.

    У меня машина в гараже практически не бывает. В исключительных случаях.
    А кнопку аварийный СТОП я вывел на датчик калитки в воротах.
    Т. е. когда калитка в секционных воротах не закрыта плотно, автоматика ворот блокируется и не дает движения. Кроме того в проеме установлены фотодатчики на случай если что-то оказалось под воротами.

    Исполнительные реле только на дренажный насос. Все остальное на прямую к контактам ПЛК. Выходы релейные до 5А. Потребителей более 1 А подключенных нет.

  • Регистрация: 27.05.12 Сообщения: 1.240 Благодарности: 706

    Молодец, отличное начинание и хорошее развитие! А самое главное - сделали "то, что нужно", а не управление вентилятором в туалете)

    По поводу ванной... Зимой, когда окно в ванной закрыто и детишки в ванной поплескались очень большая влажность. По стеклам вода течет. В ванной смонтирована система вытяжной вентиляции (на улицу в трубу вентиляции). Но включается она просто в ручную. Конечно никто про нее не вспоминает. Думаю, что придется установить датчик влажности и управлять включение вентилятора (последний умеет менять обороты).
    Но пока не соображу как приточку сделать. Дверь почти герметичная и поддува совсем нет. Т. е. от вытяжки толку не будет если не сделать еще и приточку.

  • Регистрация: 07.05.10 Сообщения: 1.670 Благодарности: 611

    Electronics Supervisor

    Регистрация: 07.05.10 Сообщения: 1.670 Благодарности: 611 Адрес: Ростов-на-Дону

    Я пошел несколько дальше. В системе отопления есть предохранительный клапан (механический) который должен произвести сброс теплоносителя из контура отопления в случае если произойдет превышение допустимого давления.

    Исполнительные реле только на дренажный насос. Все остальное на прямую к контактам ПЛК. Выходы релейные до 5А. Потребителей более 1 А подключенных нет.

    Да в котле есть свой клапан аварийный, да и как там давление может привысить, если у котла своя автоматика.

    Лучше реле поставить, а то если устройство коротнет то и выход спалит. Или автомат на 3 А

    Это сколько же воды надо налить чтобы насос включился?
    У меня дренажного насоса в котельной нет и я всегда сливаю воду на пол если надо (правда очень редко бывает). к утру или через сутки максимум сухо.

  • Доброго времени суток! В сегодняшней статье речь пойдёт о домашней автоматизации.

    Благодаря внедрению автоматизация, мы можем контролировать различные приборы и устройства с мобильного телефона или другого устройства в любой точке мира. Сердцем такой системы выступает контроллер. Это может быть Arduino, Raspberry pi, BeagleBone Black, Spark Core, DigiSpark или ExtraCore.

    Для ручного управления такой системой можно использовать технологию инфракрасного дистанционного управления. С её помощью вы сможете управлять любым устройством (АC/DC) используя для этого простой пульт от телевизора.

    Шаг 1: Необходимые детали

    • Arduino Nano;

    • 5В реле;

    • Светодиоды;

    • Транзистор BC548;

    • Штекер/гнездо;
    • 5В блок питания;
    • Корпус;
    • Винтовые клеммники;
    • Панелька;

    • IR радиоприёмник;

    • Фольгированный текстолит;

    • DipTrace — система автоматизированного сквозного проектирования электрических схем и разводки печатных плат.

    Шаг 2: Изготавливаем плату методом ЛУТ

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

    Шаг 3: Закрепляем компоненты

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

    На печатной плате линия, к которой подключается эмиттер транзистора всегда соединяется с землей.

    Arduino nano выдаёт 5В, поэтому положительный вывод LED соединяется с выводом Arduino.

    Отрицательный вывод LED соединяется с базой транзистора (светодиод используется в качестве индикации состояния вкл/выкл).

    Выводы 7,8,9 используются для подачи выходных сигналов вкл/выкл на релюшки.

    11 вывод используются для приёма сигнала с ИК приёмника.

    В последнюю очередь подключаем 5В источник питания.

    Шаг 4: Считываем контрольные значения

    Скачиваем библиотеку для ИК и устанавливаем её в Arduino IDE. Открываем Arduino IDE и жмём на File—Example—IRremote—IRrecvDemo.

    © 2024 Про уют в доме. Счетчики газа. Система отопления. Водоснабжение. Система вентиляции