Умный дом на Arduino своими руками. Как сделать умный дом на Arduino своими руками Умный дом на ардуино мега

Система «Умный дом» на Arduino пользуется большим спросом у людей, стремящихся создать максимальный комфорт дома или в офисе.

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

Одним из главных элементов системы умный дом в рассматриваемом варианте является Arduino. Что это такое? Как он работает? Какие функции выполняет? Все подробно мы рассмотрим в этой статье.

Что такое Arduino?

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

В основе платформы лежит открытый код, а само устройство построено на печатной плате с «вшитым» в ней программным обеспечением.

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

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

Существует несколько моделей плат, самые распространённые из них – UNO, Mega 2560 R3.

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

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

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

Устройства на Ардуино могут работать в комплексе с ПО на компьютере или самостоятельно.

Что касается плат, их можно собрать своими руками или же приобрести готовое изделие. Программирование Arduino производится на языке Wiring.

ЧИТАЙТЕ ПО ТЕМЕ : , обзор, комплектация, подключение и настройка своими руками, сценарии.

Чем управляет Arduino?

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

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

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

Принцип работы системы

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

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

Питание

Питание Arduino производится через USB разъем или от внешнего питающего устройства. Источник напряжения определяется в автоматическом режиме.

Если выбран вариант с внешним питанием не через USB, можно подключать АКБ или блок питания (преобразователь напряжения). В последнем случае подключение производится с помощью 2,1-миллиметровго разъема с «+» на главном контакте.

Провода от АКБ подключаются к различным выводам питающего разъема - Vin и Gnd.

Для нормальной работы платформа нуждается в напряжении от 6 до 20 Вольт. Если параметр падает ниже 7 вольт, на выводе 5V может оказаться меньшее напряжение и появляется риск сбоя.

Если подавать 12 В, возможен перегрев регулятора напряжения и повреждения платы. По этой причине оптимальным уровнем является питание с помощью 7 - 12 В.

В отличие от прошлых типов плат, Arduino Mega 2560 работает без применения USB-микроконтроллера типа FTDI. Для обеспечения обмена информацией по USB применяется запрограммированный под конвертер USB-to-serial конвертер.

ПОПУЛЯРНО У ЧИТАТЕЛЕЙ : .

На Ардуино предусмотрены следующие питающие выводы:

  • 5V - используется для подачи напряжения на микроконтроллер, а также другие элементы печатной платы. Источник питания является регулируемым. Напряжение подается через USB-разъем или от вывода VIN, а также от иного источника питания 5 Вольт с возможностью регулирования.
  • VIN - применяется для подачи напряжения с внешнего источника. Вывод необходим, когда нет возможности подать напряжение через USB-разъем или другой внешний источник. При подаче напряжения на 2,1-миллиметровй разъем применяется этот вход.
  • 3V3 - вывод, напряжение на котором является следствием работы самой микросхемы FTDI. Предельный уровень потребляемого тока для этого элемента составляет 50 мА.
  • GND - заземляющие выводы.

Принципиальную схему платы в pdf формате можно посмотреть .

Связь

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

Модель ATmega 2560 отличается наличием 4 портов, через которые можно передавать данные для TTL и UART. Специальная микросхема ATmega 8U2 на плате передает интерфейс (один из них) через USB-разъем. В свою очередь, программы на ПК получают виртуальный COM.

Здесь имеются нюансы, которые зависят от типа операционной системы:

  • Если на ПК установлен Linux, распознавание происходит в автоматическом режиме.
  • Если стоит Windows, потребуется дополнительный файл.inf.

С помощью утилиты мониторинга обеспечивается отправление и получение информации в текстовом формате после подключения к системе.

Мигание светодиодов TX и RX свидетельствует о передаче данных. Для последовательной отправки информации применяется специальная библиотека Software Serial.

К особенностям ATmega 2560 стоит отнести наличие интерфейсов SPI и I2C. Кроме того, в состав Ардуино входит библиотека Wire.

Разработка проекта

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

Какие проекты можно создавать на Arduino?

Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:

  • Сборка кубика Рубика (система справляется за 0,887 с);
  • Контроль влажности в подвальном помещении;
  • Создание уникальных картин;
  • Отправка сообщений;
  • Балансирующий робот на двух колесах;
  • Анализатор спектра звука;
  • Лампа оригами с емкостным сенсором;
  • Рука-робот, управляемая с помощью Ардуино;
  • Написание букв в воздухе;
  • Управление фотовспышкой и многое другое.

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

Рассмотрим ситуацию, когда необходимо сделать автоматику для дома с одной комнатой.

