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

Всем привет! С вами снова Артем Лужецкий и очередной материал в направлении . Чтобы связать наши проекты с интернетом можно использовать 10-ки способов, но мы пока остановимся на модуле, о котором я еще говорил еще в самой первой статье, ESP 8266. не может работать с интернетом. Обычная плата без дополнений и модулей не может передавать информацию на расстоянии.

Но с помощью UART интерфейса на Arduino мы можем получать информацию, обрабатывать ее и отправлять данные обратно. С помощью него, UNO может работать с Bluetooth и Wi-fi модулями, которые уже и дают нашей системе дополнительные функции.

Выход в интернет

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

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

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

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

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

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

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

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

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

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

Схема подключения

Разберем электрическую схему подключения esp 8266. Нам потребуется только пины Rx, Tx, Gnd и Vcc. Данный модуль питается от 3,3 вольт.

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

Код проекта

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

  1. ESP8266 wifi(Serial) - Подключаем esp8266 через Serial соединение.
  2. wifi.joinAP(a,b); - Подключение к wifi, где а - это название точки доступа, а b - пароль к этой точки доступа.
  3. wifi.createTCP(a,b) - Открытие TCP соединения, где "a" - DNC сайта (www.dweet.io), а "b" - сетевой порт (порт 80).
  4. wifi.send(a,b) - отправляем данные, где "a" - данные в массиве (строка с-стиля), а "b" - общее количество отправленных байтов.
  5. wifi.releaseTCP() - Закрытие TCP соединения.
#include "ESP8266.h" // для работы с esp8266 #include // чтобы добавить больше пинов UART #include // чтобы высчитать логарифм #define SSID "Arduino" // имя вашего wi-fi #define PASSWORD "12345678" //пароль вашего wi-fi #define Thermistor_PIN A0 // пин подключения термистора SoftwareSerial mySerial(2, 3); // пины подключения по UART ESP8266 wifi(mySerial); // говорим esp8266, что она будет работать через пины UART String name = "MyEyse"; // ваш ключ от сайта dweet.io void setup() { Serial.begin(9600); // открываем serial соединение if (wifi.joinAP(SSID, PASSWORD)) { // если мы подключились к нашей сети Serial.println("https://dweet.io/follow/" + name); // пишем в мониторе порта адресс сайта } else { Serial.println("Wi-Fi connection error"); // в случае, если мы не подключимся к сети, нам выдадут ошибку } } void loop() { float volt_temp = 1023.0 / analogRead(Thermistor_PIN) - 1.0; // высчитываем температуру float temperatur = 1.0 / (-log(volt_temp) / 3977.0 + 1.0 / 295.0) - 273.0; if (wifi.createTCP("www.dweet.io", 80)) { // если нам удалось создать TCP соединение String data = "GET /dweet/for/" + name + "?"; // создаем переменную data в виде строки (заполняем GET-запрос) data += "temperatur_C=" + String(temperatur) + " HTTP/1.1\r\n"; data += "Host: dweet.io\r\n\r\n"; // закрываем GET-запрос в строке wifi.send(data.c_str(), data.length()); // отправляем данные в массиве (строка с-стиля) и общее количество байтов wifi.releaseTCP(); // закрываем TCP соеденение } else { Serial.println("create TCP error"); // в случае, если мы не создали TCP соеденение, нам выдадут ошибку } delay(1000); // ждем секунду (dweet.io обрабатывает данные 1 секунду, нет смысла отправлять данные раньше) }

Итоговый результат

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Наборы

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

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

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

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

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

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

Платформы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итоги

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

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

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

Что такое Arduino

Ардуино – это бренд, под которым выпускаются аппаратные и программные средства для самостоятельного построения систем автоматики и телеуправления.

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

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

Так широко распространённый модуль Arduino Uno с микроконтроллером Atmega 328 имеет следующие характеристики:

  • Цифровые входы/выходы – 14
  • Из них 6 – ШИМ
  • Аналоговые входы – 6
  • Память – 32 Кб
  • Питание – 7-12 В
  • Цена – 950 рублей

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

