«умный» дом на платформе arduino

Содержание

Что такое Arduino?

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

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

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

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

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

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

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

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

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

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

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

1) Ячеистая сеть Wi-Fi: улучшите подключение и обеспечьте безопасность смарт-устройств

Если вы планируете создать подключенный дом, вам понадобится надежное подключение к Wi-Fi, а также уверенность в том, что сеть полностью защищена.

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

Это просто неудобно, если вы пытаетесь транслировать видео на YouTube. А как насчет того, что это приведет к сбою в вашей домашней системе безопасности?

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

Система GRYPHON Mesh WiFi – отличный выбор, если вы хотите начать строительство безопасного и надежного дома с подключением к сети. Это почему?

Вы получите сети как на 2,4 ГГц, так и на 5 ГГц, что даст вам идеальное сочетание скорости и проникновения через барьеры. Более низкая частота обычных сетей Wi-Fi лучше для обхода препятствий, таких как стены. Частота 5 ГГц выше, и вы получите гораздо меньше помех. Объединение обоих расширяет ваши возможности без проблем с переключением сетей вручную.

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

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

GRYPHON сканирует все устройства (включая смарт-устройства) на наличие уязвимостей. Он использует ИИ для обнаружения любого вредоносного ПО и любого вторжения в вашу сеть.

Если вам нужно первоклассное покрытие WiFi с максимальной надежностью и безопасностью, ячеистая система GRYPHON – это удобное для новичков введение в ячеистые сети. Не пугайтесь: начните свой новый умный дом правильно!

Обучение азов Arduino

С помощью приложения «Справочник по Arduino 2» можно в течении двух недель освоить материал. Приложение полностью автономно и не требует подключение к интернету. В нем описана такая информация: функции, данные, операторы, библиотеки Arduino.

После освоения азов, можно посетить ресурс Habrahabr, на котором собраны 100 уроков по программированию на Arduino.

Тем, кто привык черпать знания из книг, станет замечательным пособием для теории и практики «Джереми Блум: изучаем Arduino».

Самый популярный учебник по Arduino

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

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

Горшок для цветов с автополивом

Слож­ность:
4/5.

Вре­мя:
3/5.

Полез­ный гор­шок для тех, кто забы­ва­ет полить цве­ты перед отъ­ез­дом или про­сто не зна­ет, как часто надо их поли­вать. Вся элек­тро­ни­ка, насо­сы и ёмкость для воды нахо­дят­ся внут­ри горш­ка. Для каж­до­го рас­те­ния мож­но запро­грам­ми­ро­вать свой режим поли­ва в каж­дом горш­ке.

Основ­ные харак­те­ри­сти­ки чудо-горшка:

  • встро­ен­ный резер­ву­ар для воды;
  • дат­чик кон­тро­ля уров­ня влаж­но­сти поч­вы;
  • насос для пода­чи воды;
  • дат­чик уров­ня воды в резер­ву­а­ре;
  • све­то­ди­од, инфор­ми­ру­ю­щий о недо­стат­ке воды в резер­ву­а­ре.

Подроб­но­сти: usamodelkina.ru.

Этапы создания

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

Комплектация

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

  • датчик движения;
  • датчик температуры и влажности;
  • датчик освещенности;
  • пара температурных датчиков с маркировкой 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. Чтобы включить эту опцию, необходимо войти в раздел настроек и выбрать там пункт «Безопасность». Именно так и необходимо активировать соответствующую опцию. Когда установка завершится, то можно будет осуществить активацию приложения и настроить его.

Готовые комплекты и решения

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

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

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

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

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

Модели умных домов, представленные на рынке

Бренд/название Комплектация Коммуникации Удаленное управление/контроль Расширение уст-ми производителя Пульт *Универсальность Цена (руб)
Xiomi Smart Home Suite Контроллер, замаскированный под настольную лампу, датчики открытия и движения, умная розетка и беспроводная кнопка включения Проводные Приложение Mi Home Есть Нет Нет 5000
Redmond Smart Home Продается раздельно, собирается во едино с основой в виде модуля skycenter Bluetooth Приложение Ready for Sky Есть Есть Нет
Vstarcam E27AR-TZ1V Умная камера (по совместительству контроллер), датчики движения и открывания дверей, светильник и управляемая розетка ИК Приложение на мобильный телефон, электронная почта Есть Есть Нет 12000
NooLite mini kit Приложение на мобильный телефон Есть Есть Есть 14000
Fibaro starter kit Контроллер, БП, Датчики в комплекте: освещенности, движения, температуры, протечки, открытия Веб-интерфейс, приложение смартфона Есть Есть Есть 50000
Wulian Smart Home Дизайнерский контроллер Радио Приложение Есть Нет Есть

