Этапы создания
Следует сказать, что этапы создания системы «умного дома» с привлечением специалистов или же своими руками будут одинаковыми. Правда, в последнем случае готовый вариант в целом обойдется существенно дешевле, чем если привлекать специалистов, которых на рынке и так не хватает. По этой причине зарплаты у них будут соответствующими, а значит, если вы не хотите тратить лишние средства, то можно обойтись собственными силами. Итак, начнем с комплектующих для этой системы, если вы решили все-таки создавать ее самостоятельно.
Комплектация
Если говорить о комплектации системы, то технология будет включать в себя следующий набор компонентов:
- датчик движения;
- датчик температуры и влажности;
- датчик освещенности;
- пара температурных датчиков с маркировкой DS18B20;
- Ethernet-модуль марки ENC28J60;
- микрофон;
- переключатель язычкового типа;
- реле;
- кабель типа «витая пара»;
- кабель категории Ethernet;
- резистор, имеющий сопротивление 4,7 килоома;
- микропроцессорная плата Arduino.
Алгоритм подключения
Следует сказать, что умный дом должен быть оснащен исключительно светодиодными лампочками, так как обычные варианты просто могут не выдержать большого напряжения. Когда проект будет готов, а все нужные запчасти уже приобретены, следует начать подключение датчиков и контроллеров. Делать это необходимо исключительно по схеме, созданной ранее. Контакты необходимо полностью заизолировать.
Если говорить кратко, то поэтапно алгоритм подключения будет выглядеть таким образом:
- установка кода;
- настройка приложения для ПК или мобильного;
- портовая переадресация;
- осуществление тестирования ПО и датчиков;
- устранение неисправностей, если они были выявлены при тестировании.
Итак, начнем с установки кода.
Сначала пользователю следует написать ПО в Arduino IDE. В нем представлены:
- текстовый редактор;
- создатель проектов;
- программа для компиляции;
- препроцессор;
- инструмент для загрузки ПО в мини-процессор Arduino.
Следует сказать, что существуют версии ПО для основных компьютерных ОС – Windows, Linux, Mac OS X. Если говорить об используемом языке программирования, то речь идет о C++ с рядом упрощений. Программы, написанные пользователями для Arduino, обычно называют скетчами. Ряд функций система создает автоматически и пользователю не нужно разбираться в их написании, прописывая список обычных действий. Также нет необходимости вносить файлы заголовочного типа обычных библиотек. Но пользовательские вставлять необходимо.
Добавлять библиотеки в проектный IDE-менеджер можно различными методами. В виде исходников, прописанных на С++, идет добавление в отдельную директорию на рабочей директории IDE-оболочки. Теперь имена необходимых библиотек появляются в определенном IDE-меню. Те, что вы отметите, войдут в компиляционный список. В IDE существует малое количество настроек, а задавать тонкости компилятора вообще нет возможности. Это сделано для того, чтобы несведущий человек не натворил каких-либо ошибок.
Если вы скачали библиотеку, то ее необходимо распаковать и просто вставить в IDE. В программном тексте есть комментарии, которые поясняют принцип ее работы. Следует отметить, что все приложения на Arduino работают по одной технологии: пользователь шлет запрос на процессор, а он, в свою очередь, осуществляет загрузку нужного кода на экран устройства. Когда человек нажимает клавишу Refresh, то микроконтроллер отсылает информацию. С каждой из страниц с определенным обозначением идет программный код, что будет отображаться на экране.
Следующий комплекс действий заключается в установке клиента на персональный компьютер или смартфон. Скачать его можно в интернете, в Google Play Market или из другого источника. Для того чтобы сделать это, необходимо открыть файл на телефоне, который вы скачали, после чего щелкнуть по нему и в появившемся окне нажать на клавишу «Установить». При этом следует знать, что для этого должна быть активирована опция, позволяющая осуществлять установку программ не из сервиса Google Play. Чтобы включить эту опцию, необходимо войти в раздел настроек и выбрать там пункт «Безопасность». Именно так и необходимо активировать соответствующую опцию. Когда установка завершится, то можно будет осуществить активацию приложения и настроить его.
Компания Arduino
Arduino — это итальянская компания, которая занимается производством и разработкой программного обеспечения и компонентов для систем автоматизации. Основное назначение таких простейших систем — это их использование неспециалистами, то есть обычными домовладельцами. Поэтому если вы планируете обустроить у себя дома достаточно простую и в то же время функциональную систему жизнеобеспечения, то Arduino станет для вас отличным выбором.
Предлагаемое П. О. Arduino отличается простотой использования, что позволяет самим домовладельцам компилировать программы и настраивать работу всего подключенного к микропроцессору. Программное обеспечение от этого итальянского производителя распространяется бесплатно, поэтому каких-либо сложностей с поиском таких управляющих программ у вас гарантированно не возникнет.
https://youtube.com/watch?v=kBt51h3Wf0s
В первую очередь вам необходимо будет спланировать весь функционал такой системы, правильно подобрать используемые датчики и контроллеры. Чтобы разработать грамотную схему системы на Arduino, вы должны четко представлять, какой функционал платформы вам необходим. Кому-то будет достаточно просто включения света при открытии двери, а кто-то хочет получить максимально разветвленную систему, которая будет поддерживать оптимальные показатели температуры, влажности в доме, проветривать окна, включать по расписанию отопление, выполнять другие различные работы и максимально точно контролировать все инженерные коммуникации в доме.
Этот итальянский производитель предлагает стандартную модель автоматизации, которая состоит из микроконтроллера и нескольких плат расширения. Такие платы расширения принято называть «шильды». В последующем имеется возможность подключения к ним и к процессорной плате различных дополнительных компонентов. Такая собранная система на Arduino может работать автономно по установленной пользователем программе или подключаться к компьютеру через беспроводной и проводной интерфейс.
Преимущества использования
Если говорить о преимуществах использования такого программно-аппаратного комплекса Arduino для налаживания автоматизации, то можно выделить следующие:
- Максимально широкие возможности по настройке проекта Arduino для дома.
- Работать такой программно-аппаратный комплекс может автономно.
- Простота загрузки программы в контроллер.
- Доступная стоимость компонентов.
- Существенно упрощено расширение функционала работающей в доме системы.
Управление системами
В настоящее время этот итальянский производитель предлагает различные уже готовые решения, позволяющее управлять следующими инженерными системами в доме:
- Температурой и влажностью.
- Освещенностью.
- Аварийными системами безопасности.
- Различными бытовыми приборами.
Если вам необходима простейшая система автоматизации, то можем порекомендовать базовый набор Arduino Starter Kit Uno, который включает все необходимые датчики и микроконтроллеры для управления инженерными коммуникациями в доме.
Дополнительные устройства
Впоследствии можно с легкостью расширить функционал данной системы, используя следующие исполнительные устройства:
- Доводчики дверей.
- Диммеры для освещения.
- Переключатели и различные реле.
- Электромоторы.
Основные элементы плат
Главным элементом “умного дома” является одна или несколько центральных (материнских) плат. Они отвечают за взаимодействие всех элементов. Только определив задачи, которые необходимо будет решить, можно приступать к выбору основного узла системы.
Материнская плата объединяет в себе следующие элементы:
- Микроконтроллер (процессор). Основное его предназначение – выдавать и измерять напряжение в портах в диапазоне 0-5 или 0-3.3 В, запоминать данные и производить вычисления.
- Программатор (есть не у всех плат). С помощью этого устройства в память микроконтроллера записывают программу, согласно которой будет работать “умный дом”. К компьютеру, планшету, смартфону или другому устройству его подключают при помощи USB-интерфейса.
- Стабилизатор напряжения. Необходимо устройство на 5 вольт, требуется для питания всей системы.
Под маркой Arduino выпускают несколько моделей плат. Они отличаются друг от друга форм-фактором (размером), количеством портов и объемом памяти. Именно по этим показателям нужно выбирать подходящее устройство.
Платы Arduino и шилды под них лучше приобретать у производителя, так как они качественнее совместимых устройств, которые выпускают в Китае
Существуют два вида портов:
- цифровые, которые помечены на плате буквами “d”;
- аналоговые, которые помечены буквой “a”.
Благодаря им микроконтроллер осуществляет связь с подключенными устройствами. Любой порт может работать как на получение сигнала, так и на его отдачу. Цифровые порты с пометкой “pwm” предназначены для ввода и вывода сигнала типа ШИМ (широтно-импульсная модуляция).
Поэтому прежде чем приобретать плату, необходимо хотя бы приблизительно оценить уровень ее загруженности различными устройствами. Это позволит определить нужное количество портов всех типов.
При этом надо понимать, что система “умный дом” необязательно должна быть завязана в блок управления на основе одной материнской платы. Такие функции как, например, включение искусственного освещения придомовой территории в зависимости от времени суток и поддержание резерва воды в накопительном баке являются независимыми друг от друга.
С позиции обеспечения надежности работы электронной системы лучше разнести несвязанные между собой задачи по различным блокам, что концепция Arduino позволяет легко осуществить. Если же в одном месте объединить много устройств, то возможно перегревание микропроцессора, конфликт программных библиотек и сложности при поиске и устранении программных и аппаратных неисправностей.
Подсоединение множества разнотипных устройств к одной плате обычно применяют в робототехнике, где важна компактность. Для “умного дома” лучше для каждой задачи использовать свою основу
Каждый микропроцессор оснащен тремя видами памяти:
- Flash Memory. Основная память, где хранится код программы управления системой. Незначительную ее часть (3-12 %) занимает вшитая программа загрузки (bootloader).
- SRAM. Оперативная память, где хранятся временные данные, необходимые при работе программы. Отличается высокой скоростью работы.
- EEPROM. Более медленная память, где также можно хранить данные.
Основное отличие видов памяти для хранения данных заключается в том, что при выключении электроэнергии информация, которая записана в SRAM, теряется, а в EEPROM остается. Но у энергонезависимого типа есть и недостаток – ограниченное число циклов записи. Это нужно помнить при создании собственных приложений.
В отличие от применения Arduino в робототехнике, для большинства задач “умного дома” не нужно много памяти ни для программ, ни для хранения информации.
Что такое Arduino
Arduino — это платформа для добавления и программирования электронных устройств, с типами управления: ручной, полуавтоматический и автоматический. Платформа представляет собой некий конструктор, с прописанными правилами взаимодействия элементов между собой. Система открытая, поэтому каждый заинтересованный производитель вносит лепту в развитие Arduino.
Функции стандартного умного дома:
- сбор информации с помощью датчиков;
- анализ данных и принятие решения, посредством программируемого микроконтроллера;
- реализация принятых решений с помощью подаваемых команд, на различные подключенные в систему устройства.
Конструктор Arduino хорош тем, что в его системе можно использовать любые элементы умного дома, от разных производителей. Эта возможность позволяет платформе не быть ограниченной лишь одной экосистемой умного дома, а подбирать любые компоненты электроники, для реализации решения собственных задач.
Кроме огромного списка подключаемых в систему устройств, гибкости ей придает среда программирования C++. Пользователь может самостоятельно запрограммировать реакцию компонентов системы на возникающие события или воспользоваться уже созданной библиотекой.
Полезная информация! Arduino – итальянская компания, производящая и разрабатывающая компоненты ПО, для реальных и не сложных систем Smart Home, которые ориентированы на любого человека, заинтересовавшегося в этом вопросе. Архитектура полностью открыта, поэтому сторонние разработчики (преимущественно из Китая) уже успели полностью скопировать, и выпускают собственные альтернативные элементы системы, и ПО для них.
Научиться взаимодействовать с Ардуино можно двумя способами: методом самостоятельных проб и ошибок, или с помощью книги с комплектным набором для умного дома, которая расскажет о всех тонкостях работы в этой системе.
Набор умного дома Arduino
Таблица подключения к Arduino UNO R3 элементов схемы
Сведем все соединения между Ардуино и внешними устройствами в единую таблицу, которая поможет в деле сборки готовой схемы.
Куда | Пин Arduino UNO R3 | Пин устройства/контакт |
Модуль на 4 реле D0 общее освещение, D1 отопление, D2 свет в кладовке, D3 на улице. | D0 | D0 |
D1 | D1 | |
D2 | D2 | |
D3 | D3 | |
Кнопка постановки на сигнализацию/снятия | D4 | |
Клавиша включения режима экономии/люди дома | D5 | |
D6 | ||
Коммуникация с модемом | D7 | RX |
D8 | TX | |
Светодиод охрана отключена(кр) | D9 | |
Охрана активирована (зел) | D10 | |
Хозяева дома (кр) | D11 | |
Режим экономии (зел) | D12 | |
Включение модема | D13 | D9 |
Геркон кладовка | A1 | |
Геркон дверь/калитка | A2 | |
Термометр | A3 | |
Определение наличия сети 220 В | A4 |
Планируемая система полностью не заняла все пины микроконтроллера. Еще есть место для добавления аналогового датчика и одной линии управления. Вариант — использовать свободные контакты для сенсора дыма и сигнализатора. Если планируется расширять конструкцию дальше, — придется брать микроконтроллер Arduino Mega. В нем больше портов ввода/вывода и памяти, при полной программной совместимости.
Что такое умный дом?
Для меня умный дом, это не тот который с тобой говорит, а тот который обладает возможностями к саморегуляции,. Который способен поддерживать комфортную температуру и влажность, следить за качеством воздуха, автоматически проветривать помещения, открывать и закрывать шторы, разумно использовать коммунальные ресурсы и предотвращать всевозможные недоразумения вроде протечек воды и т.п. Также очень важным преимуществом такого дома считаю возможность использования альтернативных источников энергии. Автоматическая система способна умело переключаться между различными ресурсами именно тогда, когда это наиболее эффективно, а не «когда вспомнил».
Технологии альтернативной энергетики система управления дома это две составные части домов будущего.
Представьте себе дом, который в течении дня накапливает тепловую энергию, полученную от солнца в энергоаккумуляторах, а в течении ночи использует её для отопления, который содержит воздух внутри себя всегда в идеальном для человека состоянии, который ждёт хозяина и к определенному времени включает тёплый пол, подогревает для него сауну или набирает тёплую ванную, сам поливает цветы или огород с учётом прогноза погоды или влажности почвы.
Обучение азов Arduino
С помощью приложения «Справочник по Arduino 2» можно в течении двух недель освоить материал. Приложение полностью автономно и не требует подключение к интернету. В нем описана такая информация: функции, данные, операторы, библиотеки Arduino.
После освоения азов, можно посетить ресурс Habrahabr, на котором собраны 100 уроков по программированию на Arduino.
Тем, кто привык черпать знания из книг, станет замечательным пособием для теории и практики «Джереми Блум: изучаем Arduino».
Самый популярный учебник по Arduino
В книге приведены основные сведения об аппаратном и программном обеспечении Ардуино. Рассказаны принципы программирования в среде Arduino IDE. Автор книги учит анализу электрических схем и чтению технических заданий. Информация из книги поможет в дальнейшем определится с выбором подходящих деталей для создания умного дома.
Автор приводит примеры работы электродвигателей, датчиков, индикаторов, сервоприводов, всевозможных интерфейсов передачи данных. Книга содержит иллюстрированные комплектующие, монтажные схемы и листинги программ. Самое главное, комплектующие для практики, с которыми работает автор – не дорогой, не сложный и популярный материал для экспериментальных сборок в домашних условиях.
Сборка «умного дома»: пошаговая инструкция
Вот в какой последовательности необходимо действовать.
Подключение исполнительных и сенсорных устройств
Подключаем все компоненты согласно схеме.
Сборка системы в основном сводится к подключению исполнительных устройств к соответствующим контактам процессорной платы
Разработка программного кода
Пользователь пишет всю программу целиком в оболочке Arduino IDE, для чего последняя оснащена текстовым редактором, менеджером проектов, компилятором, препроцессором и средствами для заливки программного кода в микропроцессор платы Arduino. Разработаны версии IDE для операционных систем Mac OS X, Windows и Linux. Язык программирования — С++ с некоторыми упрощениями. Пользовательские программы для Arduino принято называть скетчами (sketch) или набросками, программа IDE сохраняет их в файлы с расширением «.ino».
Функцию main(), которая в С++ является обязательной, оболочка IDE создаёт автоматически, прописывая в ней ряд стандартных действий. Пользователь должен написать функции setup() (выполняется единоразово во время старта) и loop() (выполняется в бесконечном цикле). Обе эти функции для Arduino являются обязательными.
Заголовочные файлы стандартных библиотек вставлять в программу не нужно — IDE делает это автоматически. К пользовательским библиотекам это не относится — они должны быть указаны.
В IDE предусмотрен минимум настроек, а возможность настройки компилятора отсутствует вовсе. Таким образом, начинающий программист застрахован от ошибок.
Вот пример самой простой программы, заставляющей каждые 2 секунды мигать подключённый к 13-му выводу платы светодиод:
Однако в настоящий момент перед пользователем далеко не всегда встаёт необходимость лично писать программу: в сети выложено множество готовых библиотек и скетчей (загляните сюда: http://arduino.ru/Reference). Имеется готовая программа и для системы, рассматриваемой в этом примере. Её нужно загрузить, распаковать и импортировать в IDE. Текст программы снабжён комментариями, поясняющими принцип её работы.
Все программы на Arduino работают по одному принципу: пользователь посылает запрос процессору, а тот загружает необходимый код на экран компьютера или смартфона
Когда пользователь нажимает в браузере или установленном на смартфоне приложении кнопку «Refresh» (Обновление), микроконтроллер Arduino осуществляет отсылку данных этому клиенту. С каждой из страниц, обозначенных как «/tempin», «/tempout», «/rain», «/window», «/alarm», поступает программный код, который и отображается на экране.
Установка клиентского приложения на смартфон (для ОС Android)
Для получения данных от системы «умный дом» в сети можно скачать готовое приложение.
Вот что необходимо сделать владельцу гаджета:
- Скачайте файл SmartHome.apk.
- Отправьте его на телефон.
- Открыв «Менеджер файлов», разместите этот файл.
- Щёлкните на нём и выберите «Установить» (должна быть отмечена «галочка», позволяющая осуществлять установку программ вне сервиса Google Play).
- Когда установка будет завершена, активируйте приложение.
- Выполните его настройку.
С помощью этого приложения можно не только получать информацию от системы «умный дом», но и управлять ею — включать и отключать сигнализацию. Если она включена, то при срабатывании датчика движения приложению будет отправлено уведомление. Опрос системы Arduino на предмет срабатывания датчика движения приложение выполняет с периодичностью раз в минуту.
Активировав иконку «Настройки», можно отредактировать свой IP-адрес.
Настройка браузера на работу с «умным домом»
В адресной строке браузера следует ввести XXX.XXX.XXX.XXX/all, где «XXX.XXX.XXX.XXX» — ваш IP-адрес. После этого появится возможность получать данные от системы и осуществлять управление ею.
Представленный здесь программный код позволяет через браузер включать и выключать свет, тогда как в приложении для Android-смартфона такая функция не реализована.
Работа с роутером
Далее на маршрутизаторе необходимо открыть порт:
- открываем настройки маршрутизатора;
- прописываем адрес Arduino IP;
- открываем порт 80.
Настройка учётной записи на noip.com
Этот этап не является обязательным, но он необходим, если вы хотите присвоить адресу доменное имя. Для этого надо зарегистрироваться на сайте https://www.noip.com/, перейти в раздел «Add host» и ввести IP-адрес системы.
После регистрации на сайте noip.com доступ к системе можно получать не только по IP-адресу, но и по полному доменному имени
Создание проекта завершено, можно проверять работоспособность системы.
Другие идеи проектов
Проекты умного дома на Ардуино
Проекты умного дома являются одним из примеров того, как перейти от «игрушек» и тренажеров к реальным системам, помогающими и облегчающим жизнь. Как правило, с помощью ардуино невозможно создать полноценные автономные решения, но отдельные компоненты сделать вполне реально.
При этом нужно понимать, что сталкиваясь с реальными инфраструктурными объектами, мы должны соблюдать особую предусмотрительность при работе с электричеством, отоплением, водопроводом под давлением, канализацией. Любые эксперименты здесь нужно проводить обязательно под контролем профессионала.
Что может являться прототипом умного дома на ардуино:
- Системы освещения с автоматическим включением и отключением в зависимости от показателей датчиков. Наиболее популярнее варианты – использовать датчик освещенности, PIR датчик движения или датчик звука.
- Дистанционно управляемые электрические приборы. Например, включение или выключение системы отопления в зависимости от температуры или умное управление освещением в помещениях. Здесь вам понадобятся различные виды реле и один из механизмов обеспечения беспроводной связи: WiFi, GPRS, Bluetooth или радиоканал. Управлять устройствами можно через Web-интерфейс (через браузер) или с использованием соответствующего мобильного приложения (можно написать самому или выбрать одну из готовых платформ).
- Всевозможные системы учета: воды, тепла, электроэнергии. Начинающим доступны любительские датчики напора воды, температуры, влажности, силы тока. Можно использовать и профессиональные приборы, взаимодействуя с ними по одному из промышленных протоколов. Полученные данные можно собирать локально или отправлять в облако для последующего анализа.
- Охранные системы и контролирование внештатных ситуаций. Здесь понадобится различные датчики присутствия, движения, звука, магнитные датчики Холла и другие. Естественно, не обойтись без коммуникаций и возможности быстрой передачи информации владельцу через интернет.
Каждое из этих направлений может содержать в себе десятки разных проектов. Вы можете без труда найти себе подходящий вариант в интернете или в одной из наших статей.
Проекты «Зеленой робототехники»
Юные ардуинщики, живущие в небольших городах и сельской местности, где много природы и не очень много «цивилизации», могут с успехом использовать ардуино для исследования и охраны природы, а также автоматизации сельского хозяйства. Вот некоторые из идей проектов, которые можно реализовывать своими силами на уровне прототипов и готовых решений:
- Умная теплица
- Полив растений
- Умный инкубатор
- Умный улей
- Антигрызуны
- Умный агроном
- Умный ошейник для животных
- Расширенная метеостанция
- Робот – сеяльщик
- Счетчик муравьев
Проекты с дронами: аэрофотосъемка, внесение удобрений.
Плата Arduino Mega 2560
Устройство Arduino Mega 2560 собрано на микроконтроллере ATmega 2560 (datasheet), является обновлённой версией Arduino Mega.
Для осуществления преобразования USB–UART-интерфейсов используется новый микроконтроллер ATmega 16U2 ( либо ATmega 8U2 для версий плат R1 или R2).
Состав платы следующий:
- количество цифровых входов/выходов составляет 54 (15 из них можно использовать в роли выходов-ШИМ);
- число аналоговых входов – 16;
- реализация последовательных интерфейсов производится посредством 4 аппаратных приёмопередатчиков UART;
- 16 МГц – кварцевый резонатор;
- USB-разъём;
- питающий разъём;
- внутрисхемное программирование осуществляется через ICSP-разъём;
- кнопка для сброса.
В устройстве Mega 2560 R2-версии добавлен специальный резистор, подтягивающий HWB-линию 8U2 к земле, что позволяет значительно упростить переход Arduino в DFU-режим, а также обновление прошивки. Версия R3 незначительно отличается от предыдущих. Изменения в устройстве следующие:
- добавлены четыре вывода – SCL, SDA, IOREF (для осуществления совместимости по напряжению различных расширительных плат) и ещё один резервный вывод, пока не используемый;
- повышена помехоустойчивость по цепи сброса;
- увеличен объём памяти;
- ATmega8U2 заменён на микроконтроллер ATmega16U2.
Выводы Arduino Mega 2560R3 предназначаются для следующего:
- Имеющиеся цифровые пины могут служить входом-выходом. Напряжение на них – 5 вольт. Каждый пин обладает подтягивающим резистором.
- Аналоговые входы не оснащены подтягивающими резисторами. Работа основана на применении функции analog Read.
- Количество выводов ШИМ составляет 15. Это цифровые выводы №2 – №13, №44 – №46. Использование ШИМ производится через функцию analog Write.
- Последовательный интерфейс: выводы Serial: №0 (rx), №1 (tx); выводы Serial1: №19 (rx), №18 (tx); выводы Serial2: №17 (rx), №16 (tx); выводы Serial3: №15 (rx), №14 (tx).
- Интерфейс SPI оборудован выводами №53 (SS), №51 (MOSI), №50 (MISO), №52 (SCK).
- Вывод №13 – встроенный светодиод.
- Пины для осуществления связи с подключаемыми устройствами: №20 (SDA), №21 (SCL).
- Для внешних прерываний (низкий уровень сигнала, другие изменения сигнала) используются выводы №2 , №3, №18, №19, №20, №21.
- Вывод AREF задействуется командой analog Reference и предназначается для регулирования опорного напряжения аналоговых входных пинов.
- Вывод Reset. Предназначен для формирования незначительного уровня (LOW), что приводит к перезагрузке устройства (кнопка сброса).