Умный дом: управление системой на расстоянии

Делаем управление «Умным домом» через интернет за пару минут

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

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

Заинтригованы? Прошу под кат.

Однажды рыская по интернету в поисках информации про «Умные дома» наткнулся на интересное видео, где мужчина в белом халате показывал как управлять ARDUINO через интренет. Позже оказалось, что этот мужчина один из разработчиков проекта на kickstarter.com под названием Ninja Blocks.

Вот, то самое видео.

Ninja Blocks — очень интересный и довольно успешный проект, который предлагает управление и контроль большой периферией домашних устройств с помощью своего модуля ( который они предлагают купить за 199 «вражеских» единиц). Модуль взаимодействует с облаком, через которое и происходит управление устройствами. Так же существуют приложения для iOS и Android с помощью которых также возможно управление.
Разработчики Ninja Blocks не поленились и написали свою библиотеку для ARDUINO за что им большое СПАСИБО!

Облако не совсем простое, оно не только посылает и принимает данные, то также поддается программированию со стороны пользователя, который создает так называемые ПРАВИЛА. Таким образом облако становиться онлайн «мозгом» «Умного дома».
НАПРИМЕР: при нажатии на кнопку, облако ждет 30 секунд, а потом влючает какое-либо реле, ждет еще 60 секунд и выключает его.
Правила легко создаются из панели управления.

Для повторения его примера нужен был Ethetnet Shield. На тот момент в моем распоряжении быт модуль на базе enc28j60. Но как я ни пытался повторить пример с использованием разных библиотек, так ничего и не получалось. Необходим был модуль совместимый с родной Ethernet библиотекой для ARDUINO т.е. на базе чипа w5100. Шилд был заказан из поднебесной и всё было отложено на долгий месяц.

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

— совместимая плата ARDUINO
— thernet shield на базе w5100
— аккаунт на сайте a.ninja.is
— разная мелочевка в виде резисторов, кнопок и светодиодов

И так. Плата пришла. Все собрал, подключил, загрузил.
Это было удивительно, но все заработало )) Но всегда бывает «НО». Буквально через пару минут заметил, что светодиод перестал реагировать на управление через сайт. Перезагрузка контроллера помогла, но только на те же пару минут. При этом кнопка всегда работала испаравно. Да это была серьезная проблема с которой «Умный дом» не построить.

После изучения данного примера возникло несколько вопросов:
1. Как управлять несколькими устройствами принимающих данные (светодиодами)?
2. Как добавить несколько устройств, отсылающих данные( кнопка, датчик температуры)?
3. Как починить управление для светодиодов через панель, которое «отваливается» через пару минут?

Поиск начался с не очень популярного раздела на форуме разработчиков с названием ARDUINO. Тут было найдено решение для исправление проблемы с управлением. Одни из участников форума доработал библиотеку проекта. Самое удивительное, так это то что за пол года разработчики так и не обновили библиотеку на github. Видно опасаются конкуренции для себя со стороны проектов на базе Arduino )).

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

Несколько часов опытов и изучения смазанных объяснений разработчиков на форуме и библиотеки дали свои плоды. Все вопросы были успешно решены… =)

И так теперь по делу.
Библиотека для Arduino занимается, только приемом и отправкой данных.
Основным параметром в данных является ID устройства к которому обращается сервер или от которого принимает информацию. Посмотреть полный список можно здесь. ninjablocks.com/pages/device-ids Каждому ID соответствует свой виджет в панели управления.

В Serial Monitor передача или прием одной команды или данных выглядит таким образом:

Теперь рассмотрим что там внутри.
«G»: «0» — параметр GU > «V»: 0 — параметр VID является идентификатором для устройств как и ID.
«D»: 1 — параметр D > «GUID»: «ETHERSHIELDBLOCK_0_0_1» — трудно сказать для чего это надо, но в общем он содержит в себе название блока ARDUINO (котрое можно изменить в начале примера из библиотеки) и всех выше пересичленные параметры.
«DA»: 27 — ну и сами данные, которые мы передаем. Для кнопки или реле это 0 или 1, для RGB светодиода это код цвета например FFFFFF.

Условно все датчики и устройства можно разделить на два типа. Первый тип только передают информацию ( кнопка, датчик температуры и влажности). И второй тип только принимают её. Тут кроется один нюанс. Панель управления изначально не знает что у нас подключено к контроллеру. И если первый тип сам сообщат о себе, когда будут передавать данные и панель сразу создаст для них виждет согласно их ID. То для второго типа необходимо произвести создание виджетов в панели управления путем отправки данных.