* Универсальность — подразумевает подключение внешних устройств не только через розетку, но и иные контроллеры. К примеру, внешние реле времени или силовые повторители.

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

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

Этапы

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

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

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

Приложение позволяет увидеть информацию о датчиках. Если это требуется, настройки 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-адреса, ведь в этом случае высок риск взлома через Сеть

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

СМС

Неплохо, если Умный дом может оповестить вас о пожаре или вскрытии двери, когда вас нет дома, правда? Есть такой модуль — называется sim800L. Это gps модем, который является полноценным телефоном. Он умеет звонить, отвечать на звонки, отправлять/получать смски, выходить в интернет с помощью gprs, определять местоположение с помощью сотовых вышек и т. д. Идея была такая: заказать этот модуль, вставить сим-карту в Умный дом, настроить какой-нибудь тариф, чтобы не было абонентской платы вообще, закинуть туда 500 руб и, пока они не истратятся (по 1 руб. за смс), а это, как минимум на год, забыть про все это.

Но оказалось, что в пике эта платка в момент поиска сетей потребляет 2 Ампера тока. У Умного дома есть модуль питания, туда заходит шнур, там аккумулятор и от аккумулятора выходит питание в систему. Батарейка может обеспечить максимум 3 Ампера выхода. То есть 3 Ампера постоянного потребления всей системой — край. И, если добавить этот gsm модуль к raspberry, она вырубится. Ей не хватит тока, и она просто потухнет. Единственное решение проблемы — это модуль отправки смсок делать отдельной коробочкой. Тогда туда можно обеспечить бесперебойное питание на 2 Ампера. И просто по Wi-Fi связать с Умным домом. То есть Умный дом говорит модулю: «Отправь вот такую смску», и модуль отправляет. Сейчас Жене нужно докупить пару железяк, и модуль будет готов.

Затраты

  • Raspberry Pi — 1500 руб.
  • Дисплей — 2500 руб.
  • Детали метеостанции — 1500 руб. (самая дорогая деталь — датчик CO2, 1100 руб.)
  • Всякая мелочь, вроде микрофончика, колонок компьютерных, маленьких, настольных, самые дешевых, чтобы усилок оттуда достать — пусть будет 500 руб.
  • Плата резервного питания — 1500 руб.
  • Печать корпуса весом грамм 300 (2 руб. за грамм с учетом расхода пластика и электроэнергии) — 600 руб. Если печатать на заказ, выйдет дороже, возможно, около 1500 руб.

Итого: 8100 руб.

Возможный функционал и постановка требований к системе

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

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

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

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

  • Выявление прохода через калитку участка, для подсветки пути при необходимости.
  • Определение открытия входной двери в дом.
  • Управление системой отопления. В отсутствие хозяев держать температуру не ниже 5 ℃, чтобы не вымерзла вода. По полученной команде удаленно прогреть помещение до +20 градусов.
  • Сообщать владельцу о перебоях энергоснабжения, чтобы не размораживался холодильник.
  • Включение света в кладовке, когда ее дверь кто-то открыл.
  • Все перечисленное получить при минимальных денежных затратах.
  • Отключение всей электрики и переход дома в режим экономии энергии. При этом холодильник продолжает работать.

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

Визуализация «умного дома» и расширение возможностей на Ардуино

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

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

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

Микрокомпьютер одноплатный Raspberry Pi

В качестве «железа» сервера можно использовать микрокомпьютер Raspberry Pi или обычный стационарный компьютер или ноутбук. При этом расширяются возможности самой системы автоматизации.

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

Например, можно расширить функционал нашего «умного» дома и приблизить его к умному дому без кавычек. Есть возможность написать такой алгоритм, который будет вести статистику нахождения хозяина в доме и его возвращение домой. Если хозяин обычно возвращается домой в районе 17:30, то за час можно включить бойлер для нагрева воды. Также, ориентируясь на это время, можно заранее включить отопительные приборы, чтобы возвращение было уже в тёплый дом, а не в тот, где температура ниже на 10 градусов из-за экономии электричества в отсутствии хозяев. Программа может понять когда хозяева обычно ложатся спать и заранее переставать греть воду, так как ею уже никто не будет пользоваться до утра. И таких нюансов может быть множество. Именно внешний компьютер может дать продвинутые «мозги» контроллеру на Arduino, который превратится больше в исполнительный механизм.

Передача данных от Ардуино