Такое здание состоит из пяти основных зон - прихожей, крыльца, кухни, санузла, а также комнаты для проживания.

При составлении проекта стоит учесть следующее:

  • КРЫЛЬЦО . Включение света производится в двух случая - приближение хозяина к дому в темное время суток и открытие дверей (когда человек выходит из здания).
  • САНУЗЕЛ . В бойлере предусмотрен выключатель питания, который при достижении определенной температуры выключается. Управление бойлером производится в зависимости от наличия соответствующей автоматики. При входе в помещение должна срабатывать вытяжка, и загорается свет.
  • ПРИХОЖАЯ . Здесь требуется включение света при наступлении темноты (автоматическое), а также система обнаружения движения. Ночью включается лампочка небольшой мощности, что исключает дискомфорт для других жильцов дома.
  • КОМНАТА . Включение света производится вручную, но при необходимости и наличии датчика движения эта манипуляция может происходить автоматически.
  • КУХНЯ . Включение и отключение света на кухне осуществляется в ручном режиме. Допускается автоматическое отключение в случае продолжительного отсутствия перемещений по комнате. Если человек начинает готовить пищу, активируется вытяжка.

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

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

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

Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта http://flprog.ru/.

Подбираем комплектацию под проект на примере Arduino Mega 2560 R3

Для создания полноценной системы «Умный дом» и выполнения ею возложенных функций важно правильно подойти к комплектации и выбору оборудования.

Что входит в комплект поставки?

Если ваша цель - «Умный дом» на базе Arduino, требуется подготовить следующее оборудование - саму плату Mega 2560 R3, модуль Ethernet (ENC28J60), датчик движения, а также другие датчики и контроллеры.

Кроме того, стоит подготовить кабель вида «витая пара», резистор, реле, переключатель и кабель для модуля Ethernet.

Необходимы и дополнительные инструменты - отвертки, паяльники и прочее.

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

Все программы для адаптации можно найти в сети на официальном сайте Arduino http://arduino.ru. При выборе датчиков стоит ориентироваться на задачи, которая должен решать «Умный дом».

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

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

Что касается ПО, которое применяется в Ардуино, оно написано на языке Си. На число байт имеются определенные ограничения, но текущей памяти достаточно для реализации поставленной задачи.

Начало работы

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

Этапы

При организации системы «Умный дом» на базе Ардуино, стоит действовать по следующему алгоритму:

  • Инсталляция программного кода;
  • Конфигурация приложения под применяемое устройство;
  • Переадресация портов (для роутера);
  • Проведение тестов;
  • Внесение правок и так далее.

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

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

Последовательность действий при подключении к компьютеру

Чтобы начать работать с Ардуино в Windows, сделайте следующие шаги:

  • Подготовьте необходимое оборудование - USB-кабель и Arduino.
  • Скачайте программу на странице arduino.cc/en/Main/Software.
  • Подсоедините плату с помощью USB-кабеля. Проследите, чтобы загорелся светодиод PWR.
  • Поставьте необходимый набор драйверов для работы с Ардуино. На этом этапе стоит запустить установку драйвера и дождаться завершения процесса.
    После жмите на кнопку «Пуск» и перейдите в панель управления. Там откройте вкладку «Система и безопасность» и выберите раздел «Система». После открытия окна выберите «Диспетчер устройств», жмите на название Ардуино и с помощью правой кнопки мышки задайте команду обновления драйвера. Найдите строчку «Browse my computer for Driver software!», кликните по ней и выберите соответствующий драйвер для вашего типа платы - ArduinoUNO.inf (находится в папке с драйверами). Это может быть UNO, Mega 2560 или другая.
  • Запустите среду разработки Ардуино, для чего дважды кликните на значок с приложением.
  • Откройте готовый пример (File - Examples - 1.Basics - Blink).
  • Выберите плату. Для этого перейдите в секцию Tools, а дальше в Board Menu.
  • Установите последовательный порт (его можно найти путем отключения и подключения кабеля).
  • Скачайте скетч в Ардуино. Кликните на «Upload» и дождитесь мигания светодиодов TX и RX на плате. В завершение система показывает, что загрузка прошла успешно. Через несколько секунд после завершения работы должен загореться светодиод 13 L (он будет мигать оранжевым). Если это так, система готова к выполнению задач.

Работа с роутером

Для полноценной работы «Умного дома» важно правильно обращаться с роутером. Здесь требуется выполнить следующие действия - открыть конфигурацию, указать адрес Arduino IP, к примеру, 192.168.10.101 и открыть 80-й порт.