Как отправлять данные с нескольких устройств с одинаковым ID.
Все очень просто перед каждой отправкой данных мы должны указать порядковый номер устройства (GUID)

При приеме данных для нескольких устройств c одинаковым ID нам необходимо проверять чему равен GUID

Вернемся к устройствам второго типа. Для создания виджета в панели управления достаточно всего лишь раз отправить данные от его имени. Создадим виджет с переключателем ON/OFF для каждого из двух светодиодов написав в цикле void setup следующее:

Получив эти данные панель создаст для них виджет.

Теперь предлагаю вашему вниманию простую программу для работы с Ninja Blocks.
— Управляет 4-я светодиодами
— Отсылает показания 2-х датчиков температуры ds18b20 c интервалом в 60 секунд
— Каждые 20 секунд синхронизирует положение переключателей ON/OFF с состоянием светодиодов. Так как панель управления никак не следит дошли ли данные до контроллера и поэтому иногда бывает что на панели положение ON а на самом деле выход выключен. Данный способ позволяет каждые 20 секунд устанавливать переключатели в панели в правильно положение если до этого они стояли не верно.
— Подключена кнопка, при нажатии на которую выполняется запрограммированный сценарий.

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

Подготовил небольшое демонстрационное видео

Подведем небольшой итог.

Достоинства:
— Управление и котроль из любой точки мира ( при наличии интренета)
— Собирается и настраивается за считанные минуты.
— Очень простой и недорогой
— Наличие специальных сценариев
— Широкий перечень виджетов в панели управления.
— Если добавить роутер TP-Link TL-MR3020 (20$) и 3G модем, то можно использовать на даче и других местах без интернета.
— Если нет желания тянуть сетевой кабель, то достаточно купить за 15$ TP-Link TL-WR702N, который будет работать в качестве wi-fi шилда
— Хорошая стабильность в работе. За 2 дня тестирования не потерялась ни одна команда все работает четко.

Недостатки:
— Самый главный минус этой системы это невозможность работы без интренета.
— Имеется задержка при включении колеблется от долей секунды до нескольких
— Библиотека кушает много места — целых 16 кБ, если добавить библиотеку для nrf24l01 то ничего почти не остается. Придется переходить на Mega скорее всего.
— Приложение для смартфонов не позволяет просматривать показание датчиков. Управление устройствами сделано не очень удобно, не видно текущего состояния on/off.

Планы на будущее:
— Дописать в коде проверку соединения и в случае его отсутствия Arduino будет действовать самостоятельно и будет перезагружать TP-Link TL-MR3020 и 3G модем если работает с ними в связке.
— Добавить nrf24l01 для управления и контроля других датчиков.

Очень интересно услышать ваше мнение и конструктивную критику. Оригинальные вопросы приветствуются! Фух…

RN3AU › Блог › Полу-умный дом или немного про электричество на даче 🙂

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

Бригада строителей-бракоделов была отстранена от выполнения работ по всем инженерным системам (электричество, водоснабжение, канализация, отопление и т.д.) и это было решено делать своими руками.

В результате некоторых раздумий, прикидок по формату использования дома и учитывая необходимость создания максимально простой в использовании системы с точки зрения пользователя, было принято решение (на первых порах, а, возможно, и в дальнейшем) использовать электрическое отопление, как требующее минимальных навыков по обслуживанию, так и имеющее возможность дистанционного управления режимами работы. Газ в этом месте отсутствует и перспективы его появления туманны, а всякого рода котлы требуют определенных умений и желания всем этим управлять, в то время как полностью автоматизированные системы стоят немерено денег. Посему было решено использовать для отопления конвекторы NOBO (проверенные личным опытом, безопасные и эффективные). Учитывая выделенные 15 кВт (380 В) и “деревенский тариф” за электричество, такое решение было признано разумным на данном этапе.

Далее я приступил к придумыванию возможной схемы коммутации, с учетом требований к безопасности, удобства и возможности дистанционного управления. На этом этапе я обращался за консультациями к Андрею 2350, который своими советами помог избежать некоторых ошибок.
В результате получилась система, которая с одной стороны может показаться избыточной для дачного дома, а с другой — достаточно удобна и гибка. Хотя и не во всем оптимальна, но нет предела совершенству, а “хотелки” будущих жильцов претерпевали изменения по мере реализации функций:)

В качестве устройства управления я применил GSM контроллер CCU825 ( сайт производителя: www.radsel.ru/ ) Я уже ставил эти устройства и у меня с ними никаких проблем не возникало. Есть более навороченные системы с управлением через интернет, но в тех краях с интернетом беда и единственный надежный канал связи — SMS или голосовые звонки.

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

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

