Arduino — популярная платформа для создания автоматики своими руками. Она подходит для изготовления автоматики в сельском хозяйстве, в рекламной деятельности, в сфере игровых развлечений и других видах деятельности.
Можно ли изготовить на платформе Arduino систему «умного» дома своими руками? Стоит рассмотреть и этот вопрос подробно, на примере одного проекта.
Начальные условия
Необходимо сделать автоматику в однокомнатном доме. Всего в доме пять зон: крыльцо, прихожая, санузел, кухня и комната проживания. На крыльце есть свет, который хозяева включают в тёмное время суток при входе или выходе из дома. В прихожей свет включается, когда хозяева приходят или уходят из дома. В санузле находится бойлер для нагрева воды, а также система вентиляции и освещения.
На кухне и в комнате в зимнее время включаются нагревательные приборы — электрические конвекторы. На кухне есть вытяжка, которая включается при приготовлении пищи. Также в доме установлена пара рекуператоров: на кухне и в комнате.
Составление проекта Arduino
- Крыльцо. Здесь необходимо сделать включение света при приближении хозяина к дому в тёмное время суток. Также необходимо сделать автоматическое включение света при открывании входной двери при выходе из дома.
- Прихожая. Автоматическое включение света при наступлении тёмного времени суток и обнаружения движения. В ночное время включаться должна маломощная лампочка, чтобы резким светом не будить других проживающих.
- Санузел. Нагревание воды в бойлере происходит в зависимости от того, обнаруживает ли автоматика нахождение в доме хозяина. Сам бойлер снабжён внутренним выключателем электричества — при достижении водой предельной температуры он отключается. Когда заходит человек в санузел, то необходимо автоматически включать вытяжку и свет.
- Кухня. Свет на кухне включается и выключается вручную. Но имеется возможность выключения света при фиксации длительного отсутствия движения. При готовке пищи автоматически включается вытяжка.
- Комната. В комнате, как и на кухне свет включается вручную, но при фиксации отсутствия движения есть возможность автоматического выключения света.
Отопительные приборы и рекуперация воздуха. Отопительные приборы работают на поддержание заданной температуры в доме. При фиксации отсутствия хозяина, минимальная поддерживаемая температура снижается на определённое количество градусов. Как только происходит фиксация присутствия хозяина в доме, автоматически нижний порог переключается в нормальный режим поддержки температуры. Рекуперация воздуха происходит при фиксации присутствия хозяина, но не реже чем 10 минут в час.
Какие решения предлагает Arduino
Как видно из данной постановки задач нам, кроме платы Arduino, понадобятся: датчики движения, датчики открывания двери, датчики температуры и освещённости. Для включения электрических приборов нам могут понадобиться реле. В качестве датчика фиксации открытия двери может быть применён обычный геркон. Все датчики можно купить для платы Arduino.
Так как количество датчиков достаточно большое для такого маленького дома, то для платформы Arduino существуют платы расширения. Всё, что необходимо, это правильно подключить датчики к прибору и написать программу, которая будет являться «сердцем» «умного» дома.
<center></center>Прошить плату Arduino легко с помощью специальной программы, которая выпускается для любой операционной системы, а также кабеля USB. Не нужно никаких программаторов, как в случае разработки автоматики на микроконтроллерах.
Программа, которая прошивается в Arduino, пишется на языке Си. Безусловно, есть ограничения на количество байт этой программы. Для реализации поставленной задачи объёма памяти вполне хватит.
Визуализация «умного дома» и расширение возможностей на Ардуино
Безусловно, для визуализации процессов «умного» дома можно было бы использовать ЖК-дисплей, любые цифровые табло. Но всё-таки, для «умного» дома это не является хорошим решением.
Для визуализации процессов и состояний автоматики на платформе Arduino лучше всего использовать отдельный сервер обработки состояний. Этот сервер может быть реализован на программной технологии Node.js, позволяющей реализовать любой сервер, в том числе и для обработки состояний платы Arduino.
Node.js используется для решения задач Интернета вещей, поэтому для визуализации автоматики «умного» дома он точно подойдёт. Достаточно создать сервер и обработчик на языке JavaScript, и можно будет отображать результат в браузере компьютера или планшета.
В качестве «железа» сервера можно использовать микрокомпьютер Raspberry Pi или обычный стационарный компьютер или ноутбук. При этом расширяются возможности самой системы автоматизации.
Если на плате Arduino ограниченный объём физической памяти, то на сервере этот объём ничем не ограничен. Саму программу сервера можно написать так, что она будет полностью управлять платформой Arduino.
Например, можно расширить функционал нашего «умного» дома и приблизить его к умному дому без кавычек. Есть возможность написать такой алгоритм, который будет вести статистику нахождения хозяина в доме и его возвращение домой. Если хозяин обычно возвращается домой в районе 17:30, то за час можно включить бойлер для нагрева воды. Также, ориентируясь на это время, можно заранее включить отопительные приборы, чтобы возвращение было уже в тёплый дом, а не в тот, где температура ниже на 10 градусов из-за экономии электричества в отсутствии хозяев. Программа может понять когда хозяева обычно ложатся спать и заранее переставать греть воду, так как ею уже никто не будет пользоваться до утра. И таких нюансов может быть множество. Именно внешний компьютер может дать продвинутые «мозги» контроллеру на Arduino, который превратится больше в исполнительный механизм.
Дистанционное управление «умным» домом
Как уже упоминалось выше, с помощью сервера на Node.js можно связать вещи друг с другом. Это касается и визуализации процессов автоматики дома в Интернете через облачные сервисы. Это один способ управления своим домом через Интернет. Можно включить бойлер или отопительные приборы вручную заранее перед приездом в дом.
Другой способ — это получение данных и управление «умным» домом на платформе Arduino с помощью SMS и MMS сообщений. Ведь далеко не всегда может быть Интернет под рукой. И, если включение какого-либо прибора может быть не критичным, то получение сообщения о протечке воды может оказаться просто необходимым. И здесь, на помощь в разработке своими руками полнофункционального «умного» дома на платформе Arduino может прийти плата Edison компании Intel.
И что же мы получаем?
Как видно, Arduino — это не просто плата для разработки каких-то простых устройств автоматики. На платформе Arduino можно легко создать своими руками даже автоматику «умного» дома. При этом нет необходимости переплачивать деньги за устройства от компании Simens, которые дороги и обойдутся в 5-10 раз дороже Arduino.
Arduino можно подключить к компьютеру и получить визуализацию процессов на экране монитора или планшета. Автоматикой «умного» дома на платформе Arduino можно управлять через Интернет или с помощью SMS и MMS сообщений. На Arduino можно создавать своими руками достаточно сложные устройства.
К настоящему времени системы типа «умный дом» из удивительной экзотики, доступной только самым состоятельным лицам, превратились в обыденность, к которой может приобщиться любой желающий. Выбирать есть из чего: выпуск подобных аппаратно-программных комплексов освоили очень многие разработчики. К числу наиболее известных принадлежит компания Arduino, с продукцией которой мы сейчас и познакомимся.
Что такое «умный дом»
У этого термина есть более понятный аналог — «домашняя автоматизация». Суть подобных решений состоит в том, чтобы обеспечить автоматическое выполнение различных процессов, происходящих в жилище, офисе или на специализированных объектах. Простейший пример — автоматическое включение освещения в тот момент, когда кто-то из жильцов входит в комнату.
В любой системе «умный дом» можно выделить следующие составляющие:
- Сенсорная часть. Это набор устройств, основная часть которых представлена всевозможными датчиками, позволяющими системе регистрировать события различного характера. Примерами могут служить датчики температуры и движения. Прочие устройства сенсорной части служат для передачи системе команд пользователя. Это выносные кнопки и пульты дистанционного управления с приёмниками.
</p>
- Исполнительная часть. Это устройства, которыми система может управлять, реагируя таким образом на то или иное событие в соответствии с заданным пользователем сценарием. Прежде всего, это реле, посредством которых контроллер «умного дома» может подавать питание на любой электрический прибор, то есть включать и выключать его. Например, по хлопку в ладони (система «услышит» его при помощи микрофона) можно настроить включение реле, подающего питание на вентилятор. Обратите внимание: в этом примере вентилятор может быть любым. Но можно применить и прибор, специально выпущенный для работы в составе той или иной системы. Например, компания Arduino выпускает для своих систем электромоторчики, при помощи которых можно, допустим, закрывать или открывать форточку, а компания Xiaomi (китайский производитель подобных систем) — устройства управления воздухоочистителем. Такой прибор полностью контролируется системой, то есть она может не только включить его, но и изменить настройки.
</p>
- Процессор. Может также называться контроллером. Это «мозг» системы, который координирует и согласовывает работу всех её составляющих.
</p>
- Программное обеспечение. Это набор инструкций, которыми руководствуется процессор. В системах некоторых производителей, в том числе и от Arduino, пользователь может написать программу самостоятельно, в других — используются готовые решения, в которых пользователю доступны лишь типовые сценарии.
Современные системы «умный дом» делятся на несколько разновидностей:
- Оснащённые собственным контроллером.
- Использующие в этом качестве процессор пользовательского компьютера (планшета, смартфона).
- Обрабатывающие информацию при помощи удалённого сервера, принадлежащего компании-разработчику (облачный сервис).
Система может не только активировать тот или иной прибор, но и проинформировать пользователя о происшедшем событии путём отправки сообщения на телефон или каким-то иным способом. Таким образом, на неё можно возложить функции сигнализации, в том числе и противопожарной.
Сценарии могут быть гораздо более сложными, чем мы описали в примерах. Например, можно научить систему включать бойлер и переводить снабжение горячей водой на него при отключении централизованной подачи, если при этом обнаруживается присутствие кого-то из жильцов в доме (помогают инфракрасные, ультразвуковые датчики, а также датчики движения).
Знакомимся с Arduino
Arduino — итальянская компания, занимающаяся разработкой и производством компонентов и программного обеспечения для простых систем «умный дом», предназначенных для неспециалистов. Примечательным является то, что этот разработчик сделал архитектуру созданных им систем полностью открытой, что дало возможность сторонним производителям разрабатывать новые и копировать уже существующие Arduino-совместимые устройства, а также выпускать ПО для них.
Такой подход обеспечил высокую популярность системам итальянской компании, но у него есть и недостаток: из-за того что за производство компонентов для Arduino-систем берутся, так сказать, все кому не лень, не всегда удаётся с первого раза приобрести качественное изделие. Зачастую приходится сталкиваться и с проблемой совместимости компонентов от разных производителей.
Потенциальному пользователю следует знать, что с 2008 года существуют две компании, выпускающие продукцию под торговой маркой Arduino. У первой, которая начинала это направление, официальный сайт размещён по адресу www.arduino.cc; у второй, новообразовавшейся — по адресу www.arduino.org. То, что было разработано до раскола, на обоих сайтах представлено одинаково, а вот ассортимент новой продукции уже отличается.
ПО для систем «умный дом» Arduino имеет вид программной оболочки (называется IDE), в которой можно писать и компилировать программы. Распространяется бесплатно. Программы пишутся на языке C++.
Версии программы Arduino IDE, представленные на указанных сайтах, тоже сильно отличаются, хотя имеют одинаковые не только название, но и номера версий. Из-за этого в них довольно легко запутаться. Отличие состоит в том, что каждое ПО поддерживает свои библиотеки и платы.
«Железо» системы состоит из платы с микроконтроллером (процессорная плата) и установленных на ней плат расширения, которые в обиходе называют шилдами. Подключение шилд к процессорной плате позволяет добавлять к «умному дому» новые компоненты. Собранная система может быть как полностью автономной, так и работающей в связке с компьютером через стандартный проводной или беспроводной интерфейс.
Преимущества системы Arduino
Этот аппаратно-программный комплекс привлекает пользователя такими достоинствами:
- возможность автономной работы, обусловленная наличием собственного контроллера;
- широкие возможности по настройке работы системы (пользователь сам пишет программу, в которой могут быть предусмотрены сценарии любой сложности);
- простота процесса загрузки программы в контроллер: программатор для этого не требуется, достаточно иметь USB-кабель (в микроконтроллере имеется прошивка загрузчика Bootloader);
- доступная стоимость компонентов, обусловленная отсутствием у того или иного производителя монопольных прав (архитектура является открытой).
Если загрузчик Bootloader стал работать со сбоями, либо в приобретённом микроконтроллере его не оказалось, пользователь имеет возможность прошить его самостоятельно. В программной оболочке IDE для этой цели предусмотрена поддержка ряда наиболее доступных и популярных программаторов. Кроме того, почти все процессорные платы Arduino имеют штыревой разъём, позволяющий осуществлять внутрисхемное программирование.
В программе Arduino IDE, представленной на сайте arduino.cc, заложена возможность создания пользовательских аппаратно-программных платформ, в то время как в версии программы на arduino.org такая функция отсутствует.
Какие решения предлагает Arduino
Поскольку производством Arduino-совместимых датчиков и приборов занимается множество компаний, ассортимент этой продукции довольно широк. Вот что применяется чаще всего:
- Сенсоры, отслеживающие климатические параметры:
- температуру;
- влажность;
</p>
- осадки (датчик дождя и снега);
- освещённость;
- давление.
- Сенсоры, позволяющие определить пространственное положение объекта, на котором они закреплены:
- 6-осный датчик-гироскоп с акселерометром;
- компас.
</p>
- Сенсоры, позволяющие регистрировать присутствие различных объектов:
- датчик движения;
- инфракрасный датчик (зафиксирует неподвижно сидящего человека или теплокровное животное);
</p>
- ультразвуковой датчик (обнаруживает объекты с любой температурой и определяет расстояние до них).
- Аварийные сенсоры:
- датчик дыма;
- датчик огня;
- датчик утечки газа;
</p>
- датчик углекислоты.
- Прочие устройства, например:
- микрофон;
- часы;
- датчик открывания двери;
- пульты дистанционного управления (радиочастотные и инфракрасные) с приёмниками;
- удалённые кнопки.
Некоторые из этих устройств включены в состав базового набора Arduino Start, который у ряда производителей имеет название StarterKit.
Исполнительная часть содержит огромный набор устройств, например:
- электромоторы;
- реле и различные переключатели;
- диммеры (позволяют плавно менять интенсивность освещения);
- доводчики дверей;
- вентили и 3-ходовые клапаны с сервоприводами.
Если вы планируете подключить через реле Arduino освещение, то правильнее использовать в качестве светильников светодиодные лампы. Лампы накаливания при подключении через такие реле быстро горят.
Видео: начинаем работать с Arduino — управляем светодиодом через web-интерфейс
Составление проекта на Arduino
Процесс создания и настройки «умного дома» Arduino покажем на примере системы, в которую будут заложены следующие функции:
- мониторинг температуры на улице и в помещении;
- отслеживание состояния окна (открыто/закрыто);
- мониторинг погодных условий (ясно/дождь);
- генерация звукового сигнала при срабатывании датчика движения, если активирована функция сигнализации.
Систему настроим таким образом, чтобы данные можно было просматривать посредством специального приложения, а также веб-браузера, то есть пользователь сможет сделать это из любого места, где есть доступ в интернет.
Используемые сокращения:
- «GND» — заземление.
- «VCC» — питание.
- «PIR» — датчик движения.
Необходимые компоненты для изготовления системы «умного дома»
Для системы «умного дома» Arduino потребуется следующее:
- микропроцессорная плата Arduino;
- модуль Ethernet ENC28J60;
- два температурных датчика марки DS18B20;
- микрофон;
- датчик дождя и снега;
- датчик движения;
- переключатель язычковый;
- реле;
- резистор сопротивлением 4,7 кОм;
- кабель «витая пара»;
- кабель Ethernet.
Стоимость всех компонентов составляет примерно 90 долларов.
Сборка «умного дома»: пошаговая инструкция
Вот в какой последовательности необходимо действовать.
Подключение исполнительных и сенсорных устройств
Подключаем все компоненты согласно схеме.
Разработка программного кода
Пользователь пишет всю программу целиком в оболочке Arduino IDE, для чего последняя оснащена текстовым редактором, менеджером проектов, компилятором, препроцессором и средствами для заливки программного кода в микропроцессор платы Arduino. Разработаны версии IDE для операционных систем Mac OS X, Windows и Linux. Язык программирования — С++ с некоторыми упрощениями. Пользовательские программы для Arduino принято называть скетчами (sketch) или набросками, программа IDE сохраняет их в файлы с расширением «.ino».
Функцию main(), которая в С++ является обязательной, оболочка IDE создаёт автоматически, прописывая в ней ряд стандартных действий. Пользователь должен написать функции setup() (выполняется единоразово во время старта) и loop() (выполняется в бесконечном цикле). Обе эти функции для Arduino являются обязательными.
Заголовочные файлы стандартных библиотек вставлять в программу не нужно — IDE делает это автоматически. К пользовательским библиотекам это не относится — они должны быть указаны.
Добавление библиотек в «Менеджер проекта» IDE осуществляется несколько необычным способом. В виде исходных текстов, написанных на С++, они добавляются в особую папку в рабочем каталоге оболочки IDE. После этого названия этих библиотек появятся в соответствующем меню IDE. Те, что отметит пользователь, будут внесены в список компиляции.
В IDE предусмотрен минимум настроек, а возможность настройки компилятора отсутствует вовсе. Таким образом, начинающий программист застрахован от ошибок.
Вот пример самой простой программы, заставляющей каждые 2 секунды мигать подключённый к 13-му выводу платы светодиод:
void setup () { pinMode (13, OUTPUT); // Назначение 13 вывода Arduino выходом}
void loop () { digitalWrite (13, HIGH); // Включение 13 вывода, параметр вызова функции digitalWrite HIGH — признак высокого логического уровня
delay (1000); // Цикл задержки на 1000 мс — 1 секунду
digitalWrite (13, LOW); // Выключение 13 вывода, параметр вызова LOW — признак низкого логического уровня
delay (1000); // Цикл задержки на 1 секунду}
Однако в настоящий момент перед пользователем далеко не всегда встаёт необходимость лично писать программу: в сети выложено множество готовых библиотек и скетчей (загляните сюда: http://arduino.ru/Reference). Имеется готовая программа и для системы, рассматриваемой в этом примере. Её нужно загрузить, распаковать и импортировать в IDE. Текст программы снабжён комментариями, поясняющими принцип её работы.
Когда пользователь нажимает в браузере или установленном на смартфоне приложении кнопку «Refresh» (Обновление), микроконтроллер Arduino осуществляет отсылку данных этому клиенту. С каждой из страниц, обозначенных как «/tempin», «/tempout», «/rain», «/window», «/alarm», поступает программный код, который и отображается на экране.
Установка клиентского приложения на смартфон (для ОС Android)
Для получения данных от системы «умный дом» в сети можно скачать готовое приложение.
Вот что необходимо сделать владельцу гаджета:
- Скачайте файл SmartHome.apk.
- Отправьте его на телефон.
- Открыв «Менеджер файлов», разместите этот файл.
- Щёлкните на нём и выберите «Установить» (должна быть отмечена «галочка», позволяющая осуществлять установку программ вне сервиса Google Play).
</p>
- Когда установка будет завершена, активируйте приложение.
- Выполните его настройку.
С помощью этого приложения можно не только получать информацию от системы «умный дом», но и управлять ею — включать и отключать сигнализацию. Если она включена, то при срабатывании датчика движения приложению будет отправлено уведомление. Опрос системы Arduino на предмет срабатывания датчика движения приложение выполняет с периодичностью раз в минуту.
Активировав иконку «Настройки», можно отредактировать свой IP-адрес.
Настройка браузера на работу с «умным домом»
В адресной строке браузера следует ввести XXX.XXX.XXX.XXX/all, где «XXX.XXX.XXX.XXX» — ваш IP-адрес. После этого появится возможность получать данные от системы и осуществлять управление ею.
Представленный здесь программный код позволяет через браузер включать и выключать свет, тогда как в приложении для Android-смартфона такая функция не реализована.
Работа с роутером
Далее на маршрутизаторе необходимо открыть порт:
- открываем настройки маршрутизатора;
- прописываем адрес Arduino IP;
- открываем порт 80.
</p>
Настройка учётной записи на noip.com
Этот этап не является обязательным, но он необходим, если вы хотите присвоить адресу доменное имя. Для этого надо зарегистрироваться на сайте https://www.noip.com/, перейти в раздел «Add host» и ввести IP-адрес системы.
Создание проекта завершено, можно проверять работоспособность системы.
Видео: умный дом на «Ардуино»
Особенности работы некоторых аппаратных средств Arduino
Ввиду того что Arduino-совместимые компоненты выпускаются множеством сторонних компаний, качество продукции которых сама компания Arduino никак не контролирует, пользователь с большой вероятностью может приобрести компонент, работающий не совсем корректно.
Похожая ситуация сложилась в сфере разработки персональных компьютеров. В своё время компания IBM сделала архитектуру своих компьютеров открытой, вследствие чего IBM-совместимые компьютеры и отдельные компоненты стали выпускать многие компании. В итоге «персоналки» этого типа широко распространились по всему миру, однако, качество комплектующих и степень их совместимости во многих случаях оказывались не на самом высоком уровне. Противоположной тактики придерживалась компания Apple. Она ограничила круг разработчиков, имеющих доступ к архитектуре, и такую же политику провела в сфере разработки ПО. В итоге компьютеры Apple оказались менее распространёнными и более дорогими, но зато по качеству они на порядок превосходят IBM-совместимые устройства, работающие под Windows.
В отношении некоторых комплектующих для систем Arduino пользователи заметили следующее:
- Датчик температуры DHT11, поставляемый с базовым набором (StarterKit), даёт значительную погрешность в 2–3 градуса. В помещении рекомендуют применять температурный датчик DHT22, дающий более точные показания, а для установки на улицу — DHT21, способный работать при отрицательных температурах и имеющий защиту от механических повреждений.
- На некоторых микропроцессорных платах Arduino при замыкании подключённых к ним реле выходит из строя COM-порт. Из-за этого на микроконтроллер не удаётся загрузить скетч: как только начинается заливка, процессор перезагружается. Реле при этом щёлкает, COM-порт отключается и процесс загрузки скетча прекращается.
- Датчик закрытия окна/двери иногда преподносит сюрпризы в виде ложных срабатываний. С учётом этого скетч пишут так, чтобы система производила необходимое действие только по получении нескольких сигналов подряд.
- Для настройки управления процессами при помощи хлопков некоторые пользователи по неопытности вместо микрофона заказывают детектор звука с ручной настройкой порога. Для подобных целей этот компонент не подходит, так как имеет слишком малый радиус действия: хлопать приходится не далее 10 см от детектора. Кроме того, этот датчик передаёт сигналы импульсами малой продолжительности, так что при наличии большого скетча, на обработку которого уходит сравнительно много времени, микроконтроллер просто не успевает их зафиксировать.
- Для устройства противопожарной сигнализации следует использовать датчик дыма, а не датчик огня. Последний регистрирует пламя не далее 30 см от себя.
- На случай сбоя в работе микроконтроллера или ошибки в коде лучше применять нормально замкнутые реле с последовательно подключёнными ручными выключателями.
Чтобы избежать покупки низкокачественных комплектующих, бывалые пользователи рекомендуют предварительно изучать отзывы о них, опубликованные в Сети. Недорогие датчики можно покупать в нескольких вариантах, чтобы лично проверить, какой из них работает лучше.
Возможно, система «умный дом» от компании Arduino является не самой качественной, но зато широчайший выбор компонентов и их доступная стоимость точно сделали её одной из самых популярных. Воспользовавшись нашими советами, вы быстро научитесь создавать проекты Arduino, автоматизируя различные домашние процессы.
Умные дома позволяют позабыть о многих технических моментах бытовой жизни и сосредоточится на других задачах, предоставив свободное время семье или отдыху. На рынке представлены готовые решения, но не всегда такие системы подходят для реализации тех задач, что хотелось бы видеть нам. Но, есть более гибкая альтернатива, позволяющая создать умный дом своими руками на Ардуино. Именно эта система позволяет воплотить любую творческую мысль в автоматизированный процесс. Содержание
Что такое Arduino
Arduino — это платформа для добавления и программирования электронных устройств, с типами управления: ручной, полуавтоматический и автоматический. Платформа представляет собой некий конструктор, с прописанными правилами взаимодействия элементов между собой. Система открытая, поэтому каждый заинтересованный производитель вносит лепту в развитие Arduino. Функции стандартного умного дома:
- сбор информации с помощью датчиков;
- анализ данных и принятие решения, посредством программируемого микроконтроллера;
- реализация принятых решений с помощью подаваемых команд, на различные подключенные в систему устройства.
Конструктор Arduino хорош тем, что в его системе можно использовать любые элементы умного дома, от разных производителей. Эта возможность позволяет платформе не быть ограниченной лишь одной экосистемой умного дома, а подбирать любые компоненты электроники, для реализации решения собственных задач. Кроме огромного списка подключаемых в систему устройств, гибкости ей придает среда программирования C++. Пользователь может самостоятельно запрограммировать реакцию компонентов системы на возникающие события или воспользоваться уже созданной библиотекой. Полезная информация! Arduino – итальянская компания, производящая и разрабатывающая компоненты ПО, для реальных и не сложных систем Smart Home, которые ориентированы на любого человека, заинтересовавшегося в этом вопросе. Архитектура полностью открыта, поэтому сторонние разработчики (преимущественно из Китая) уже успели полностью скопировать, и выпускают собственные альтернативные элементы системы, и ПО для них. Научиться взаимодействовать с Ардуино можно двумя способами: методом самостоятельных проб и ошибок, или с помощью книги с комплектным набором для умного дома, которая расскажет о всех тонкостях работы в этой системе.
Проектирование умного дома Arduino
Умного дома «на все случаи жизни» не существует. Поэтому, его проектирование начинается с определения поставленных задач, выбора и размещения основного узла Arduino, а затем и остальных элементов. На конечном этапе связывается и дорабатывается функционал, с помощью программирования.
На базе Ардуино можно создать множество проектов, а затем скомпоновать их в единую систему. Среди таких:
- Контроль влажности в цоколе.
- Автоматическое включение конвекторов, при падении температуры в доме ниже допустимой в двух возможных вариантах – при наличии и отсутствии человека в комнате.
- Включение освещения на улице в сумерки.
- Отправка сообщений об изменениях каждого детектируемого состояния.
В качестве примера можно рассмотреть проектирование автоматики одноэтажного дома с двумя комнатами, подвальным помещением под хранение овощей. В комплекс входит семь зон: прихожая, душевая комната, кухня, крыльцо, спальня, столовая, подвал. При составлении пошагового плана проектирования учитываем следующее:
- Крыльцо. При приближении владельца к дому ночью, включится освещение. Также следует учесть обратное – выходя из дома ночью, тоже надо включать освещение.
- Прихожая. При детектировании движения и в сумерки включать свет. В темное время необходимо, чтобы загорался приглушенный свет лампочки.
- Подвал на улице. При приближении хозяина, в темное время суток, должна загораться лампа возле дверцы подвала. Открывая дверь, загорается свет внутри, и выключается в том случае, когда человек покидает здание. При выходе, включается освещение на крыльце, а по мере отхождения от подвального помещения, выключается возле дверцы. В подвале установлен контроль влажности и при достижении критической температуры, включаются несколько вентиляторов для улучшения циркуляции воздуха.
- Душевая комната. В ней установлен бойлер. Если человек присутствует в доме, бойлер включает нагрев воды. Автоматика выключается, когда максимальная температура нагрева достигнута. При входе в туалет, включается вытяжка и свет.
- Кухня. Включение основного освещения ручное. При длительном отсутствии хозяина дома на кухне, свет выключается автоматически. Во время приготовления еды автоматически включается вытяжка.
- Столовая. Управление светом происходит по аналогии с кухней. Присутствуя на кухне, есть возможность дать голосовую команду ассистенту умной колонки, чтобы тот запустил музыку.
- Спальная комната. Включение освещение происходит вручную. Но есть автоматическое выключение, если в комнате долгое время отсутствует человек. Дополнительно, нужно выключать освещение по хлопку.
По всему дому расставлены конвекторы. Необходим автоматический контроль поддерживаемой температуры в доме в двух режимах: когда человек есть в доме и вовремя его отсутствия. В первом варианте, температура должна опускаться не ниже 20 градусов и подниматься не выше 22. Во втором, температура дома должна опускаться не ниже 12 градусов. Проект готов, осталось заняться его реализацией.
Плюсы и минусы системы
Прежде чем подбирать компоненты и модули для создания автоматики в умном доме, следует уделить внимание как достоинствам, так и недостаткам системы. Преимущества умного дома Arduino:
- Использование компонентов других производителей с контроллером Arduino.
- Создание собственных программ умного дома, так как исходных код проекта открыт.
- Язык программирования простой, мануалов в сети для него много, разобраться сможет даже начинающий.
- Простой проект делается за один час практики с помощью дефолтных библиотек, разработанных для: считывания сигналов кнопок, вывода информации на ЖК-дисплеи или семи сегментные индикаторы и так далее.
- Запитать, посылать команды и сообщения, программировать, или перенести готовые программные решения в Arduino, можно с помощью USB-кабеля.
Недостатки:
- Среда разработки Arduino IDE – это построенная на Java ппрограма, в которую входит: редактор кода, компилятор, передача прошивки в плату. По сравнению с современными решениями на 2019 год – это худшая среда разработки (в том виде, в котором она подается). Даже когда вы перейдете в другую среду разработки, IDE вам придется оставить для прошивки.
- Малое количество флэш-памяти для создания программ.
- Загрузчик нужно прошивать для каждого шилда микроконтроллера, чтобы закончить проект. Его размер – 2 Кб.
- Пустой проект занимает 466 байт на Arduino UNO и 666 байт в постоянной памяти платы Mega.
- Низкая частота процессора.
Модули и решения «умного дома» на Ардуино
Основным элементом умного дома является центральная плата микроконтроллера. Две и более соединенных между собой плат, отвечают за взаимодействие всех элементов системы. Существует три основных микроконтроллера в системе:
- Arduino UNO – средних размеров плата с собственным процессором и памятью. Основа — микроконтроллер ATmega328. В наличии 14 цифровых входов/выходов (6 из них можно использовать как ШИМ выводы), 6 аналоговых входов, кварцевый резонатор 16 МГц, USB-порт (на некоторых платах USB-B), разъем для внутрисхемного программирования, кнопка RESET. Флэш-память – 32 Кб, оперативная память (SRAM) – 2 Кб, энергонезависимая память (EEPROM) – 1 Кб.
- Arduino NANO – плата минимальных габаритов с микроконтроллером ATmega328. Отличие от UNO – компактность, за счет используемого типа контактных площадок – так называемого «гребня из ножек».
- Arduino MEGA – больших размеров плата с микроконтроллером ATMega 2560. Тактовая частота 16 МГц (как и в UNO), цифровых пинов 54 вместо 14, а аналоговых 16, вместо 6. Флэш-память – 256 Кб, SRAM – 8 Кб, EEPROM – 4.
Arduino UNO – самая распространённая плата, так как с ней проще работать в плане монтажных работ. Плата NANO меньше в размерах и компактнее – это позволяет разместить ее в любом уголке умного дома. MEGA используется для сложных задач. Сейчас на рынке представлено 3 поколение плат (R3) Ардуино. Обычно, при покупке платы, в комплект входит обучающий набор для собирания StarterKit, содержащий:
- Шаговый двигатель.
- Манипулятор управления.
- Электросхематическое реле SRD-05VDC-SL-C 5 В.
- Беспаечная плата для макета MB-102.
- Модуль с картой доступа и и двумя метками.
- Звуковой датчик LM393.
- Датчик с замером уровня жидкости.
- Два простейших устройства отображения цифровой информации.
- LCD-дисплей для вывода множества символов.
- LED-матрица ТС15-11GWA.
- Трехцветный RGB-модуль.
- Температурный датчик и измеритель влажности DHT11.
- Модуль риал тайм DS1302.
- Сервопривод SG-90.
- ИК-Пульт ДУ.
- Матрица клавиатуры на 16 кнопок.
- Микросхема 74HC595N сдвиговый регистр для получения дополнительных выходов.
- Основные небольшие компоненты электроники для составления схемы.
Можно найти и более укомплектованный набор для создания своими руками умного дома на Ардуино с нуля. А для реализации иного проекта, кроме элементов обучающего комплекта, понадобятся дополнительные вещи и модули.
Сенсоры и датчики
Чтобы контролировать температуру и влажность в доме и в подвальном помещении, потребуется датчик измерения температуры и влажности. В конструкторе умного дома это плата, соединяющая в себе датчики температуры, влажности и LCD дисплей для вывода данных.
Плата дополняется совместимыми датчиками движения или иными PIR-сенсорами, которые определяют присутствие или отсутствие человека в зоне действия, и привязывается через реле к освещению.
Газовый датчик позволит быстро отреагировать на задымленность, углекислоту или утечку газа, и позволит при подключении к схеме, автоматически включить вытяжку.
Реле
Компонент схемы «Реле» соединяет друг с другом электрические цепи с разными параметрами. Реле включает и выключает внешние устройства с помощью размыкания и замыкания электрической цепи, в которой они находятся. С помощью данного модуля, управление освещением происходит также, если бы человек стоял и самостоятельно переключал тумблер.
Светодиоды могут указывать состояние, в котором реле находится в данным момент времени. Например, красный – освещение выключено, зеленый – освещение есть. Схема подключение к лампе выглядит так.
Для более крупного проекта лучше применять шину реле, например, восьмиканальный модуль реле 5V.
Контроллер
В качестве контроллера выступает плата Arduino UNO. Для монтажа необходимо знать:
- описание элементов;
- распиновку платы;
- принципиальную схему работы платы;
- распиновку микроконтролеера ATMega 328.
Программная настройка
Программирование подключенных элементов Ардуино происходит в редакторе IDE. Скачать его можно с официального сайта. Для программирования можно использовать готовые библиотеки.
Или воспользоваться готовым скетч решением Ardublock – графический язык программирования, встраиваемый в IDE. По сути, вам нужно только скачать и установить ПО, а затем использовать блоки для создания схемы.
Дистанционное управление «умным» домом
Для подключения платы к интернету, понадобится:
- Wi-Fi-адаптер, настроенный на прием и передачу сигнала через маршрутизатор;
- или подключенный через Ethernet кабель Wi-Fi роутер.
Также, есть вариант дистанционного управления по блютуз. Соответственно, к плате должен быть подключен Bluetooth модуль. Есть несколько вариантов управления умным домом Arduino: с помощью приложения для смартфона или через веб. Рассмотрим каждое подробнее.
Приложения управления
Так как данная система-конструктор – не закрытая экосистема, то и приложений, реализованных для нее очень много. Они отличаются друг от друга не только интерфейсом, но и выполнением различных задач.
Blynk
Приложение на андроид и iOS с отличным дизайном, позволяет разрабатывать проекты, имеющие напрямую доступ к триггеру событий, на плате Ардуино. Но для работы приложения нужно интернет подключение, иначе взаимодействовать с ним не возможно.
Virtuino
Крутое бесплатное приложение на Android, позволяющее совмещать проекты в одно целое и управлять с помощью Wi-Fi или Bluetooth сразу несколькими платами. Разрешает создавать визуальные интерфейсы для светодиодов, переключателей, счетчиков, приборов аналоговой схематехники. В нем есть учебные материалы и библиотека знаний о процессе работы с системой.
Bluino Loader – Arduino IDE
Приложение для телефона, представляет собой программную среду для кодирования Arduino. С его помощью можно быстро и легко скомпилировать код в файл, а затем отправить по OTG-переходнику на плату.
Arduino Bluetooth Control
Приложение контролирует контакты Arduino и управляет основными функциями по Блютузу. Но, программа не направлена на удаленное управление, только мониторинг.
RemoteXY: Arduino Control
С помощью приложения пользователь может создать свой собственный интерфейс управления платой. Подключение происходит с помощью Wi-Fi, Блютуз или интернет, через облачный сервер.
Bluetooth Controller 8 Lamp
Созданное с помощью Bluetooth-модулей HC-05, HC-06 и HC-07 приложение, обеспечивает восьмиканальный контроль. Таким способом достигается контроль и регулирование работы Ардуино, в соответствии с каждым из 8 светодиодов.
BT Voice Control for Arduino
Приложение специально заточено под дистанционное управление данными с ультразвукового датчика, подключенного по блютуз через Arduino. Реализуется подключения через модуль HC-05. Подключившись, ультразвуковой датчик сможет передавать информацию о расстоянии до объекта, которая отобразится в интерфейсе приложения на телефоне.
IoT Wi-Fi контроллер
Приложение с интерфейсом, информирующем о конфигурации каждого входа/выхода в плате Arduino. В утилите можно переключать в реальном времени GPIO и показывать значение АЦП.
Веб-клиент
Управлять удаленно платой умного дома можно, разместив получение и обработку данных умного дома на веб-сервере. Естественно, сервер для умного дома Ардуино нужно создавать самостоятельно. Для этих целей понадобится Arduino Ethernet Shield – сетевое расширение для пинов Ардуино Уно, позволяющее добавить разъем RJ-45 для подключения к сети.
При удаленном подключении, необходимо обеспечить внешнее питание платы не от USB. Затем, подключите по USB плату к компьютеру, а по Ethernet плату к роутеру, которой раздает интернет компьютеру. При правильном установлении соединения, вы увидите зеленый свечение на порту.
После этого, нужно использовать библиотеки шилдов Ethernet и в среде разработки IDE написать код для создания сервера и отправки данных на сервер. Пример самодельного сервера неплохо описан в данной инструкции.
Уведомления по SMS
С помощью подключаемой библиотеки GSM в Arduino IDE можно:
- Работать с голосовыми вызовами.
- Получать и отправлять СМС.
- Подключаться к Интернету через GPRS.
Работает схема через специальную плату расширения GSM, содержащую специальный модем.
О создании универсальной сигнализации на Arduino, с отправкой СМС уведомления на смартфон можно узнать из соответствующей видеоинструкции.
Обучение азов Arduino
С помощью приложения «Справочник по Arduino 2» можно в течении двух недель освоить материал. Приложение полностью автономно и не требует подключение к интернету. В нем описана такая информация: функции, данные, операторы, библиотеки Arduino.
После освоения азов, можно посетить ресурс Habrahabr, на котором собраны 100 уроков по программированию на Arduino.
Тем, кто привык черпать знания из книг, станет замечательным пособием для теории и практики «Джереми Блум: изучаем Arduino».
В книге приведены основные сведения об аппаратном и программном обеспечении Ардуино. Рассказаны принципы программирования в среде Arduino IDE. Автор книги учит анализу электрических схем и чтению технических заданий. Информация из книги поможет в дальнейшем определится с выбором подходящих деталей для создания умного дома. Автор приводит примеры работы электродвигателей, датчиков, индикаторов, сервоприводов, всевозможных интерфейсов передачи данных. Книга содержит иллюстрированные комплектующие, монтажные схемы и листинги программ. Самое главное, комплектующие для практики, с которыми работает автор – не дорогой, не сложный и популярный материал для экспериментальных сборок в домашних условиях. Отличным решением для заинтересовавшихся в теме, станет видео для начинающих. В нем описаны основные элементы платы, зачем они используются, а также рассказаны основы программирования в среде Arduino IDE.
Не лишним будет ознакомится на примере, как реализовано создание умного контроллера для теплицы.
Здесь вы узнаете, какие проекты умного дома на базе Ардуино уже созданы, и используются разработчиками в свое удовольствие.
Используемые источники:
- https://umniedoma.ru/umnyj-dom-na-platforme-arduino-kak-sdelat-svoimi-rukami/
- https://tehznatok.com/kak-podklyuchit/umnyiy-dom-na-arduino.html
- https://future2day.ru/umnyj-dom-na-osnove-arduino/