После требуется присвоить адресу доменное имя и перейти к процессу тестирования проекта. Учтите, что для такой системы запрещено применение открытого IP-адреса, ведь в этом случае высок риск взлома через Сеть.

Расширение возможности на Ардуино

Одной из возможностей умного дома является визуализация состояния автоматики и проходящих в системе процессов. Для этого рекомендуется применять отдельный сервер, обеспечивающий обработку состояний (может применяться программа Node.js).

Упомянутая программная технология применяется для решения интернет-задач, поэтому для визуализации «Умного дома» используется язык Java Script (именно с его помощью создается обработчик и сервер). Результаты можно увидеть на экране компьютера или ПК.

Для реализации задуманного подойдет ноутбук, обычный ПК или Raspberry Pi. Применение такой системы позволяет увеличить ее возможности. Так, если на плате Ардуино имеется небольшой объем памяти, на сервере такие ограничения отсутствуют. Программа пишется таким образом, чтобы обеспечить полное управление платформой.

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

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

Общение с Arduino

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

Оформление и отправка сообщения контроллеру называется программированием. Чтобы упростить процесс, разработана среда Arduino IDE, в состав которой входит множество программ. Их изучение позволяет получить массу полезной информации о работе с Ардуино.

Как можно управлять?

Как отмечалось, сервер Node.js позволяет связать между собой оборудование в доме. Одним из способов управления процессами являются облачные сервисы в Сети. При этом включить отопление или бойлер можно за один-два часа до приезда.

Еще один способ - управление с помощью сообщений (MMS или SMS). Этот вариант актуален в случае, когда нет связи с Интернетом. Одним из преимуществ системы является возможность получения информации о форс-мажорной ситуации (например, протечке). Здесь помогает плата Edison от компании Intel.

В итоге, что мы получим?

Сегодня Arduino востребовано среди людей, которые ничего не знают о программировании.

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

Как видно, Ардуино - не просто плата, позволяющая подключить различные устройства. Это мощная база, которую можно использовать для создания «Умного дома». При этом нет нужды тратить большие деньги за дорогостоящие устройства, стоимость которых в 5-10 раз больше.

Это и есть основные преимущества системы.

К особенностям платы стоит отнести возможность подключения к компьютеру и получения визуализации процессов на дисплее планшета или ПК.

Управление автоматикой возможно через Интернет или посредством сообщений. Так что Ардуино отлично подходит для создания устройств повышенной сложности.

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

Что за система?

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

Что по факту представляет собой данная система? Это набор датчиков и контроллеров. Они существуют различных видов, поэтому могут реагировать как на движения, так и на тепловую энергию. Такие устройства способны контролировать работу дома: коммуникации, систему безопасности и так далее. Существуют и более «разумные» сооружения, которые могут самостоятельно включать отопление, запускать различные процессы и так далее. Каждый человек хочет прийти домой, где его будет ждать горячая ванная, разогретый ужин. «Умный» дом - самое лучшее решение для тех, кто живет один. Если нет средств на такую систему, то ее можно сделать самостоятельно.

Как работают датчики?

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

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

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

Почему «Ардуино»?

Этот вопрос вполне логичный и понятный. Выше уже писалось о том, что компания выпускает простые для понимания системы, но это не единственная причина, по которой следует выбрать Arduino. Наборы для «Умного дома» приобрести можно в магазине или же заказать на сайте. Установку провести разрешается самостоятельно, но никто не откажет в предоставлении квалифицированного мастера. Он выполнит все работы без ошибок и не будет пренебрегать красивым оформлением (например, спрячет провода, а не «вывалит» их на всеобщее рассмотрение). Но большая часть клиентов все же решает проводить все работы самостоятельно. Почему? Это намного проще и дешевле. Все фирмы, которые выпускают подобные проекты, здорово накручивают цену и на словах завышают качество многих моделей. Описываемая компания таким не занимается. Отзывы в Интернете это подтверждают на все 100 %.

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

На платформе Arduino имеется куча библиотек с поэтому найти себе подходящую программу не составит труда.

Наборы

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

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

Arduino Starter Kit - базовый набор, с которого все владельцы советуют начать ознакомление. В нем поставляется плата Arduino UNO, датчики, экран, резисторы и так далее. Стоит он около 80 евро.

«Матрешка» предназначена для детей от 10 лет. Она продается в нескольких версиях, которые между собой отличаются количеством и типом деталей, соответственно, с помощью каждого из них можно осуществить совершенно отличные друг от друга эксперименты. Поставляется плата Arduino UNO Rev3, произведенная в Италии. С помощью этого набора можно сделать ночной светильник, миксер, тестер для батареек и так далее.