В режиме “эконом” в нужных помещениях с помощью контроллера поддерживается температура в диапазоне 6-7 градусов. Температура на термостатах нагревателей выставлена на 20…22 градуса (собственно на ту температуру, которую хочется иметь после включения на полный нагрев).
Когда я дистанционно “говорю” контроллеру отапливать помещения, у меня питание на нагреватели подается постоянно и греют, до ранее выставленной температуры. Можно и напрямую задавать нужный температурный диапазон — это по желанию.

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

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

Всё управление осуществляется через SMS-команды, с помощью голосового звонка на контроллер или (что значительно удобнее) через приложение для ANDROID.
В любой момент можно запросить состояние системы — увидеть температуру по помещениям и подачу питания на линии обогрева. В случае пропадания питания в сети также приходит тревожное сообщение.

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

Желаете, чтобы у вас появилась возможность с помощью Интернета, например, включать-выключать обогреватель в загородном доме? Получать SMS, оповещающее о непредвиденном отключении электроэнергии или о том, что в вашем доме заработала сигнализация? А может, вы хотите, чтобы до вашего приезда на даче был включен обогреватель? Нет ничего проще. Для этого даже не потребуется содержать огромный штат прислуги. Эти и другие обязанности возьмет на себя система управления умным домом.

Что может «умный дом»

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

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

Инженерные системы

  • Отопление. Производит управление разных отопительных систем. Оптимизацию расходов на отопление.
  • Водоснабжение. Способен вести контроль над утечками воды в каждом отдельном помещении. Управляет водоподготовительными системами.
  • Газоснабжение. Контролирует утечку газа.
  • Охрана. Производит различные виды контроля (проникновения в помещение, по периметру). Может в целях отпугивания злоумышленников имитировать наличие людей, а также собак. Обеспечивает ограничение доступа.
  • Электроэнергия. Кроме управления электросетью, регулирует оптимизацию расходов.
  • Пожарная безопасность. Обеспечивает предупреждающий контроль возгораний.
  • Оповещение. Включает голосовую информацию, а также дозвоны по телефонным номерам (без ограничения их числа). С помощью Интернета и СМС.

Обслуживание

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

Средства управления

  • SMS;
  • PALM;
  • PC;
  • Internet;
  • Пульт.

Чем можно управлять удаленно

Домом, который предвосхищал Рей Брэдбери, уже никого не удивишь. То, что раньше было фантазией писателя, стало реальностью. Современные «умные дома» даже превзошли своего прототипа. Они не только дружны со своим хозяином, но и способны находиться под его контролем практически в любой точке планеты.

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

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

Например, вы можете:

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

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

Приложения

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

Для Android:

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

Для iOS

  • Home Kit. Главное предназначение программы – удаленный контроль над бытовыми устройствами, световой техникой, приборами и т.д. Кроме этого программа позволяет управлять на расстоянии системой безопасности. Однако взаимодействует данное приложение не с любым устройством. Дистанционное управление возможно лишь с теми приборами, которые поддерживают технологию. Разработчики для упрощения выбора техники предлагают делать на них специальную маркировку.

«Умный дом»: управление голосом

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

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

Даже при участии пользователя имеются наиболее популярные распоряжения. Чаще всего голосом:

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

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

К примеру, голос подается в одном помещении, а выполнение распоряжения происходит в другом.

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

Как управлять голосом

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

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

Как правило, одного микрофона (конечно, с учетом его типа и помещения) достаточно на площади 30 квадратных метров:

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

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

В заключение

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

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

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

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

1. Создание собственного пульта управления черз ИК-пульт и ИК-датчик

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

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

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

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

Для простой работы с ик – пультом требуется скачать нужную библиотеку – https://github.com/z3t0/Arduino-IRremote.

Далее мы должны подключить ИК – датчик к Arduino.

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

Наводим пульт на датчик и нажимаем пару кнопок на пульте, видим такую картину:

Я возьму значение своей первой кнопки – 1689D02F.

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

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

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

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

2. Создание собственного пульта управления через смартфон и Bluetooth-модуль

Bluetooth модули HC–05 и HC–06:

Сделать его будет не сложно, нужен лишь модуль Bluetooth (HC – 05; HC – 06) и любой смартфон, на котором стоит Bluetooth Terminal.

Есть много приложений такого типа, я поступил оригинально и скачал “Bluetooth Terminal” 🙂

Надо понять, что наши Bluetooth модули в начале находятся в режиме “Slave”, а значит они будят принимать сигнал и, после принятия сигнала, отправлять его с помощью UART интерфейса через пины Rx и Tx на нашу Arduino сразу же после подключения.

