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

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

Решено, нужно спроектировать плату, к которой легко будет подключить все эти датчики и напихать в неё всё, что нужно для автоматизации. А если по той же шине навесить на OpenHAB другие устройства, то получится отличная система умного дома:



Итак, что нужно реализовать в первую очередь?
— измерение давления; температуры и влажности;
— контроль состояния окон и дверей, датчиков движения, защиты от пожара и протечек;
— контроль доступа с использованием ключей IButton и RFID;
— контроль контактов и управление исполнительными механизмами через дискретные входы и выходы;
— контроль нескольких выносных датчиков температуры через интерфейс 1-Wire;
— контроль дополнительных датчиков, контактов и управление исполнительными механизмами через радиоканал.

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



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

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

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

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

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

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

Для непосредственной связи с мобильными устройствами предназначен BLE (Bluetooth Low Energy) трансивер HM-11. Он позволит интегрировать в устройство функции iBeacon от Apple а также Google Nearby или physical-web. Позже, в ходе обсуждения было решено предусмотреть возможность замены Bluetooth модуля HM-11 на недорогой WiFi модуль на основе ESP8266, что должно расширить варианты применения контроллера, например, беспроводное подключение к ведущему контроллеру или роутеру или подключения WiFi датчиков и устройств.

С конструкцией разобрались, пора приступать к разработке платы.
Среди любителей так мало хороших монтажников, поэтому я не стал создавать им трудности, выбрал достаточно крупный размер резисторов и конденсаторов – 0805, оставил приличный зазор между элементами и сделал маркировку компонентов шелкографией. Всё элементы разместил на плате 68,6х53,3мм конструкция которой соответствует модулю расширения Arduino UNO.

Разработанный в PCAD прототип печатной платы был отправлен в Резонит для изготовления опытных образцов на срочном производстве. Через несколько дней платы и заранее заказанная комплектация была уже у меня. Ещё пара дней с паяльником и вот уже мысль приобрела реальные очертания!

Осталось навесить модуль на Arduino и вот он, долгожданный контроллер!

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

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

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

Что получилось в результате работы:

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

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

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

Что осталось сделать перед изготовлением полноценной версии контроллера:
1. Провести корректировки в схеме и конструкции, устранив ошибки и недочёты, обнаруженные в процессе альфа тестирования.
2. Установить вместо модуля HM-11 разъём для подключения WiFi модуля ESP8266, при этом спроектировать плату переходник для HM-11 с такой же распиновкой разъёма.
3. Предусмотреть разъём стандарта Grove или DFRobot для выносного подключения датчика влажности DHT11

Вот, кажется всё, схему и дополнительную информацию о ходе работы можно посмотреть на страничке проекта vk.com/myremoter

Предыдущие публикации посвящённые стыковке Arduino c системой OpenHAB по протоколу Modbus можно посмотреть здесь:
Как подружить OpenHAB и Arduino habrahabr.ru/post/248569
Arduino & Modbus habrahabr.ru/post/249043
Arduino & OpenHAB habrahabr.ru/post/252555

Комментарии (15)


  1. Xeenon
    18.05.2015 10:42
    +13

    image

    image


    1. Borich Автор
      18.05.2015 11:36

      ???


      1. Xeenon
        18.05.2015 11:37
        +3

        Буква «н» пропущена в слове коНтроллер


        1. Borich Автор
          18.05.2015 11:40
          +1

          Спасибо, проверил всё, кроме заголовка, бывает )))


  1. progchip666
    18.05.2015 14:19
    +1

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


    1. TimReset
      18.05.2015 19:07

      А что Вы использовали вместо Arduino?


      1. progchip666
        18.05.2015 19:43

        Я — ничего. Просто наблюдаю за развитием проектов данного направления. Ардуино построена на сильно устаревшем микроконтроллере. Она годится для первых шагов в программировании и быстром прототипировании, но не для домашней и тем более промышленной автоматики. Её библиотеки не оптимизированы для выполнения параллельных процессов(как верно заметил автор), нет защиты портов и питания да и МСU на котором она сделана никогда не блистал особой надёжностью.
        Просто у неё совсем другая ниша. Это как из детского конструктора пытаться собрать велосипед…


        1. ignat99
          18.05.2015 21:18

          Один из проектов IoT и Умного Дома на Arduino:
          www.souliss.net
          souliss.github.io/welcome
          groups.google.com/forum/#!forum/souliss
          Есть не дорогие платы с защитой.
          github.com/souliss/souliss/wiki/Olimex%20Support


          1. progchip666
            18.05.2015 22:08

            Не буду спорить. Вполне можно сделать один или даже пару успешных копмлектов. Проблемы часто начинаются при масштабировании и длительном использовании.
            И ещё хочу предостеречь от использования копеечных китайских модулей. Они могут работать очень не стабильно, быстро выходить из строя, глючить или просто один раз вам повезёт, а во второй вы купите битую партию.
            Помните была такая компания на хабре Virt2real, которые Тачкой бонда прославились.
            Сделали они опытную партию, всё работало, потом начали мелкую серию и тут пошли глюки. Сначала массовый брак WiFi модулей, а дальше по нарастающей…
            Где они сейчас со своими предзаказами? Где их блог? Да и сайт у них уже год не обновляется.
            Таких историй не счесть. Так что если хотите делать умный дом для себя, то по большому счёту всё равно из чего, но если собираетесь свой опыт масштабировать, мой совет десять раз подумайте над надёжностью своего решения.


            1. TimReset
              19.05.2015 00:31

              Специально зашёл посмотреть блог компании на хабре — действительно, не продлили подписку и блог закрыли. Зашёл на chipster.ru (я там покупаю электро детали) — virt2real представлен. Зашёл на их сайт — да, с апреля прошлого года не обновлялись. Но твитер обновлялся в апреле этого года: twitter.com/virt2real Т.ч. не всё так плохо и отсутствие активности на хабре не означает смерть компании :)


            1. ignat99
              19.05.2015 19:51
              +1

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


  1. kibergus
    18.05.2015 21:45

    Радиоканал сделан на самом распространённом и дешёвом радиомодуле для Arduino выполненном на чипе NRF24L01.

    Я вот буквально вчера озадачился вопросом, почему эти модули стоят как грязь (от 24 рублей за плату с блямбой, тех же 24 за чип и 40 за плату с нормальным чипом), а модули на 433/868 Мгц это уже около 100 за чип и 180 за плату. Выяснил, что настоящий NRF24L01+ тоже стоит более 100 рублей. А дешевые — это подделки, сделанные по другому техпроцессу и с не очень понятными характеристиками.


    1. evgeny_boger
      19.05.2015 00:14

      Не совсем так. «Подделки» — это китайские совместимые чипы типа Beken BK2423 и т.д. Судя по всему, нордик стал продавать свои чипы в китае сильно дешевле и теперь чипы по цене отличаются не очень сильно. Программно кстати эти BK2423 можно отличить от nrf24l01+, маркировка другая, да и продавцы особо не скрывают.

      А почему они стоят дешевле, чем на 433/868 — так это совсем просто: чипы для беспроводных мышей и клавиатур с соответствующим размером рынка.


      1. kibergus
        19.05.2015 09:37
        +1

        Поддельные nrf24l01+ все-таки существуют:
        zeptobars.ru/en/read/Nordic-NRF24L01P-SI24R1-real-fake-copy


        1. evgeny_boger
          19.05.2015 13:35
          +2

          Да, спасибо, был неправ. Сейчас обратил внимание, что даже у некоторых китайцев, которые пишут, что у них SI24R1, на чипе маркировка от нордика.