Система умный дом на микроконтроллере


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

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

На данный момент мой умный дом полностью закончен: серверная часть, web-интерфейс, приложение с виджетами под Android, контроллеры, датчики и исполнительные устройства, алгоритмы, даже собственный скриптовый язык программирования для них.

Но для начала я бы хотел вам рассказать про аппаратную часть «рабочей лошадки» дома – RC-2(room controller). Я давно пишу прошивки под AVR МК, поэтому в качестве мозга нашего контроллера будет известная Atmega 8-16PU, которая есть во всех магазинах радиодеталей. Да, ее старший брат используется в уже надоевшей всем Arduino Uno, но мы будем держаться от нее подальше.


Чего мы хотим?

А теперь определим требования к нашей лошадке: контроллеры должны стоять в каждой комнате и иметь связь с сервером, работать от напряжения питания 7-40 вольт, иметь возможность подключения датчиков температуры и влажности, всевозможных датчиков и кнопок типа «сухой контакт» (герконов, кнопок, датчиков движения), возможность управлять внешними устройствами, способность делать простейшие действия без участия сервера (включать свет по кнопке, датчику движения, геркону).

Теперь пройдемся по требованиям и выберем средства, способные обеспечить выполнение этих требований:

  • Связь с сервером. Ethernet – сложно и много проводов (от свитча до каждого из контроллеров), Bluetooth, WiFi и другие беспроводные – сложно и дорого. Вспомним о старой доброй шине RS-485 и будем использовать ее.
  • Логика у нас 5 вольтовая, нужен преобразователь. Будем использовать простой и очень эффективный блок питания на импульсном регуляторе LM2576 (схема есть в даташите на первой же странице)
  • Всевозможные датчики? Atmega8 имеет на борту все что нужно: АЦП, дискретные входы, есть даже встроенные резисторы подтяжки. Реализуем поддержку шины 1-Wire на одной из ножек для общения с датчиками (тем же самым DHT11).
  • Управление внешними устройствами? Опять же, имеем дискретные выходы и ШИМы на МК.

Молчи – за умного сойдешь

На шине RS-485 должен быть один мастер, который будет опрашивать подключенные к шине наши умные контроллеры по очереди. В один момент времени говорит один, остальные слушают. Контроллеры отвечают строго только на запрос мастера, сам по себе никто ничего не говорит, иначе будут коллизии, и никто ничего не поймет. Все строго.

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

Для работы с шиной будем использовать микросхему MAX485, плюс UART самой Atmega8.
image
С ней все просто: на 2 и 3 ножке логическая единица – передаем, ноль – слушаем. После переключения этих режимов важно подождать пока завершатся переходные процессы, где-то пол миллисекунды, прежде чем передавать/принимать.

Что получается?

Разведенная схемка выглядит так:
Система умный дом на микроконтроллере
Готовый контроллер:
Система умный дом на микроконтроллере
В ближайшем радиомагазине все это стоит:

  • Atmega8-16PU — 130р
  • MAX485 — 60р
  • LM2576 — 60р
  • Рассыпуха(текстолит, резисторы, диоды, конденсаторы, кварц, клемники) – 150р

Итого = 400р.
Получилось дешево и сердито. Протокол общения устройство-сервер бинарный, с контрольной суммой. Контроллер дергает лапками по команде сервера, в ответ на запрос состояния посылает массив состояний своих входов, выходов, АЦП и то, что удалось получить по 1-Wire. Без сервера умеет включать свет по кнопке, переключателю, датчику движения.

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

Источник: habr.com

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

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

Система умный дом на микроконтроллере
Система «умный дом» от Arduino представляет собой комплект оборудования для управления работой различных устройств с помощью мобильного телефона на базе ОС Android