С помощью терминала мы сможем отправить с телефона по bluetooth символ “1”, значит, что в serial порту у нас появится символ “1”. Мы сможем считать его и если он удовлетворяет нашим требованием, то пусть Ардуино подаст ток на нашу реле и включит лампу, если же мы отправили “0”, то Ардуино перестанет подавать ток на реле и выключит лампу.

Обычный модуль подключается через 3,3 вольта. Rx в Tx, а Tx в Rx, землю в Gnd. Ничего сложного. Как только мы подключим его, то увидим в сети Bluetooth еще одно устройство, осталось только написать программу для ардуино и подключится к модулю, через терминал.

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

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

Открываем меню и нажимаем “Сonnect a device – Secu..” 🙂

Выбираем нужное вам устройство, оно может иногда идти с паролем “1234” или “0000”, и все, можно отсылать данные.

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

3. Создание собственного пульта управления через два Bluetooth-модуля и два Arduino UNO

С помощью модуля Bluetooth мы можем не только принимать, но и отправлять данные на другие устройства. Если модуль можно перевести в режим «Master», то он сможет связывается с другими устройствами самостоятельно и отправлять данный, полученный по UART интерфейсу.

Если у вас два модуля HC – 06, то не получится сделать так, ведь не могут работать в режиме «Master», но если у вас два или хотя бы один из двух Bluetooth модулей HC – 05, то вы можете попробовать.

Сделать его будет сложно, но зато именно он сможет быть модифицирован в сотни других пультов и проектов. Для начала нам потребуется два Bluetooth модуля. Я взял два модуля HC – 05, они могут как принимать сигнал, так и отправлять его, что нам и нужно.

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

Для этого нужно перевести модуль в режим AT команд. Один из способов это сделать — отключить модуль от платы (если она была подключена к модулю) и подать на пин K +3.3 вольта (в моем случае 5). Далее подключаем питание к модулю и пин Tx модуля подключаем в Tx платы, а пин Rx модуля подключаем в Rx платы.

Открываем сериал порт. В настройках к нему выбираем скорость в “38400 бод”, символ перевода строки меняем на “NL+CR”. и набираем команду “AT”. Если все сделать правильно, то на вашу команду модуль должен дать “OK” (также возможен ответ “ERROR: (0)”, но после последующей команды “AT” он должен ответить “OK”).

А теперь для модуля Slave нужно вести такие команды:

Сброс предыдущих настроек: AT+ORGL

Сброс спаренных устройств: AT+RMAAD

Установка пароля: AT+PSWD=1234

Включение режима ведомого: AT+ROLE=0

Дополнительно можно узнать адрес устройства (понадобится для настройки спаренного модуля): AT+ADDR?

В ответ получим сам адрес: ADDR=12:6:143117
(или такого вида: 98d3:34:911ec5)

А теперь подготовим устройство Master

Сброс предыдущих настроек: AT+ORGL

Сброс спаренных устройств: AT+RMAAD

Включение режима ведущего: AT+ROLE=1

Рестарт после смены роли: AT+RESET

Если мы хотим связать ведомого и ведущего, пишем такие команды:

Установка пароля ведомого: AT+PSWD=1234

Указываем парное устройство: AT+PAIR= , (пример: AT+PAIR=12,6,143117, 5)

Связываем с конкретным адресом: AT+BIND= (пример: AT+BIND=12,6,143117)

Запрещаем соединяться с другими адресами: AT+CMODE=0

Когда вы захотите запрограммировать Arduino вам надо вытащить провода из пинов Rx и Tx, ведь по ним идет передача по UART от компьютера к плате, а связь Bluetooth модуля и компьютера помешает передаче данных.

3.1 Собираем сам пульт

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

Для данного пульта нам пригодится:

1) Два Bluetoth модуля (как минимум один, который может быть в режиме Master)
2) Кнопка
3) Резистор 10кОМ
4) Светодиод (он уже на плате на 13 пине)
5) Две платы Arduino UNO
6) Лампа и реле (смотрите 1 статью про подключение лампы, если нет возможности, возьмите светодиод и подключите как на схеме)

Соберем электрическую схему для платы Master:

Соберем электрическую схему для платы Slave:

Напишем код для модуля Master:

Напишем код для модуля Slave:

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

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

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

Источники:

http://www.drive2.ru/b/1514584/

http://videokontroldoma.ru/upravlenie-umnym-domom/

http://arduinoplus.ru/sistema-upravlenia-umnim-domom-na-rasstoyanii/

http://lesson.iarduino.ru/page/bluetooth-modul-hc-06-podklyuchenie-k-arduino-upravlenie-ustroystvami-s-telefona

Ссылка на основную публикацию