«Амперка», как правило, приобретается для учебных учреждений. Она производится для детей от 12 лет. По окончании занятий дети смогут создать робота, который движется по прямой линии. Контроллер поставляется модели Arduino Uno.

Наборы «Дерзай» («Умный дом») на Arduino на данный момент наиболее популярны.

Платформы

Стандартная платформа - Arduino Uno. «Умный дом» часто работает на ее базе. Она распространена больше всего, так как стоит недорого. Используя ее, можно с легкостью управлять микроконтроллерной техникой. Если человек не знаком с платами от Arduino, то все владельцы советуют ему начать знакомство именно с этой.

Arduino Leonardo стоит немного дешевле вышеописанного варианта. Дело в том, что, в отличие от Uno, его можно использовать как USB-устройство. Например, благодаря этой плате можно управлять мышью и клавиатурой.

Почему чаще всего создается «Умный дом» на Arduino Mega2560? Она лишь немного внешне отличается от Uno, но имеет больший функционал. Используют ее зачастую для работы одновременно с большим количеством устройств. Соответственно с ней намного проще работать, когда речь идет о масштабных проектах. В целом если планируется создание «Умного дома», Arduino Mega - наиболее подходящий вариант.

Преимущества системы

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

Производитель предусмотрел возможность создавать собственные программы - исходный код открыт. Используемый язык максимально прост в освоении. Если есть необходимость, можно переносить программы при помощи USB-кабеля. Наборы «Умного дома» довольно интересны.

То есть при знании языка программирования можно приобрести только один вариант программного обеспечения и подстроить его максимально под себя.

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

Принципы работы

Датчики передают информацию на компьютер или телефон при помощи технологии беспроводной передачи данных. Специальная утилита обрабатывает данные - выполняется команда. Имеется главный датчик (центральный), который можно либо приобрести, либо сделать самостоятельно. На платах Arduino (проекты «Умного дома разработаны на них) присутствуют стандартные разъемы. Благодаря этому можно с легкостью подобрать все комплектующие.

Что необходимо для сборки?

Если появилось желание собрать проект самостоятельно, то необходимо собрать некоторые устройства и взять приборы. Какие?

  • Датчики и контроллеры.
  • Интернет-модуль.
  • Витую пару (кабель).
  • Переключатель.
  • Резистор.
  • Провод для интернет-модуля.
  • Реле.

Из принадлежностей понадобятся паяльник, отвертки и так далее.

Наборы от компании Arduino нужно приобретать в проверенных магазинах. Почему? Все необходимые приборы нужны для работы с электричеством, именно поэтому подделки использовать опасно. Все необходимые утилиты можно скачать из Интернета. Поэтому довольно просто создать «Умный дом» своими руками на базе Arduino.

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

Процесс установки

Обратить внимание нужно на то, что «Умный дом» должен иметь лишь лампы светодиодного типа. Обычные варианты не смогут выдержать напряжения - либо лопнут, либо просто перегорят.

После того, как проект «Умный дом» на Arduino уже будет готов, нужно начать подключать контроллеры и датчики. Делают это, не отклоняясь от чертежа и схемы, которые были созданы ранее. Контакты должны быть изолированными.

Все работы можно представить поэтапно в виде алгоритма:

  1. Установка кода.
  2. Настройка приложения под компьютер или телефон.
  3. Переадресация портов.
  4. Тестирование датчиков и обеспечения.
  5. Устранение неполадок, если таковые выявлены при проверке.

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

Программное обеспечение «Умного дома» на Arduino будет отображать состояние датчиков и информацию с них. Если есть необходимость, всегда можно поменять сетевой адрес, выключить сигнализацию.

Работа с роутером

На роутере нужно открыть порт. Что следует сделать, чтобы выполнить это действие? Открыть меню конфигураций, написать сетевой адрес Arduino и активировать порт.

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

Дистанционное управление

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

Имеется еще один способ, который поможет управлять домом, - СМС-сообщения. Не всегда бывает так, что имеется интернет-соединение, поэтому такой способ довольно актуален.

Итоги

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

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

Мир не стоит на месте. Техника проникает в жизнь людей. С каждым днём все сложнее представить себе повседневность без электроники. И если раньше все это было доступно только состоятельным людям, то теперь техника находится в каждом доме и делает жизнь проще и интересней.

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

«Умный» дом - что это?

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