Сначала мы заставим нашу ардуину передавать данные на отдельный сайт, который будет изображать данные, полученные с датчиков ардуино. Для этого прекрасно подойдет сайт для интернет вещей — dweet.io

Это сайт может отображать график изменения температуры, света, влажности, все что имеет изменение по времени.

Попробуем на него передавать данные изменения температуры нашей комнаты.

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

На главной странице можно посмотреть возможные варианты работы данного сайта

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

Особенности работы некоторых аппаратных средств Arduino

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

Похожая ситуация сложилась в сфере разработки персональных компьютеров. В своё время компания IBM сделала архитектуру своих компьютеров открытой, вследствие чего IBM-совместимые компьютеры и отдельные компоненты стали выпускать многие компании. В итоге «персоналки» этого типа широко распространились по всему миру, однако, качество комплектующих и степень их совместимости во многих случаях оказывались не на самом высоком уровне. Противоположной тактики придерживалась компания Apple. Она ограничила круг разработчиков, имеющих доступ к архитектуре, и такую же политику провела в сфере разработки ПО. В итоге компьютеры Apple оказались менее распространёнными и более дорогими, но зато по качеству они на порядок превосходят IBM-совместимые устройства, работающие под Windows.

В отношении некоторых комплектующих для систем Arduino пользователи заметили следующее:

  1. Датчик температуры DHT11, поставляемый с базовым набором (StarterKit), даёт значительную погрешность в 2–3 градуса. В помещении рекомендуют применять температурный датчик DHT22, дающий более точные показания, а для установки на улицу — DHT21, способный работать при отрицательных температурах и имеющий защиту от механических повреждений.
  2. На некоторых микропроцессорных платах Arduino при замыкании подключённых к ним реле выходит из строя COM-порт. Из-за этого на микроконтроллер не удаётся загрузить скетч: как только начинается заливка, процессор перезагружается. Реле при этом щёлкает, COM-порт отключается и процесс загрузки скетча прекращается.
  3. Датчик закрытия окна/двери иногда преподносит сюрпризы в виде ложных срабатываний. С учётом этого скетч пишут так, чтобы система производила необходимое действие только по получении нескольких сигналов подряд.
  4. Для настройки управления процессами при помощи хлопков некоторые пользователи по неопытности вместо микрофона заказывают детектор звука с ручной настройкой порога. Для подобных целей этот компонент не подходит, так как имеет слишком малый радиус действия: хлопать приходится не далее 10 см от детектора. Кроме того, этот датчик передаёт сигналы импульсами малой продолжительности, так что при наличии большого скетча, на обработку которого уходит сравнительно много времени, микроконтроллер просто не успевает их зафиксировать.
  5. Для устройства противопожарной сигнализации следует использовать датчик дыма, а не датчик огня. Последний регистрирует пламя не далее 30 см от себя.
  6. На случай сбоя в работе микроконтроллера или ошибки в коде лучше применять нормально замкнутые реле с последовательно подключёнными ручными выключателями.

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

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

Надежда Хоменко

Сборка «умного дома»: пошаговая инструкция

Вот в какой последовательности необходимо действовать.

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

Подключаем все компоненты согласно схеме.

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

Разработка программного кода

Пользователь пишет всю программу целиком в оболочке 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)

Для получения данных от системы «умный дом» в сети можно скачать готовое приложение.

Вот что необходимо сделать владельцу гаджета:

  1. Скачайте файл SmartHome.apk.
  2. Отправьте его на телефон.
  3. Открыв «Менеджер файлов», разместите этот файл.
  4. Щёлкните на нём и выберите «Установить» (должна быть отмечена «галочка», позволяющая осуществлять установку программ вне сервиса Google Play).
  5. Когда установка будет завершена, активируйте приложение.
  6. Выполните его настройку.

С помощью этого приложения можно не только получать информацию от системы «умный дом», но и управлять ею — включать и отключать сигнализацию. Если она включена, то при срабатывании датчика движения приложению будет отправлено уведомление. Опрос системы 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-адресу, но и по полному доменному имени

Создание проекта завершено, можно проверять работоспособность системы.

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

На роутере нужно открыть порт. Для этого следует выполнить следующие действия:

  • открыть конфигурацию роутера;
  • прописать адрес arduino ip;
  • открыть порт 80.

После этого — присвоить новому адресу доменное имя. Теперь можно приступать к тестированию проекта, который вы сделали своими руками.

Правильно настроить роутер — залог успеха

Следует отметить, что для такого рода проектов нельзя использовать открытый ip-адрес, так как система легко взламывается через интернет.

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