Цифровые выходы могут управлять работой электромагнитных реле, которые в свою очередь включают и выключают сетевые розетки, к которым подключены различные бытовые приборы. Умный от Arduino обойдётся значительно дешевле, чем готовый промышленный комплект.

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

Самой мощной и многофункциональной платой этой линейки является Arduino Mega. На печатной плате смонтирован контроллер AT mega 2560 , дискретные элементы, порт USBконнектор для подключения питания. Плата имеет 54 универсальных контакта, которые можно запрограммировать на выполнение функций входа/выхода. 14 из них могут управлять аналоговыми устройствами при помощи широтно-импульсной модуляции. 16 аналоговых входов предназначены для подключения любых аналоговых приборов.

Плата контроллера Arduino Mega стоит в пределах 1 500 рублей. Программировать его проще всего с помощью персонального компьютера через USB-порт.

Периферийные модули для Ардуино

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

Вот только некоторые из них:

  • Газоанализатор – MQ-2
  • Датчик освещённости – 2CH-Light-2
  • Датчик температуры внешний – DS18B20-PL
  • Датчик температуры и влажности комнатный – DHT-11
  • Драйверы электродвигателя – L298N, L9110
  • Релейные модули – 1ch5V, 4ch5V
  • Модуль дистанционного управления IC2262/2272

Датчик, определяющий утечку газа в помещении, реагирует на пропан и бутан, которые являются составляющими бытового газа. Модуль имеет регулировку чувствительности и аналоговый/цифровой выходы. Датчик освещённости может являться частью автоматизированной системы управления светом. Он состоит из двух независимых каналов с индивидуальной регулировкой чувствительности. Уличный термодатчик предназначен для работы при температуре от – 55 до +125 градусов. Комнатный датчик температуры и влажности предназначен . Диапазон изменения температуры от 0 до +55 0 С и влажности от 20 до 90%.

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

Драйверы электродвигателей позволяют управлять однофазными, двухфазными, четырёхфазными и шаговыми двигателями. С помощью таких устройств можно открывать и закрывать жалюзи или шторы. Подключенные к драйверам сервоприводы позволяют регулировать поток теплоносителя в радиаторах отопления. Незаменимыми в системе «Умный дом» являются релейные ключи. Управляемые потенциалом логической единицы +5 вольт, реле допускают коммутацию нагрузок в цепях переменного тока до 10 ампер при напряжении до 250 вольт.

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

Модуль дистанционного управления состоит из пульта и приёмного устройства. Пульт оборудован четырьмя кнопками и обеспечивает передачу команд на приёмный блок на расстоянии до 100 метров. Все периферийные модули имеют одинаковое питающее напряжение и совместимы с любыми микроконтроллерами Arduino.

Организация системы «Умный дом»

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

Программирование микроконтроллеров линейки Ардуино осуществляется на языке С/С++.

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

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

Для небольшого числа функций подойдёт микроконтроллер Arduino Uno и набор периферийных модулей.

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

Заключение

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

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

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

Проектирование «Умного дома»

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

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

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

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

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

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

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

Работа системы ардуино

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

Необходимые комплектующие

Для самостоятельной сборки потребуются следующие и комплектующие:

  • Отвертки.
  • Пассатижи.
  • Резисторы.
  • Реле.
  • Датчики.
  • Модуль связи.
  • Ардуино UNO.

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

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

Особенности установки ардуино

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

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

  • Инсталляция кода программы.
  • Настройка программы для применяемого планшета или компьютера.
  • Настройка портов на модуле связи.
  • Проверка работоспособности.
  • Корректировка кода программы (при необходимости).

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

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

Настройка роутера

На модуле связи (роутере) необходимо открыть порт. Это делается следующим образом:

  • Открыть свойства роутера.
  • Указать IP-адрес устройства.
  • Открыть 80 порт.
  • На новый адрес присвоить доменное имя.
  • Произвести тестирование работы всей системы.

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

Примеры:

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

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

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

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

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


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

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

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

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

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

Заключение

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

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

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

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

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

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


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


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

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

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

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

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

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

UPDATE:

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