В реальности все, конечно, не так волшебно и красочно. Нынешние машины и компьютеры ещё не достигли такого уровня развития. Поэтому функции современного «умного» дома ограничены. К примеру, датчики могут контролировать:

  • Включение-выключение света.
  • Расход энергии.
  • Температуру.
  • Влажность в доме.

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

Технология сборки

«Умный дом» - это всего лишь контроллеры с датчиками , основной целью которых является считывание информации и, исходя из этого, выполнение соответствующих команд. К примеру, контроль температуры в помещении. Если в комнате температура падает ниже ранее установленного уровня, то система автоматически включает обогрев комнаты. Это только один из примеров функций «умного дома». Подобные контрольные датчики установлены по всему дому и выполняют самые разнообразные функции.

Итак, как сделать свой дом «умным»? Что для этого нужно? Для начала нужно заняться закупкой необходимых контроллеров , которые будет необходимо запрограммировать и наладить. На первый взгляд все достаточно просто, но на самом деле могут возникнуть проблемы с эксплуатацией самой системы, для сборки и управления которой необходимы определённые знания. Поэтому компания Arduino постаралась максимально упростить свою систему, с которой может справиться даже ребёнок.

Что такое система Arduino ?

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

Принцип работы Arduino

Как же работает система Arduino? Очень просто. Установленные по всему дому или квартире датчики считывают информацию об окружающей среде и передают все данные на компьютер , который самостоятельно принимает решения. Функционировать эта система может на компьютере, ноутбуке, планшете или даже телефоне. Все программы для ардуино можно найти в свободном доступе. Все «железо» производитель делает максимально стандартизированным под системные разъёмы.

Функции системы Arduino

Система ардуино для проекта «умного дома» должна выполнять следующие функции:

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

Преимущества

  • Цена.
  • Качество.
  • Удобство.
  • Простота монтажа и проекта в целом.
  • Низкая стоимость в случае поломки или выхода из строя отдельных комплектующих.
  • Доступность программного обеспечения.

То, что получилось в итоге, можно назвать, пожалуй, самым дешевым решением для создания Умного дома, которое, тем не менее, умеет:

  • Управлять освещением и силовыми устройствами(Реле, диммеры DMX-512 и Modbus RTU)
  • Управлять теплыми полами (в качестве термодатчиков используются полтора десятка дешевых DS18B20, разведенных по квартире)
  • Управлять задвижками вентиляции/кондиционера
  • Управлять самодельной системой приточной вентиляции.
  • Многое такого, о чем я изначально не задумывался, просто в силу того, что контроллер получился абсолютно открытым, гибко конфигурируемым, и прекрасно дополняющим Опенсорсные решения Openhab+Mosquitto+NodeRed
На вход контроллера подключаются обычные выключатели, кнопки, контактные датчики, датчики протечки и пр. которые могут управлять как локальными нагрузками так и устройствами, подключенными к другим таким же контроллерам или ко всему, что понимает протокол MQTT. У меня, например, подключен геркон, установленный в коробке входной двери. Когда закрываю замок на три оборота - выключаются свет, теплые полы, бойлеры, AV ресивер. Когда возвращаюсь - состояние этих приборов восстанавливается как было до ухода.

Serial CLI при создании нового контроллера надо прописать в NVRAM уникальный MAC адрес. Именно MAC является ключом, по которому изначально загружается конфигурация c http сервера.

В качестве управляющего ПО я взял Openhab 2, имеющий весь нужный мне функционал, плюс, мобильное приложение, плюс «Облако» - роль которого, правда, только в том, чтобы предоставлять доступ к домашней инфраструктуре извне, не прокидывая портов на роутере и не обладая фиксированным IP. Также, Openhab имеет интеграцию с HomeKit от Apple, что позволяет управлять устройствами дома с iPhone, вообще без установки аппликации. (Возможность интересная, но пользуюсь, в основном, «родным» приложением).

Немного скриншотов Openhab



Наличие в проекте квартиры большого кол-ва светодиодного освещения, также, требовало какого-то разумного управления.

Подробности по LED освещению

Решения, обнаруженные на рынке были либо закрытыми «вещами в себе», либо стоили неадекватных денег, поддерживая при этом немного каналов. Часто, производители ограничивались тремя каналами (RGB), хотя, вариант RGBW позволяет использовать светодионые ленты в качестве основного освещения, а не просто для цветовой подсветки.

Подумав, я заказал на АliExpress пару плат , каждая из которых может управлять 30-ю каналами LED с номинальным током до 2А на канал.

Для того, чтобы увеличить максимальную мощность одного канала, я перешел со светодиодных лент на 12В на 24В ленты. При этом, полноценно осветить комнату около 16-18 кв. м оказалось возможным при помощи 4-х ключей. БОльшие по площади помещения пришлось зонировать - в гостиной подключил независимо 4 ленты по 5 м, задействовав при это 16 каналов.