В любой системе «умный дом» можно выделить следующие составляющие:


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

    Система умный дом на микроконтроллере
    Одним из наиболее часто импользуемых элементов «умного дома» является датчик движения

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

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

    Система умный дом на микроконтроллере
    Электромоторчик является исполнительным устройством, которое включается по сигналу контроллера системы и приводит в движение подключённый к нему механизм

  3. Процессор. Может также называться контроллером. Это «мозг» системы, который координирует и согласовывает работу всех её составляющих.

    Система умный дом на микроконтроллере
    Плата процессора (или контроллера) управляет исполнительными устройствами на основе встроенной программы и данных, полученных от сенсоров


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

Современные системы «умный дом» делятся на несколько разновидностей:

  1. Оснащённые собственным контроллером.
  2. Использующие в этом качестве процессор пользовательского компьютера (планшета, смартфона).
  3. Обрабатывающие информацию при помощи удалённого сервера, принадлежащего компании-разработчику (облачный сервис).

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

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

Знакомимся с Arduino


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

Система умный дом на микроконтроллере
Набор Arduino Uno содержит необходимые компоненты для реализации устройств, описанных в прилагаемой книге

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

Потенциальному пользователю следует знать, что с 2008 года существуют две компании, выпускающие продукцию под торговой маркой Arduino. У первой, которая начинала это направление, официальный сайт размещён по адресу www.arduino.cc; у второй, новообразовавшейся — по адресу www.arduino.org. То, что было разработано до раскола, на обоих сайтах представлено одинаково, а вот ассортимент новой продукции уже отличается.


ПО для систем «умный дом» Arduino имеет вид программной оболочки (называется IDE), в которой можно писать и компилировать программы. Распространяется бесплатно. Программы пишутся на языке C++.

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

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

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

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

Этот аппаратно-программный комплекс привлекает пользователя такими достоинствами:


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

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


В программе Arduino IDE, представленной на сайте arduino.cc, заложена возможность создания пользовательских аппаратно-программных платформ, в то время как в версии программы на arduino.org такая функция отсутствует.

Какие решения предлагает Arduino

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

  1. Сенсоры, отслеживающие климатические параметры:
    • температуру;
    • влажность;

      Система умный дом на микроконтроллере
      Специальная плата с датчиками температуры и влажности предоставляет интерфейс вывода измеряемых параметров на LCD-дисплей

    • осадки (датчик дождя и снега);
    • освещённость;
    • давление.
  2. Сенсоры, позволяющие определить пространственное положение объекта, на котором они закреплены:
    • 6-осный датчик-гироскоп с акселерометром;
    • компас.

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

  3. Сенсоры, позволяющие регистрировать присутствие различных объектов:
    • датчик движения;
    • инфракрасный датчик (зафиксирует неподвижно сидящего человека или теплокровное животное);

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

    • ультразвуковой датчик (обнаруживает объекты с любой температурой и определяет расстояние до них).
  4. Аварийные сенсоры:
    • датчик дыма;
    • датчик огня;
    • датчик утечки газа;

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

    • датчик углекислоты.
  5. Прочие устройства, например:
    • микрофон;
    • часы;
    • датчик открывания двери;
    • пульты дистанционного управления (радиочастотные и инфракрасные) с приёмниками;
    • удалённые кнопки.

Некоторые из этих устройств включены в состав базового набора Arduino Start, который у ряда производителей имеет название StarterKit.

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

Исполнительная часть содержит огромный набор устройств, например:

  • электромоторы;
  • реле и различные переключатели;
  • диммеры (позволяют плавно менять интенсивность освещения);
  • доводчики дверей;
  • вентили и 3-ходовые клапаны с сервоприводами.

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

Видео: начинаем работать с Arduino — управляем светодиодом через web-интерфейс

Составление проекта на Arduino

Процесс создания и настройки «умного дома» Arduino покажем на примере системы, в которую будут заложены следующие функции:

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

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

Используемые сокращения:

  1. «GND» — заземление.
  2. «VCC» — питание.
  3. «PIR» — датчик движения.