Для синхронного управления всей комнатой, пришлось придумать тип канала «группа»

Вот как выглядит описание гостиной в JSON конфиге:

"kuh":], "kuhwin":, "kuhline":, "kuhfre":, "kuhwork":,
Первый элемент массива - тип канала, второй - параметр канала, который может являться массивом.

Для элемента типа 7 (группа) - аргументом является массив элементов, входящих в группу.
Рекурсия, конечно же, поддерживается.

Для элемента типа 1 (лента RGBW) - аргумент - базовый DMX адрес канала.

Со стандартной библиотекой EasyDMX платы не заработали сразу. Как оказалось, китайский LED контроллер не переваривал 2ms задержку между фреймами DMX (interframe delay). Несложная модификация кода библиотеки (сокращение цикла в два раза) помогла.

Подробности по кондиционированию

К сожалению, не удалось найти приводов воздушных заслонок с ШИМ или каким-то цифровым входом, поэтому на том же AliExpress были приобретены 4 преобразователя ШИМ в стандартный аналоговый сигнал 0..10В.

К сожалению, на Aliexpress этих устройств уже не вижу, но на e-bay - пожалуйста

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

Ниже пример перепрограммирования таймеров 3 и 4 (отвечают за pin-ы 2, 3, 5, 6, 7, 8 Arduino Mega на частоту 4000Гц).

PinMode(iaddr,OUTPUT); //timer 0 for pin 13 and 4 //timer 1 for pin 12 and 11 //timer 2 for pin 10 and 9 //timer 3 for pin 5 and 3 and 2 //timer 4 for pin 8 and 7 and 6 int tval = 7; // 111 in binary - used as an eraser TCCR4B &= ~tval; // set the three bits in TCCR2B to 0 TCCR3B &= ~tval; tval=2; //prescaler = 2 ---> PWM frequency is 4000 Hz TCCR4B|=tval; TCCR3B|=tval; analogWrite(iaddr,k=map(Value,0,100,0,255));


Далее, я начал искать WiFi контроллеры теплых полов. Нашел, в целом, неплохое устройство стоимостью около 6 тыс руб от Теплолюкс, но оно имело некоторые существенные для меня недостатки.

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

Получилось следующее:

  • Все управление - локально на контроллере и независимо от домашней ИТ инфраструктуры
  • Используются измерения с 1-wire термодатчиков. Если датчик долгое время не может быть опрошен - нагреватель отключается.
  • Через MQTT можно включить/выключить теплый пол и задать его температуру. Соответственно, полы управляемы через интерфейсы и мобильное приложение Openhab
  • Я не стал реализовывать хитрые сценарии и расписания на контроллере. При желании, это легко реализуется правилами Openhab или Node-Red. Я ограничился только отключением устройств, когда люди покидают дом.
Вот пример конфига для одного теплого пола:

"ow":{ "2807FFD503000036":{"emit":"t_bath1","item":"h_bath1"} }, "items":{ "h_bath1":, },
Данные при опросе термометра OneWire с указанным адресом передаются на шину MQTT в топик t_bath1, а также, внутри контроллера, объекту h_bath, имеющему тип №5 (термостат), реле подключено к pin#24 контроллера, уставка - 33 градуса (можно корректировать по MQTT)


Входы устройства

В конфиге для каждого входа можно задать как передачу команды локальному объекту так и выдачу команды в MQTT топик. Причем, отдельно как на условное «нажатие» кнопки так и на «отпускание».

Примеры:

"in":{ "41":{"emit":"/myhome/in/all","scmd":"HALT","rcmd":"REST"}, "38":{"item":"spots_en"}, "37":{"emit":"/myhome/in/light","scmd":"ON","rcmd":"OFF"}, "40":{"emit":"/myhome/in/gstall","scmd":"TOGGLE","rcmd":"TOGGLE"}, "35":{"emit":"/myhome/s_out/water_leak"} }
Pin 41: Геркон на замке входной двери - при запирании - выдаем в топик /myhome/in/all команду HALT, при отпирании - команду REST.

У меня это приводит к полному «засыпанию» и «просыпанию» дома. К слову - команды не входят в стандартный набор OpenHab, но получились крайне удобны - HALT - выключает устройство, REST - восстанавливает параметры устройства до последнего значения (цвет, яркость, температура), но только для того устройства, которое было выключено командой HALT а не OFF. Это позволяет не включать то, что было выключено на момент покидания дома.