Необходимые компоненты для изготовления системы «умного дома»

Для системы «умного дома» Arduino потребуется следующее:

  • микропроцессорная плата Arduino;
  • модуль Ethernet ENC28J60;
  • два температурных датчика марки DS18B20;
  • микрофон;
  • датчик дождя и снега;
  • датчик движения;
  • переключатель язычковый;
  • реле;
  • резистор сопротивлением 4,7 кОм;
  • кабель «витая пара»;
  • кабель Ethernet.

Стоимость всех компонентов составляет примерно 90 долларов.

Система умный дом на микроконтроллере
Для изготовления системы с необходимыми нам функциями потребуется набор устройств стоимостью около 90 долларов

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

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

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

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

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

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

Пользователь пишет всю программу целиком в оболочке Arduino IDE, для чего последняя оснащена текстовым редактором, менеджером проектов, компилятором, препроцессором и средствами для заливки программного кода в микропроцессор платы Arduino. Разработаны версии IDE для операционных систем Mac OS X, Windows и Linux. Язык программирования — С++ с некоторыми упрощениями. Пользовательские программы для Arduino принято называть скетчами (sketch) или набросками, программа IDE сохраняет их в файлы с расширением «.ino».

Функцию main(), которая в С++ является обязательной, оболочка IDE создаёт автоматически, прописывая в ней ряд стандартных действий. Пользователь должен написать функции setup() (выполняется единоразово во время старта) и loop() (выполняется в бесконечном цикле). Обе эти функции для Arduino являются обязательными.

Заголовочные файлы стандартных библиотек вставлять в программу не нужно — IDE делает это автоматически. К пользовательским библиотекам это не относится — они должны быть указаны.

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

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

Вот пример самой простой программы, заставляющей каждые 2 секунды мигать подключённый к 13-му выводу платы светодиод:

void setup () { pinMode (13, OUTPUT); // Назначение 13 вывода Arduino выходом}

void loop () { digitalWrite (13, HIGH); // Включение 13 вывода, параметр вызова функции digitalWrite HIGH — признак высокого логического уровня

delay (1000); // Цикл задержки на 1000 мс — 1 секунду

digitalWrite (13, LOW); // Выключение 13 вывода, параметр вызова LOW — признак низкого логического уровня

delay (1000); // Цикл задержки на 1 секунду}

Однако в настоящий момент перед пользователем далеко не всегда встаёт необходимость лично писать программу: в сети выложено множество готовых библиотек и скетчей (загляните сюда: http://arduino.ru/Reference). Имеется готовая программа и для системы, рассматриваемой в этом примере. Её нужно загрузить, распаковать и импортировать в IDE. Текст программы снабжён комментариями, поясняющими принцип её работы.

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

Когда пользователь нажимает в браузере или установленном на смартфоне приложении кнопку «Refresh» (Обновление), микроконтроллер Arduino осуществляет отсылку данных этому клиенту. С каждой из страниц, обозначенных как «/tempin», «/tempout», «/rain», «/window», «/alarm», поступает программный код, который и отображается на экране.

Установка клиентского приложения на смартфон (для ОС Android)

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

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

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

    Система умный дом на микроконтроллере
    Необходимо включить разрешение на установку программ не из PlayMarket, которое находится в разделе «Безопасность» настроек смартфона

  5. Когда установка будет завершена, активируйте приложение.
  6. Выполните его настройку.

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

Активировав иконку «Настройки», можно отредактировать свой IP-адрес.

Настройка браузера на работу с «умным домом»

В адресной строке браузера следует ввести XXX.XXX.XXX.XXX/all, где «XXX.XXX.XXX.XXX» — ваш IP-адрес. После этого появится возможность получать данные от системы и осуществлять управление ею.

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

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

Далее на маршрутизаторе необходимо открыть порт:

  • открываем настройки маршрутизатора;
  • прописываем адрес Arduino IP;
  • открываем порт 80.

    Система умный дом на микроконтроллере
    Необходимо прописать маршрут перехода на процессор Arduino по порту 80

Настройка учётной записи на noip.com

Этот этап не является обязательным, но он необходим, если вы хотите присвоить адресу доменное имя. Для этого надо зарегистрироваться на сайте https://www.noip.com/, перейти в раздел «Add host» и ввести IP-адрес системы.

Система умный дом на микроконтроллере
После регистрации на сайте noip.com доступ к системе можно получать не только по IP-адресу, но и по полному доменному имени

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

Видео: умный дом на «Ардуино»

Особенности работы некоторых аппаратных средств 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, автоматизируя различные домашние процессы.

Источник: tehznatok.com

201.238.226.123 - - "HEAD /mysql/admin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysql/dbadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysql/sqlmanager/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysql/mysqlmanager/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpmyadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpMyadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpMyAdmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpmyAdmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpmyadmin2/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpmyadmin3/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpmyadmin4/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /2phpmyadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpmy/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phppma/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /myadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /shopdb/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /MyAdmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /program/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /PMA/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /dbadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /pma/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /admin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysql/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /database/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/phpmyadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/phpMyAdmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sqlmanager/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysqlmanager/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /php-myadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpmy-admin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysqladmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysql-admin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /admin/phpmyadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /admin/phpMyAdmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /admin/sysadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /admin/sqladmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /admin/db/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /admin/web/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /admin/pMA/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysql/pma/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysql/db/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysql/web/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /mysql/pMA/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/phpmanager/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/php-myadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/phpmy-admin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/sql/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/myadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/webadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/sqlweb/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/websql/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/webdb/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/sqladmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/sql-admin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/phpmyadmin2/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/phpMyAdmin2/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /sql/phpMyAdmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/myadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/webadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/dbweb/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/websql/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/webdb/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/dbadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/db-admin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/phpmyadmin3/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/phpMyAdmin3/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /db/phpMyAdmin-3/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /administrator/phpmyadmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /administrator/phpMyAdmin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /administrator/db/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /administrator/web/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /administrator/pma/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /administrator/PMA/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /administrator/admin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpMyAdmin2/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpMyAdmin3/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpMyAdmin4/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpMyAdmin-3/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /php-my-admin/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /PMA2012/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /pma2012/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /PMA2011/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /pma2011/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 201.238.226.123 - - "HEAD /phpmanager/ HTTP/1.1" 501 0 "-" "Mozilla/5.0 Jorgee" 

Источник: www.forumhouse.ru

Ранее на нашем ресурсе мы рассматривали преимущественно распределенные системы автоматизации. Обычная схема в этом случае выглядит так: центральный контроллер плюс различные датчики и исполнительные устройства «на местах». Связь между элементами осуществляется по кабелям (например, KNX) или без проводов (в частности, Z-Wave). Преимуществами таких решений являются масштабируемость, гибкость выбора и изменения конфигурации, частичная независимость элементов (при выходе из строя датчика, все остальное продолжит работать). В беспроводном варианте есть также существенный плюс — возможность построения системы автоматизации без прокладки новых кабелей и ремонта. Основной недостаток напрямую следует из преимуществ — наличие относительно сложных «мозгов» в элементах системы отражается в их стоимости. Кроме того, в особенности стоит записать ограниченный, по сравнению с «обычным» сегментом электроустановочного оборудования, ассортимент компонентов (например, сенсоров или выключателей), хотя, справедливости ради, это редко является проблемой.

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

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

В этом материале мы познакомимся с одной из реализаций центральной системы. В данном случае ее ключевым элементом будет выступать программируемый логический контроллер (ПЛК, PLC) EasyHomePLC. Это относительно недорогое устройство выпускается отечественной компанией и ориентировано на работу с программным обеспечением EasyHome. При этом низкоуровневые операции программирования в данном продукте скрыты от пользователя и ему для настройки алгоритмов работы предоставляются удобные графические интерфейсы, что позволяет самостоятельно программировать и перепрограммировать продукт непосредственно конечным потребителем без привлечения специалистов.

Решение поставляется как в виде компонентов, так и как готовые комплекты для реализации наиболее востребованных сценариев, например управления температурой в квартире.

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

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

Контроллер EasyHomePLC

Устройство выполнено в формате для установки на стандартную DIN-рейку в электрощит, как и другие аналогичные продукты, и занимает на ней девять мест (габаритные размеры 160×57×90 мм). Однако для подключения кабеля локальной сети потребуется дополнительное пространство слева. Внешний корпус изготовлен из серого пластика. На верхней панели приводится информация об устройстве, а также есть логотипы производителя и значки совместимых с фирменным приложением операционных систем.

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

В контроллере EasyHomePLC предусмотрены следующие входы и выходы:

  • 9 реле бистабильного типа, максимальный ток 16 А;
  • 9 выходов на транзисторных ключах (до 60 мА);
  • 32 входа для бинарных датчиков;
  • 16 аналоговых входов от датчиков 0..10 В (совмещены с цифровыми входами);
  • выход 12 В 250 мА для питания датчиков;
  • 6 каналов ШИМ с собственным питанием 5..32 В до 1,4 А каждый;
  • два интерфейса RS-485;
  • два интерфейса RS-232 (5 В);
  • один порт для подключения к локальной сети (100 Мбит/с);
  • отдельный вход питания контроллера DC 18..27 В.

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

По информации производителя, в контроллере используется процессор с архитектурой Cortex M4F производства TI, работающий на частоте 120 МГц. Потребление самого контроллера заявлено на уровне 3 Вт и обеспечивается или подачей внешнего постоянного напряжения или через встроенный блок питания от сети 220 В.

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

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

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

Датчики

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

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

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

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

В данном случае использовалась модель «Альянс «Комплексная безопасность». Датчик имеет компактный корпус (защита уровня IP55) с парой электродов из нержавеющей стали. Расположить его нужно в непосредственной близости от пола или прямо на полу.

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

Исполнительные устройства

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

Соответствующий блок выполнен в аналогичном контроллеру корпусе. Порты подключения также аналогичны — три независимых блока с собственным питанием по три реле.

Подключается блок обычным плоским кабелем, идущим в комплекте поставки.

Для тестирования также использовался внешний управляемый диммер Finder 15.11, который принимает на вход аналоговый сигнал от 0 до 10 В и в соответствии с ним регулирует нагрузку сети питания 220 В. Данная модель поддерживает работу с лампами накаливания до 400 Вт, а также со светодиодными и люминесцентными лампами до 100 Вт.

На корпусе предусмотрен переключатель режима, индикаторный светодиод и регулятор минимального уровня диммирования. Для подключения этого устройства к выходам контроллера с ШИМ потребуется дополнительная RC-цепочка.

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

GSM-модем

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

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

Полноразмерная SIM-карта устанавливается в лоток. Предусмотрен только один индикатор состояния. Модем поддерживает работу в сетях второго поколения, отправку и передачу SMS, а также подключение к интернету через GPRS.

Сенсорная панель

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

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

Рассматриваемая панель выполнена в формате для установки в прямоугольный подрозетник с габаритными размерами 10×6 сантиметров. Для ее работы потребуется подвести питание 5 В (примерно 1 Вт), а общение с контроллером производится через беспроводную сеть в диапазоне 2,4 ГГц (одна антенна, максимальная скорость подключения 65 Мбит/с).

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

Внешние размеры данной модификации составляют 8×12 сантиметров. Экран занимает примерно 4,5×6 см. Он имеет разрешение 240×320 точек, TN-матрицу и резистивный сенсор. Ориентация панели может быть только вертикальная. Так что конечно более интересно и красиво использовать смартфоны или планшеты, но для них нужно будет придумать удобное крепление.

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

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

Подключения и начало работы с системой

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

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

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

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

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

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

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

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

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

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

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

Для выходов с ШИМ предусмотрена подача независимого питания 5—32 В постоянного тока, так что при необходимости можно иметь до шести достаточно мощных потребителей с регулировкой яркости. В случае, если нагрузка должна работать от 220 В переменного тока, потребуется добавить в схему управляемые диммеры и RC-цепочки для них. По умолчанию частота ШИМ составляет 100 Гц, при необходимости можно изменить ее через настройки регистров контроллера.

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

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

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

Система умный дом на микроконтроллере
Система умный дом на микроконтроллере
Система умный дом на микроконтроллере

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

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

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

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

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

Источник: www.ixbt.com

Датчики и исполнительные устройства Z-Wave

Главное преимущество умного дома в том, что он умеет самостоятельно измерять различные параметры внешней среды и выполнять полезные функции в зависимости от ситуации. Для этого к контроллеру умного дома подключаются датчики и исполнительные устройства. В текущей версии — это беспроводные устройства, работающие по протоколу Z-Wave на специально выделенной частоте 869 МГц для России. Для своей работы они объединяются в mesh-сеть, в которой присутствуют ретрансляторы сигнала, чтобы увеличить зону покрытия. Также устройства имеют специальный режим энергосбережения — большую часть времени они проводят в спящем режиме и отправляют информацию только при изменении своего состояния, что позволяет существенно продлить жизнь встроенной батареи.

Система умный дом на микроконтроллере

На рынке сейчас можно найти достаточно большое количество различных устройств Z-Wave. В качестве примера рассмотрим несколько:

  1. Умная розетка Zipato PAN16 может измерять следующие параметры: потребление электроэнергии (кВт/ч), мощность (Вт), напряжение (В) и ток (А) в электросети. Также она имеет встроенный выключатель, с помощью которого можно управлять подключенным электроприбором;
  2. Датчик протечки Neo Coolcam определяет наличие разлитой жидкости по замыканию контактов выносного щупа;
  3. Датчик задымления Zipato PH-PSG01 срабатывает при попадании частиц дыма в камеру газоанализатора;
  4. Датчик движения Neo Coolcam анализирует инфракрасное излучение тела человека. Дополнительно имеется датчик освещенности (Лк);
  5. Мультисенсор Philio PST02-A измеряет температуру (°C), освещенность (%), открытие двери, присутствие человека в помещении;
  6. Контроллер сети Z-Wave USB Stick ZME E UZB1, к которому подключаются датчики.

Очень важно, чтобы устройства и контроллер работали на одной частоте, — иначе они, по-просту, не увидят друг-друга в момент подключения. К одному контроллеру сети Z-Wave можно подключить до 232 устройств, что вполне достаточно для квартиры или загородного дома. Для расширения зоны покрытия сети внутри помещения умная розетка может быть использована как ретранслятор сигнала.

Система умный дом на микроконтроллере

В серверном процессе контроллера умного дома, рассмотренном в предыдущем пункте, за взаимодействие с устройствами Z-Wave отвечает сервер Z-Wave. Для получения информации с датчиков он использует библиотеку OpenZWave на языке С++, которая предоставляет интерфейс для взаимодействия с USB-контроллером сети Z-Wave и работает со множеством датчиков и исполнительных устройств. Значение параметра внешней среды, измеренной датчиком, записывается сервером Z-Wave в виде JSON-сообщения:

{ 	"vendor": "*****", 	"version": "3.0.0", 	"timestampMs": "1566479791290", 	"clientType": "gateway", 	"deviceId": "20873eb0-dd5e-4213-a175-************", 	"deviceType": "sensor", 	"protocol": "zwave", 	"messageType": "sensorData", 	"homeId": "0xefa0cfa7", 	"nodeId": "20", 	"sensorType": "METER", 	"label": "Voltage", 	"sensorData": "229.3", 	"units": "V" } 

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

Система умный дом на микроконтроллере
(кликните на картинку, чтобы открыть в большем разрешении)

Подключение устройств Z-Wave производится в графическом интерфейсе контроллера умного дома. Для этого нужно перейти на страничку со списком устройств и нажать кнопку «Добавить». Команда добавления через интерфейс RESTful API попадает в серверный процесс и, затем, пересылается диспетчером сообщений серверу Z-Wave, который переводит USB-контроллер сети Z-Wave в специальный режим добавления устройств. Далее, на устройстве Z-Wave нужно произвести серию быстрых нажатий (3 нажатия в течении 1,5 секунд) сервисной кнопки. USB-контроллер подключает устройство в сеть и отправляет информацию о нем в сервер Z-Wave. Тот, в свою очередь, создает новую запись в БД SQLite с параметрами нового устройства. Графический интерфейс по истечении заданного интервала времени возвращается на страничку списка устройств Z-Wave, считывает информацию из БД и отображает новое устройство в списке. Каждое устройство при этом получает свой уникальный идентификатор, который используется в правилах продукционного логического вывода и при работе в облаке. Работа этого алгоритма показана на UML-диаграмме:

Система умный дом на микроконтроллере
(кликните на картинку, чтобы открыть в большем разрешении)

Подключение IP-камер

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

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

Система умный дом на микроконтроллере

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

Самый популярный протокол для систем IP-видеонаблюдения, поддерживаемый сейчас всеми без исключения производителями IP-камер, — это ONVIF Profile S, спецификации которого существуют на языке описания веб-сервисов WSDL. С помощью утилит из инструментария gSOAP возможно сгенерировать исходный код сервисов, работающих с IP-камерами:

$ wsdl2h -o onvif.h  	https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl  	https://www.onvif.org/ver10/events/wsdl/event.wsdl  	https://www.onvif.org/ver10/media/wsdl/media.wsdl  	https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl  $ soapcpp2 -Cwvbj -c++11 -d cpp_files/onvif -i onvif.h 

В результате мы получаем набор заголовочных «*.h» и исходных «*.cpp» файлов на языке С++, который можно поместить прямо в приложение или отдельную библиотеку и откомпилировать с помощью компилятора GCC. Из-за множества функций код получается большим и требует дополнительной оптимизации. Микрокомпьютер Raspberry Pi 3 model B+ обладает достаточной производительностью, чтобы исполнять этот код, но в случае, если возникнет необходимость портировать код на другую платформу, необходимо правильно подобрать процессорную архитектуру и системные ресурсы.

IP-камеры, поддерживающие стандарт ONVIF, при функционировании в локальной сети подключаются к специальной мультикастовой группе с адресом 239.255.255.250. Существует протокол WS-Discovery, который позволяет автоматизировать поиск устройств в локальной сети.

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

Система умный дом на микроконтроллере
(кликните на картинку, чтобы открыть в большем разрешении)

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

Система умный дом на микроконтроллере

Далее формируется сообщение в формате JSON, содержащее все параметры добавляемой камеры, и отправляется в серверный процесс контроллера умного дома через команду RESTful API, где параметры камеры декодируются и сохраняются во внутренней БД SQLite, а также используются для запуска следующих потоков обработки:

  1. установления RTSP-соединения для получения видео и аудио потоков;
  2. транскодирования аудио из форматов G.711 mu-Law, G.711 A-Law, G.723, итд. в формат AAC;
  3. транскодирования потоков видео в формате H.264 и аудио в формате AAC в контейнер FLV и передача его в облако по протоколу RTMP;
  4. установления соединения с конечной точкой детектора движения IP-камеры по протоколу ONVIF и ее периодический опрос;
  5. периодической генерации уменьшенного изображения предварительного просмотра (preview) и пересылке его в облако по протоколу MQTT;
  6. локальной записи видео и аудио потоков в виде отдельных файлов в формате MP4 на SD- или Flash-карту контроллера умного дома.

Система умный дом на микроконтроллере

Для установления соединения с камерами, транскодирования, обработки и записи видеопотоков в серверном процессе используются функции из библиотеки FFmpeg 4.1.0.

В эксперименте на тестирование производительности к контроллеру были подключены 3 камеры:

  1. HiWatch DS-I114W (разрешение — 720p, формат сжатия — H.264, битрейт — 1 Mb/s, звук G.711 mu-Law);
  2. Microdigital MDC-M6290FTD-1 (разрешение — 1080p, формат сжатия — H.264, битрейт — 1 Mb/s, без звука);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (разрешение — 1080p, формат сжатия — H.264, битрейт — 1.5 Mb/s, звук AAC).

Система умный дом на микроконтроллере

Все три потока одновременно выводились в облако, транскодирование звука осуществлялось только с одной камеры, запись локального архива была отключена. Загрузка CPU составила примерно 5%, использование RAM — 32 МБ (на процесс), 56 МБ (всего вместе с ОС).

Таким образом, к контроллеру умного дома можно подключить примерно 20 — 30 камер (в зависимости от разрешения и битрейта), что достаточно для системы видеонаблюдения трехэтажного коттеджа или небольшого склада. В задачах, где требуется большая производительность, можно использовать неттоп с многоядерным процессором Intel и ОС Linux Debian Sarge. В настоящее время контроллер проходит опытную эксплуатацию, и данные о производительности его работы будут уточняться.

Взаимодействие с облаком

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

Состояния подключенных устройств и измерения датчиков передаются по протоколу MQTT, который часто применяется в проектах Интернета Вещей из-за простоты и энергоэффективности. MQTT использует клиент-серверную модель, когда клиенты подписываются на определенные топики внутри брокера и публикуют свои сообщения. Брокер рассылает сообщения всем подписчикам по правилам, определяемым уровнем QoS (Quality of Service):

  • QoS 0 — максимум один раз (нет гарантии доставки);
  • QoS 1 — хотя бы один раз (с подтверждением доставки);
  • QoS 2 — ровно один раз (с дополнительным подтверждением доставки).

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

Система умный дом на микроконтроллере

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

MQTT-клиент был разработан на основе реализации библиотеки Eclipse Paho на языке С++.

Медиапотоки H.264 + AAC отправляются в облако по протоколу RTMP, где за их обработку и хранение отвечает кластер медиасерверов. Для оптимального распределения нагрузки в кластере и выбора наименее загруженного медиасервера контроллер умного дома делает предварительный запрос к облачному балансировщику нагрузки и только после этого отправляет медиапоток.

В статье была рассмотрена одна конкретная реализация контроллера умного дома на базе микрокомпьютера Raspberry Pi 3 B+, который умеет получать, обрабатывать информацию и управлять оборудованием по протоколу Z-Wave, взаимодействовать с IP-камерами по протоколу ONVIF, а также обменивается данными и командами с облачным сервисом по протоколам MQTT и RTMP. Разработан движок продукционной логики на основе сопоставления логических правил и фактов, представленных в JSON формате.

Сейчас контроллер умного дома проходит опытную эксплуатацию на нескольких объектах в Москве и Подмосковье.

В следующей версии контроллера планируется подключение устройств других типов (RF, Bluetooth, WiFi, проводные). Для удобства пользователей процедура подключения датчиков и IP-камер будет перенесена в мобильное приложение. Также есть идеи по оптимизации кода серверного процесса и портировании программного обеспечения на операционную систему OpenWrt. Это позволит сэкономить на отдельном контроллере и перенести функционал умного дома в обычный бытовой роутер.

Источник: habr.com


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.