Pin 38: Просто обычный выключатель света. При замыкании - выдает (по умолчанию) команду ON, при размыкании - команду OFF. Эти значения передаются объекту «spots_en». Понятно, что состояние обьекта можно изменить с мобильного приложения. В этом случае, выключатель, как бы, остается, например, во включенном положении, но свет выключен.

Для любителей классических проходных выключателей, подойдет синтаксис Pin 40: И при включении и при выключении выдается команда TOGGLE (тоже, кстати, новая, относительно OpenHab), меняющая положение Вкл-Выкл устройства (в данном примере, лампа управляется не локально, а через MQTT другим контроллером).

Если это не перекидной выключатель а кнопка - достаточно просто скорректировать «rcmd»:"" - при этом команда на переключение будет выдаваться только при нажатии.


А, ну и почти забыл описать DMX-IN - вход, ради которого, можно сказать, я и начинал эту разработку.

На рынке масса удачных с дизайнерской точки зрения и, в целом, эргономичных DMX контроллеров светодиодных лент.

Один из таких (сенсорную панель) я и купил в самом начале для экспериментов с DMX. Все хорошо, но архитектура DMX не предусматривает никакого управления из более чем одного места. Существует один Мастер, который постоянно транслирует в шину яркости каналов. Но в этом проекте данная проблема решена. Контроллер LightHub отслеживает изменения каналов DMX на входе, подключенном к сенсорной панели. Если они изменяются - транслирует изменения на выход (с маппингом на сконфигурированные устройства, в том числе, на группы светодиодных лент).

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

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

Заключение

К сожалению, в одной статье невозможно описать все нюансы, заложенные в разработку.
Например, совсем за кадром осталась тема подключения Modbus устройств, их пуллинг и синхронизация локального состояния устройства с системой Умного Дома, интеграция с простой приточной установкой. Ну и, возможно, сравнение с существующими системами близких классов, такими, например, как MegaD-328, AMS и, даже, WirenBoard. Возможно, если будет заинтересованность - продолжу.

Также, пока за кадром то, что с использованием NodeRed удалось проинтегрировать систему с Telegram. Пока работает для получения оповещений, но можно создать полноценный Bot.

Относительно проекта LightHub - при всей дешевизне, контроллеры оказались вполне рабочим решением. Честно говоря, я сам не верил, что на основе Arduino можно создать стабильно работающую систему, но, по-моему, это удалось.

Конечно, надо многое еще доделать: полностью уйти от хардкода (осталось совсем чуть-чуть), немного и местами почистить и рефакторить код, тщательно документировать проект, развести печатную плату (сейчас интерфейсные Шилды спаяны просто на основе макетных плат и содержат три MAX-485 - (DMX-IN, DMX-OUT, Modbus) и 1-Wire мост) - и это станет, по сути, очень бюджетным готовым решением.

Warning: Напоминаю, что проект пока на уровне макетных плат. Открывая следующий спойлер, вы можете нанести урон своим эстетическим чувствам.

Немного картинок


Первый контроллер, управляющий LED (60 каналов DMX-512), Modbus (диммеры, приточка), заслонки ветиляции;


Это DMX-512 декодер, который удобно размещать там, где светодиодные ленты приходят к трансформаторам. У меня - под фальшпотолком в кладовке.

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

Понятно, что надо расширять функционал. Как минимум, в направлении беспроводных датчиков/устройств. (Хотя, например, ZWave и так сейчас можно использовать через стандартные биндинги Openhab).

Возможность подключения, например, бюджетного NooLight, вероятно, неплохая идея. Возможно, подумаю над миграцией на ESP-8266 для расширения RAM, хотя, уход на WiFi с проводного подключения к LAN мне не нравится с точки зрения надежности. Да и ESP не обладает такой богатой переферией как Arduino Mega. Еще планирую сделать учет электроэнергии через датчики тока и подключение Rotary Encoder на вход.

Также, полезно было бы сделать конфигурирование и запуск контроллера более User Friendly (визуальные конфигураторы и пр.). При этом, сознательно не хочется превращать контроллер в вебсервер с файлами/картинками, AJAX и пр. На мой взгляд, это уже должно являться прерогативой сервера. Хотя бы на основе Raspberry.

Но поскольку проект абсолютно Опенсорсный - возможны разные варианты, присоединяйтесь.
Также, с нетерпением ожидаю ваших отзывов.

UPDATE:

После публикации статьи, объединив усилия вместе с одним из жителей Хабра и нарисовав принципиальную схему LighthHub Shield, приступили к разводке печатной платы, с учетом всего осмысленного опыта и комментариев
  • Плата будет совместима как с Arduino Mega (5v) так и с Arduino DUE (ARM 3,3В)
  • Встроенный интерфейс Ethernet на базе Wiznet5500
  • 8 опторазвязанных дискретных входов, 8 дискретных входов/выходов с защитой по напряжению/току
  • 8 аналоговых входов с защитой по напряжению/току. В дальнейшем, предполагаю использовать аналоговые входы для контроля потребляемой мощности (датчики тока) и для того, чтобы подключать внешние потенциометры (диммеры)
  • 8 ШИМ выходов, 4 из них с мощными выходными ключами (до 500 мА/50В) + 4 дискретных мощных выхода. Позволят подключить локально к контроллеру, например, несколько пускателей или даже не сильно длинную RGBW LED ленту.
  • Разьем формата UEXT , который позволит, впоследствии, подключить к контроллеру совместимую переферию - например дополнительные радиомодули, для соединения с беспроводными устройствами.
  • Остальные входы/выходы будут выведены без защит на разъемы RJ45 для подключения локальных устройств (релейные платы, ЦАП и пр)
  • 1-wire
  • dmx-512
  • dmx
  • Node-Red
  • modbus
  • iot
Добавить метки

История создания проекта для автоматизированных систем и робототехники Arduino берет начало с 2005 года. Тогда в итальянском институте студент Эрнандо Барраган создал платформу c аппаратно-программной частью, которая впоследствии стала основой для этого проекта. На данный момент платформа Arduino пользуется невероятным успехом. Сейчас с ее помощью создаются автоматизированные системы, которые используются на различных этапах производства.

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

Разнообразие Ардуино плат и их использование в умном доме

Актуальными на данный момент являются версии таких наборов плат Arduino:

  • MICRO;
  • PRO MINI;
  • NANO.

а также новинки, которые появятся в ближайшем будущем:

  • MEGA 2560;
  • ZERO;

Кроме официального производителя плат Arduino процессорный гигант Intel подключился к созданию Ардуино подобных плат, выпустив Intel Galileo. Уже сейчас компания Intel официально запустила по этой программе три платы:

  • Intel Galileo;
  • Intel Galileo Gen 2;
  • Intel Edison.

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

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

  • Управлять кондиционером через приложение на Andoid или iOS;
  • Удаленно управлять системой электропитания в доме;
  • Удаленно узнавать информацию о температуре дома;
  • Управлять телевизором через приложение на Andoid или iOS;
  • Управлять ресивером;
  • Управлять освещением в доме;
  • Получать всю информацию об устройствах, подключенных к умному дому через Интернет;
  • Управлять солнечными панелями;
  • Управлять температурным режимом в доме.

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

Установка IDE для Arduino

На сайте официальном сайте выложена собственная программная оболочка IDE, которая является бесплатной и поддерживается всеми популярными операционными системами. С помощью IDE пользователь может создавать свои программы, которые можно загрузить в печатную плату Ардуино. Скачать IDE можно на официальном сайте перейдя по адресу https://www.Arduino.cc/en/Main/Software. На данный момент используется версия IDE Arduino 1.6.6. Рассмотрим подробнее процесс установки IDE для платформы Windows. После загрузки запустите инсталлятор и нажмите кнопку «I Agree».

В следующем окне оставляем все галочки и нажимаем кнопку «Next».

Выбираем место установки IDE и нажимаем кнопку «Install».

Начнется процесс установки.

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

Напишем простую программу и загрузим ее в Ардуино

IDE для Arduino использует упрощенный язык программирования C++, понятный начинающим программистам. Для примера напишем программу, которая будет включать светодиод с интервалом 1.5 секунды. Для этого запустите IDE и вставьте код, расположенный ниже:

В строке «int ledPin = 13» объявляем переменную цифровую ledPin и присвистываем ей значение 13. В функции «setup» устанавливаем порт 13 как исходящий. В цикле «loop» с помощью оператора «digitalWrite» включаем и отключаем светодиод. А с помощью оператора «delay» делаем задержку в 1,5 секунду два раза. В итоге бесконечный цикл «loop» будет отключать, и включать наш светодиод на 1,5 секунды.

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

Для загрузки программы в Arduino Uno необходимо подключить плату к компьютеру с помощью USB кабеля. При успешном подключении загорится светодиод «ON» и замигает светодиод «L».

После этого в меню «Скетч» нажмите кнопку загрузка.

После компиляции и загрузки программы на устройстве начнет мигать светодиод.

Итог

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

Видео по теме