В нашем случае, для создания концептуальной модели применяются Intel IoT Development Kit и Grove IoT Commercial Developer Kit. После того, как модель показала, что проект оправдывает ожидания, готовый продукт строится с использованием таких технологий, как Intel IoT Gateway, Intel IoT Gateway Software Suite, Intel XDK IoT Edition, IBM Bluemix и серийно производимых компонентов. Если в двух словах описать наш проект, то получится, что система датчиков собирает сведения о входной и гаражной дверях, данные передаются на шлюз, оттуда – в облако для хранения и анализа. Кроме того, в рамках проекта реализовано несколько приложений, возможности которых опираются на облачные данные. В частности – это система администрирования и мобильное приложение для конечных пользователей.
?IoT в умном доме
В идеале, интернет вещей – это среда, в которой к Сети подключено практически всё, что может представлять хотя бы малейший интерес для того, кто пользуется «вещами». Интерес этот может выражаться в возможности «вещью» управлять и узнавать её состояние. Причём, делать это можно в любом месте и в любое время. Особое положение в концепции IoT занимают наши жилища. Это и не удивительно. Дом – это центр жизни человека и совершенно естественно то, что ему нужно постоянное чувство уверенности в том, что дома всё хорошо. Современные технологии играют в поддержании такой уверенности очень важную роль, раньше, до IoT, о таком можно было только мечтать.
Например, каждому иногда является навязчивая мысль, от которой почти невозможно отделаться, если уж она возникла: «А запер ли я дверь?». Самое неприятное здесь то, что обычно мысль эта приходит тогда, когда узнать, заперта ли дверь, нет никакой возможности. Как кстати было бы в такой момент найти на экране смартфона значок «Проверить дверь»… И ведь это – лишь один из примеров.
Многие из нас вполне готовы к тому, чтобы купить и установить у себя дома систему, благодаря которой узнать, заперта ли дверь, можно было бы так же легко, как проверить электронную почту.
Хотя на рынке доступно множество решений для умного дома, эта область только начинает развиваться. Как результат, например, можно наблюдать недостаточную совместимость продуктов и компонентов различных производителей. Intel обнаружила, что один из критериев успеха в построении решений для умного дома – использование стандартизированных открытых платформ. Такой подход позволяет легко создавать интеллектуальные устройства, подключённые к облаку, которые можно применять в любом месте дома для организации наблюдения за самыми разными объектами и для управления ими. Кроме прочего, у подобных продуктов и служб имеется значительный коммерческий потенциал.
?О подходе к созданию проекта
Intel организовала исследование, о котором мы сейчас расскажем, для того, чтобы выявить особенности разработки систем для умного дома. Во многом, идейным вдохновителем этого проекта стало существующее решение для умного дома от Yoga Systems. В материале, который доступен по ссылке, можно найти рассказ о ходе работы над проектом. Он начинается с общего описания структурированной методологии, разделённой на несколько фаз. Затем приводится подробное описание работ, выполненных на каждом этапе.
Если вы чувствуете, что подобная методика пригодится и вам, вы можете использовать наш рассказ для того, чтобы проследить за каждым этапом, пройденным командой разработчиков Intel от идеи до готового IoT-проекта для умного дома. И, что вероятно более важно, всё это можно обобщить и применить ту же методику разработки к другим проектам. Intel предлагает всем желающим воспользоваться описанной здесь методикой работы для реализации собственных IoT-проектов.
Нужно сказать, что, хотя здесь мы касаемся многих технических особенностей, основная цель этого материала – показать, на достаточно высоком уровне, методологию и процесс разработки. Если вам нужно больше технических деталей, здесь можно найти пошаговое руководство по созданию прототипа системы для умного дома, о которой мы будем говорить. Кроме того, вот репозиторий на GitHub, где можно взглянуть на код и документацию.
?Методология
По своей природе, разработка для IoT – это бесконечные инновации и масса совершенно разных проектов, которые добавляют интеллекта невероятному количеству «вещей»: от устроенных очень просто, до сложных систем; от привычных каждому, до совершенно экзотических. Но, несмотря на такое разнообразие, каждый проект, так или иначе, создаётся с учётом опыта, накопленного IoT-индустрией. Опыт и практика позволяют выделить в создании разных IoT-проектов общие элементы.
Для того, чтобы воспользоваться этими вот общими чертами подобных проектов и увеличить шансы на успех в создании новых, Intel разработала структурный подход к разработке IoT-решений. Этот подход представляет собой модель работы, состоящую из шести фаз. Он позволяет проекту пройти полный путь от идеи к готовому продукту, пригодному для коммерческого использования. Предложенная здесь модель задумана так, чтобы её легко можно было адаптировать к нуждам любого IoT-проекта.
?Начальные фазы (1-3)
Первые три фазы предлагаемой методологии – это исследования. Они сосредоточены на формировании идей и оценке возможностей проекта по решению поставленной перед ним задачи. По большому счёту, всё это — подготовка к созданию успешного коммерческого продукта. В связи с этим на данных этапах работы главную роль играют мозговые штурмы, проверки работоспособности концепции проекта. О том, чтобы заниматься разработкой, следуя неким выверенным решениям и точным планам, речи пока не идёт.
Быстрое прототипирование на данном этапе облегчается благодаря Grove IoT Commercial Developer Kit. Этот набор включает в себя компьютер Intel NUC, Intel IoT Gateway Software Suite и Grove Starter Kit Plus (производства Seed). В нашем проекте, кроме того, задействована плата Arduino 101. Эту плату, особенно за пределами США, часто называют «Genuino 101», дальше мы будем ссылаться на неё как на «Arduino 101».
Фаза №1
Первый шаг в создании IoT-продукта заключается в выявлении существующей проблемы, которую этот продукт решит, или потенциальной возможности на рынке, пустой ниши, которую можно заполнить. Документация данного этапа должна описывать проблему, ценность решения (как для конечного пользователя, так и для организаций, которые будут заниматься производством и внедрением), а также описание ограничений концепции. Также документация должна содержать сведения о предполагаемых трудностях и ограничениях процесса реализации проекта.
Фаза №2
Здесь нужно спроектировать модель для проверки работоспособности концепции, которая покажет, способен ли продукт решить поставленную перед ним задачу. Исходный проект должен содержать описание практического подхода по созданию продукта, включая аппаратные, программные и сетевые элементы. При этом необходимо учитывать все возможные трудности и ограничения в реализации проекта, выявленные на первом этапе работы. При этом, так как физической реализации системы пока нет, нужно учитывать, что часть узких мест решения можно будет увидеть только на работающем прототипе. На этом же этапе нужно уделить внимание таким факторам, как стоимость и уровень безопасности решения.
Фаза №3
На данном этапе создают и дорабатывают макет для проверки работоспособности идеи. Этот физический прототип основан на решениях, принятых на втором этапе. Если нужно, на данном этапе в проект вносят изменения, которые так же документируются. Изменения, основанные на выявленных в результате тестирования недостатках и дополнительных возможностях, так же нужно задокументировать.
?Завершающие фазы (4 – 6)
Через три последних фазы, входящие в эту методологию, проходят только после того, как было принято решение о том, что продукт нужно довести до стадии производства. Таким образом, здесь на первый план выходят повышение стабильности, безопасности и управляемости продукта, подготовка к массовому производству, монетизация проекта для претворения в жизнь его коммерческого потенциала.
На финальных этапах работы переходят к использованию серийных компонентов, например – датчиков. То же самое касается таких частей системы, как шлюзы для интернета вещей. Здесь же производится окончательная доработка документации, в ней фиксируется итоговый набор характеристик продукта.
Фаза №4
На данном этапе создают стабильную бета-версию. После того, как было доказано, что проект способен эффективно решить поставленную перед ним задачу, было решено, что он пойдёт в массовое производство, создают версию проекта, ориентированную на готовый продукт, и предназначенную для того, чтобы окончательно доработать конструкцию. При изготовлении этой версии понадобятся значительные вложения ресурсов, которые, кроме прочего, включают в себя серийно производимые датчики и другие компоненты, а также IoT-шлюзы.
Фаза №5
Здесь оценивают возможности продукта и расширяют его функционал. Готовую бета-версию тестируют на правильность работы в соответствии с заданными параметрами. В ходе тестирования команда разработчиков так же выявляет дополнительные возможности и функции продукта, которые внедряются в него для того, чтобы сделать его более надёжным, повысить его ценность для конечных пользователей.
Фаза №6
В финале проект окончательно дорабатывают и переходят к стадии производства. Как только решено, что продукт обладает всеми необходимыми возможностями, команда улучшает его, расширяя возможности по управлению им, показатели безопасности, оптимизируя модель из соображений маркетинга и эффективности производства. Так же на этом этапе завершается работа над пользовательским интерфейсом. В задачи, решаемые в этой фазе, входит окончательное планирование способов продвижения и продажи продукта перед переходом к полномасштабному производству.
Рассмотрим применение предложенной модели работы над IoT-проектами на примере нашей системы.
Пример применения методологии разработки IoT-проектов
?Фаза №1: Определение потенциала проекта
Основная рабочая группа, которая начала заниматься проектом в Intel, определила, что умный дом – это подходящая основа для возможного IoT-решения, способного продемонстрировать возможности интернета вещей и проиллюстрировать применение методологии работы над проектами, описанной выше. Эта группа выявила набор навыков будущих участников расширенной группы, которые, вероятнее всего, понадобятся в ходе разработки. Среди этих навыков – управление проектами, программирование, работа с облачными платформами, документирование. Основываясь на списке необходимых навыков, основная группа сформировала полную проектную группу. Она, в основном, состояла из сотрудников Intel, но в неё были включены и некоторые другие специалисты. Сделано это для того, чтобы дополнить экспертный потенциал команды.
Первой задачей полной проектной группы была оценка потенциальных возможностей проекта, как основы исходного прототипа. Основной потенциальной возможностью, определённой в данном случае, была интеграция программного управления и системы оповещений, связанных с определёнными функциями системы умного дома. А именно, было решено остановиться на следующих объектах:
- Входная дверь. Система, на физической модели, может отпирать и запирать дверь и сообщать о том, заперта дверь или нет, а также о том, закрыта она или открыта.
- Дверной звонок. Когда нажимают на кнопку дверного звонка на модели, оповещение об этом отображается в административном приложении и в мобильном приложении.
- Дверь гаража. Пользователь может отправлять с мобильного приложения команды для подъёма и опускания гаражной двери. Кроме того, мобильное приложение может отображать сведения о ходе открывания и закрывания двери, а также оповещать пользователя о том, что дверь не может закрыться.
Датчики, которые определяют, заперта или нет входная дверь, звонит ли кто-нибудь в дверной звонок, а также то, открыта или закрыта гаражная дверь, дают нам исходные данные. Данные это, с одной стороны, очень простые, но с другой – важные, так как именно на них основана работа всей системы, именно они позволяют решить основную задачу проекта. Двойственность между простотой этой первичной информации и её важностью – основа коммерческой ценности разрабатываемой системы.
Датчики собирают и отправляют сведения в облако для того, чтобы обеспечить хранение и анализ информации, а также удалённый защищённый доступ к системе. В результате пользователь может просматривать уведомления о событиях и о состоянии различных элементов умного дома, перечисленных выше.
Кроме того, команда обнаружила возможности по дальнейшему расширению решения, которые были определены как выходящие за рамки проекта. Они включали в себя предложения по удалённому управлению как для домашних, так и для коммерческих пользователей, в том числе – встраивание в существующие системы охраны.
?Фаза №2: Проектирование модели для проверки работоспособности концепции
Команда решила, что проект должен быть основан на легко доступных комплектующих и технологиях для того, чтобы он, как практический пример, был как можно более полезным для сообщества разработчиков. В результате было выбрано следующее: Grove IoT Commercial Developer Kit, Intel IoT Developer Kit, Intel IoT Gateway Software Suite. Кроме того, было решено использовать программные технологии, которые широко распространены и при этом либо бесплатны, либо стоят недорого, применяя везде, где это практически осуществимо, бесплатное ПО с открытым исходным кодом (free open-source software, FOSS).
Для того, чтобы ускорить прохождение проектом стадии прототипа и снизить сложность работ, ту часть системы, которая должна располагаться в доме, решили построить в виде стендовой модели. Она должна была включать в себя вычислительную платформу и датчики без включения в прототип реалистичной модели умного дома, хотя на следующих стадиях проекта такая модель будет создана и испытана.
Выбор аппаратного обеспечения для прототипа
Для использования в прототипе был выбран компьютер малого форм-фактора Intel NUC Kit DE3815TYKHE. Система эта отличается надёжностью и высокой производительностью. Кроме того, команда сочла, что, являясь одной из самых свежих аппаратных платформ от Intel, рассчитанных на сферу IoT, этот компьютер подойдёт не только для данной версии проекта, но и для возможных будущих его реализаций. Intel NUC основан на процессоре Intel Atom E3815 с пассивной системой охлаждения, оснащён 4 Гб встроенной флэш-памяти (при необходимости к нему можно подключать SATA-накопители) а также – разнообразными портами ввода-вывода. Intel NUC – это компьютер, который, будучи весьма компактным устройством, поддерживающим расширение возможностей, предоставляет функционал на уровне традиционного настольного ПК.
Компьютер Intel NUC Kit DE3815TYKHE и плата Arduino 101
Для того чтобы упростить процесс взаимодействия с датчиками, команда воспользовалась наработками экосистемы Arduino. В частности, было решено применить платформу Arduino 101. Благодаря ей NUC может взаимодействовать с платами расширения для Arduino, кроме того, такой выбор соответствует духу проекта, нацеленному на максимальное использование открытых технологий. В текущей версии проекта не используется Bluetooth, но Arduino 101 оснащён соответствующим модулем, поэтому было отмечено, что эта возможность может использоваться в будущих версиях проекта.
Вот характеристики компьютера и платы, используемых при построении прототипа:
Характеристика |
Intel NUC Kit DE3815TYKHE |
Arduino 101 |
Процессор / микроконтроллер |
Процессор Intel Atom E3815 (Кэш-память 512 Кб, 1.46 ГГц) |
Вычислительный модуль Intel Curie, тактовая частота 32 МГц |
Память |
8 Гб DDR3L-1066 SODIMM (максимум) |
196 Кб флэш-памяти 24 Кб SRAM |
Сетевые возможности / порты ввода-вывода |
Интегрированный сетевой адаптер 10/100/1000 Мбит/с |
14 цифровых и 6 аналоговых выводов |
Размеры |
190 мм x 116 мм x 40 мм |
68.6 мм x 53.4 мм |
Спецификация |
Полная спецификация |
Полная спецификация |
Что касается датчиков и других компонентов, необходимых для создания прототипа, то они взяты из Grove Starter Kit for Arduino (производства Seed Studio), который основан на Grove Starter Kit Plus, используемом в Grove IoT Commercial Developer Kit.
Этот комплект можно приобрести по доступной цене, и, так как он содержит заранее подобранный набор компонентов, его использование уменьшает усилия, необходимые для подбора и покупки материалов для IoT-прототипов. Выбор датчиков и других компонентов для прототипа (подробнее об этом ниже) продиктован необходимостью сбора следующих ключевых данных, жизненно важных для функционирования проекта.
- Состояние входной двери: заперта или нет, закрыта или открыта.
- Состояние гаражной двери: закрыта или открыта, заблокирована или разблокирована.
- События: нажатие на кнопку дверного звонка, запирание и отпирание входной двери, открывание и закрывание входной двери, открывание и закрывание гаражной двери, блокировка гаражной двери.
Спецификация ПО прототипа
В качестве операционных систем для вычислительных устройств, используемых в прототипе, команда выбрала Yocto Linux, а также – IoT Gateway Software Suite. Yocto Linux соответствует целям проекта по использованию бесплатного ПО с открытым кодом, она предлагает высокий уровень гибкости, а так же – надёжный контроль исходного кода и возможность создания собственных сборок встроенных ОС, привязанных к нуждам конкретного проекта. Intel IoT Gateway Software Suite, с другой стороны, даёт готовую реализацию ОС, без необходимости дополнительной настройки. Кроме того, эта система предоставляет функционал Node-RED для нужд разработки. Такая комбинация факторов была признана командой исключительно полезной, в итоге Intel IoT Gateway Software Suite была выбрана в качестве ОС шлюза для прототипа.
В рамках проекта было решено разработать следующие приложения:
- Управляющее приложение, которое будет работать в модели умного дома, собирать показатели датчиков и обрабатывать операции электромеханической части решения (например, открывать и закрывать гаражную дверь), оно же отвечает за обмен данными с пользователем (через административное и мобильное приложения) и с облаком.
- Административное приложение, предназначенное для запуска на компьютере или планшете. Оно предоставляет детальный обзор происходящего в умном доме, в том числе – сведения о событиях и о состояниях объектов. Так же оно будет давать доступ к журналам, к облачным данным и аналитике.
- Мобильное приложение рассчитано на смартфоны и другие мобильные устройства. Оно даст пользователю возможность открывать и закрывать гаражную дверь, а также – наблюдать за тем, что именно происходит дверью: открывается она, закрывается, или заблокирована.
?Фаза №3. Создание и доводка прототипа
Концептуальный прототип был создан с использованием компьютера Intel NUC Kit DE3815TYKHE, платы Arduino 101 и набора компонентов Grove Starter Kit Plus IoT Edition.
Прототип
Прототип был построен в виде стендовой модели, не подключённой к механическим объектам, таким, как двери. Команда проекта решила, что на данной стадии работы в этом нет необходимости. Вместо этого, например, датчик угла поворота использовался для имитации запирания и отпирания двери, шаговый двигатель символизировал гаражную дверь, а обычная кнопка играла роль дверного звонка, который будет присутствовать в полной модели умного дома.
Вот перечень материалов, использованных на данном этапе работы.
Основная система:
- Intel NUC Kit DE3815TYKHE.
- Arduino 101.
- USB-кабель A-B для подключения платы Arduino 101 к NUC.
Компоненты из Grove Starter Kit Plus IoT Edition.
- Base Shield V2 (базовая плата расширения).
- Gear Stepper Motor with Driver (шаговый двигатель с платой управления).
- Button Module (модуль кнопки).
- Touch Sensor Module (модуль датчика прикосновения).
- Light Sensor Module (модуль датчика освещённости).
- Rotary Sensor Module (модуль датчика угла поворота).
- Red LED (красный светодиод).
- LCD with RGB Backlight Module (ЖК-дисплей с цветной подсветкой).
- Buzzer Module (зуммер).
Кроме того, команда проекта пришла к выводу, что система в модели умного дома должна функционировать даже в том случае, если облачная часть недоступна или связь с интернетом ненадёжна.
Управляющее приложение, используемое в прототипе, было написано на JavaScript. Оно подключается к IBM Bluemix, обменивается данными с облаком. Приложения, административное и мобильное, так же обмениваются данными с облаком для поддержки функций системы. Среди них – открывание и закрывание гаражной двери, запирание и отпирание входной двери, а также – отправка уведомлений о событиях, таких, как срабатывание дверного звонка. Мобильное приложение так же написано на JS, оно рассчитано на веб-браузеры. Сделано это для того, чтобы избежать необходимости переноса приложения на несколько мобильных платформ.
Среда разработки, используемая при создании ПО для этого решения – это Intel XDK IoT Edition, которая входит в поставку Grove IoT Commercial Developer Kit. Кроме того, её можно бесплатно загрузить здесь. XDK позволяет разработчикам создавать, исполнять и отлаживать Node.js-приложения непосредственно на платформах, основанных на архитектуре Intel, в том числе — Intel NUC Kit DE3815TYKHE. Поддерживает эта среда и Node-RED.
Для того, чтобы работать с портами ввода-вывода на NUC, необходимо воспользоваться C/C++ библиотекой MRAA, в которой предусмотрены средства взаимодействия с JavaScript и Python для работы с другими платформами. Она предоставляет структурированное и хорошо продуманное API, где имена и нумерация портов соответствуют аппаратному обеспечению. Кроме того, при разработке ПО для этого решения применялся протокол Firmata, который позволяет организовать программное взаимодействие с окружением разработки для Arduino, пользуясь возможностями аппаратной абстракции Arduino. Библиотека Libmraa позволяет улучшить программный контроль над средствами ввода-вывода на NUC, упрощая процесс сбора показателей датчиков. UPM предоставляет вызовы специальных функций, которые используются для доступа к датчикам.
Прототип умного дома включает в себя кнопку активации для гаражной двери, кнопку и зуммер для дверного звонка, датчик прикосновения, который позволяет определить, открыта или закрыта входная дверь, датчик угла поворота для имитации отпирания и запирания входной двери и ЖК-дисплей с цветной подсветкой, который отображает, закрыты или открыты гаражная и входная двери. Кроме того, когда звонит дверной звонок, на дисплей выводится сообщение. Прототип включает в себя светодиоды, которые используются для показа сведений о том, закрыта или открыта гаражная дверь.
Приложение для прототипа, работающее в среде Node.js, собирает показатели датчиков и выводит сведения на ЖК-дисплей. Если сообщение о том, что дверь открыта (Door Open) отображается на дисплее, загорается зеленый светодиод. Если выводится сообщение о том, что дверь закрыта (Door Close), загорается красный светодиод. Кроме того, приложение может управлять шаговым двигателем для открывания и закрывания гаражной двери, хотя, ради простоты, в прототипе эта функция не реализована.
?Фаза №4. Создание стабильной бета-версии
Как только прототип, позволяющий доказать работоспособность концепции проекта, был завершён, команда убедилась в том, что его функционал достаточен для реализации на его основе готового продукта. В проекте, на данной фазе его развития, можно выделить следующие основные части:
- Физическая модель дома, которая построена в уменьшенном масштабе. Она включает в себя функциональные части, используемые в решении, а именно, это дверной звонок, входная дверь, гаражная дверь и связанные системы.
- Шлюз на базе архитектуры Intel, который можно найти в свободной продаже. На него установлено собственное программное обеспечение.
- Клиентское приложение, написанное на JavaScript. Оно используется для управления решением в целом, для создания облачной аналитики и работы с ней.
- Облачная часть системы, основанная на IBM Bluemix. Кроме прочего, Bluemix позволяет собирать сведения об особенностях работы решения, и, на их основе, оптимизировать его.
Выбор компонентов для бета-версии
Первый шаг на данном этапе заключается подборе компонентов, которые будут использоваться в готовом продукте.
Подготовка модели умного дома
Так как команда остановилась на варианте создания прототипа в виде модели, было решено построить масштабную модель дома и смонтировать на ней всё необходимое. Для создания модели команда привлекла стороннего специалиста с соответствующим опытом. Вот исходная спецификация модели умного дома и его набросок.
Набросок модели умного дома
Модель дома выполнена в масштабе 1/12 из фанеры, усиленной металлическими вставками. Размер модели – около метра по каждому измерению. Крыша и двери сделаны съёмными – для того, чтобы в ходе испытаний удобно было работать с устройствами, смонтированными внутри.
Вот основные компоненты модели, которые нас интересуют:
- Входная дверь, которую открывают и закрывают вручную. На неё установлены датчики, предоставленные Intel, которые позволяют определять, открыта дверь или закрыта. Также на дверь установлена работающая кнопка дверного звонка.
- Гаражная дверь с автоматическим открыванием и закрыванием. Здесь используются шаговые двигатели и датчики, определяющие, находится ли дверь в полностью открытом или полностью закрытом положении. Здесь же имеется пластиковый ограничитель, который позволяет предотвратить повреждения, если дверь заблокирована.
На этой стадии были приняты и другие важные решения. Они включали в себя выбор серийно производимых датчиков, шлюза, основанного на архитектуре Intel, облачной службы для хранения и анализа данных и программных технологий для клиентского приложения.
Выбор датчиков и других компонентов
Вот список серийно производимых датчиков и сопутствующих компонентов, которыми заменены соответствующие части системы, ранее взятые из Grove Starter Kit.
- IoT-шлюз Dell iSeries Wyse 3290 IoT Gateway.
- USB-кабель A – Micro USB B для подключения контроллера I2C/GPIO к шлюзу.
- Источник питания, 12 В, 10 А, который используется для электропитания системы.
- Разветвитель для цепей постоянного тока (1 – 2), который позволяет подавать питание на шлюз и датчики с одного источника постоянного тока.
- Логический конвертер (двунаправленный адаптер), который позволяет осуществлять конверсию между двумя различными логическими уровнями (например, между 3.3 В и 12 В).
- Расширитель портов IIC в GPIO, построенный на микросхеме PCA9555, позволяет расширить порт I2C в 16 GPIO-выводов.
- Расширитель портов FT4222H USB Eval 2.0 – Quad SPI, который позволяет расширить USB-порт в набор портов SPI, I2C, 4xGPIO.
- Шаговый двигатель Applied Motion NEMA23 High Torque.
- Модуль управления шаговым двигателем Applied Motion STR2.
- Прямоугольный монтажный кронштейн ST12C, который используется для крепления инфракрасных отражателей серии DM.
- Прямоугольный инфракрасный рефлектор Pad RL204-1.
- Фотоэлектрический инфракрасный датчик DMP-0N-1A.
- Магнитный переключатель OMRON GSL-1.
- Кнопка для звонка Grayhill-Inc 30.
- Концевой выключатель с роликом Highly Electric Z15G1704 (3 штуки).
Выбор шлюза
Вот некоторые из факторов выбора шлюза, который планируется использовать в готовом продукте:
- Высокая вычислительная мощность, необходимая для того, чтобы обеспечить стабильный уровень производительности и избежать ошибок, связанных с перегрузками системы во время работы.
- Доступность на рынке. Очевидно, от шлюза зависит весь проект, поэтому выбор устройства, которое непросто приобрести, затормозит работу. Кроме того, выбранный шлюз должен быть доступен в достаточных количествах в расчёте на пока гипотетическую стадию серийного выпуска разрабатываемого продукта.
В итоге для применения на следующих стадиях развития проекта был выбран шлюз Dell iSeries Wyse 3290 IoT Gateway. Он оснащён микропроцессором Intel Celeron N2807 с 1 Мб кэш-памяти и с тактовой частотой до 2.16 ГГц. В устройство установлено 4 Гб оперативной памяти DDR3 (1600 МГц). Шлюз оснащён сетевой картой (10/100/1000 BASE-T), Wi-Fi-адаптером (802.11a/b/g/n/ac) и модулем Bluetooth 4.0 Low Energy. Устройство отличается компактными размерами (69 мм x 197.5 мм x 117 мм) и небольшим весом (2.34 кг).
Выбранный шлюз предоставляет достаточный уровень производительности, причём, не только для проекта в его существующем варианте, но и для будущих версий. Кроме того, устройство легко найти в продаже, а при необходимости, на стадии производства – приобрести в больших количествах.
Команда решила продолжить использование Intel IoT Gateway Software Suite (данное ПО уже использовалось в прототипе). Это совершенно очевидный шаг, в особенности – потому что выбранный шлюз был изначально рассчитан на эту ОС. Более того, и Intel NUC, и Dell iSeries Wyse, могут работать под управлением одной и той же ОС, что упрощает процесс переноса ПО из прототипа системы в её версию, готовую к выпуску. Аналогично, другие важнейшие программные компоненты, такие, как Intel XDK и библиотеки, задействованные в прототипе, остаются неизменными, что упрощает переход проекта к фазе производства.
Вот таблица со сведениями по отслеживаемым состояниям датчиков. Для каждого датчика значение в столбце «Открыто» и «Закрыто» показывает возвращаемый логический уровень, а «Фронт сигнала» — на то, какой фронт сигнала отслеживается.
Датчик |
Открыт |
Закрыт |
Фронт сигнала |
Описание |
Инфракрасный датчик |
1 |
0 |
Оба |
Остановить или возобновить действие с гаражной дверью |
Датчик дверного звонка |
1 |
0 |
Задний фронт |
Инициировать событие срабатывания дверного звонка |
Датчик открытия или закрытия входной двери |
1 |
0 |
Оба |
Инициировать события открывания и закрывания двери |
Датчик запирания и отпирания входной двери |
0 |
1 |
Оба |
Инициировать события отпирания и запирания двери |
Датчик, указывающий на то, что гаражная дверь закрыта |
1 |
0 |
Задний фронт |
Остановить гаражную дверь, инициировать событие полного закрытия двери |
Датчик, указывающий открыта то, что гаражная дверь открыта |
1 |
0 |
Задний фронт |
Остановить гаражную дверь, инициировать событие полного открытия двери |
Архитектура системы
На рисунке ниже показана принципиальная схема рассматриваемого решения.
Принципиальная схема решения
?Фаза №5. Оценка возможностей продукта и расширение функционала
Прежде чем оценить возможности решения для умного дома, команда установила аппаратное обеспечение в модель и настроила программные компоненты системы. Вот, как всё это выглядит.
Система, смонтированная в модели дома
Особенности административного и мобильного приложений
Команда решила, что полезным для всего проекта будет включение в него двух отдельных приложений. Одно – для администрирования, второе – для конечных пользователей.
- Первое – административное приложение-клиент. Оно предназначено для использования системными администраторами, поддерживает функционал тестирования и поиска ошибок и даёт доступ к облачным аналитическим данным.
- Второе – мобильное приложение, предназначенное для конечных пользователей. Оно позволяет управлять дверным звонком и гаражной дверью, позволяет узнать о том, открыты или закрыты двери, а также о том, заперта ли входная дверь.
Реализация административного и мобильного приложений
Вместо того, чтобы создавать несколько версий клиентских приложений для различных платформ (или усложнять проект разработкой кроссплатформенного приложения), команда решила реализовать административное и мобильное приложения на HTML5 и JavaScript, используя Intel XDK IoT Edition. Такой подход позволяет, используя единственную версию приложения, обеспечить поддержку множества аппаратных платформ, с которыми могут работать администраторы и пользователи. Вот основные платформы, на которые ориентировалась команда:
- Устройства, работающие под управлением iOS, в том числе – планшеты iPad и смартфоны iPhone.
- Устройства, на которых установлена Android – различные смартфоны и планшеты.
- Ноутбуки и настольные ПК с Windows или Linux.
Функционал запирания двери
Команда решила, что будет весьма полезным добавить в систему возможность отображения состояния входной двери – заперта она или нет, в дополнение к сведениям о том, открыта она или закрыта, а также о том, открыта или закрыта гаражная дверь. В результате, в спецификацию проекта, которая была передана изготовителю модели, был добавлен дверной замок.
Облачные оповещения
В проект были добавлены следующие возможности, основанные на облачной платформе:
- Когда открывается гаражная дверь, внутри гаража включается свет. Свет автоматически выключается через заданный период после закрывания двери.
- Если гаражная дверь остаётся открытой в течение заданного отрезка времени, пользователю отправляют оповещение.
- Если входная дверь остаётся открытой или не запертой некоторое время, пользователь так же получает оповещение.
Дополнительные методы авторизации для доступа к системе
Существует потенциальная возможность интегрировать практически неограниченное количество способов идентификации пользователей в системе умного дома. Диапазон методов авторизации весьма широк – от применения встроенного в смартфон NFC-чипа, до биометрических датчиков, вроде сканера отпечатков пальцев. Это расширение функциональности в модели реализовано не было, но модульная природа проекта и доступность дополнительных датчиков делают систему авторизации вполне вероятным дополнением в будущем.
?Фаза 6. Завершение работы и выпуск готового продукта
Основной сферой интересов команды, которая занималась проектом, были его технические аспекты. Дизайн пользовательского интерфейса выходил за рамки ключевых навыков разработчиков, поэтому для его создания привлекли сторонних специалистов, которые участвовали во встречах команды.
Главный экран административного приложения
В ходе этих встреч интерфейс был доработан, в него были включены дополнительные возможности и функции. Например, в интерфейс была добавлена более надёжная система индикации состояния дверей, позволяющая легко понять, закрыта или открыта дверь, заперта она или нет, увидеть, не заблокирована ли дверь. Мобильное приложение было приведено к виду, когда оно стало сильно напоминать обычный брелок для открывания дверей.
Интерфейс административного приложения
Интерфейс административного приложения, показанный на рисунке выше, разработан в расчёте на удобную работу с программой на планшетном компьютере и с учётом того, что администратор с его помощью будет работать с облачными данными. Административный интерфейс включает в себя следующие основные элементы:
- Главное меню, которое содержит следующие кнопки:
- Панель уведомлений отображает уведомления о событиях, связанных со звонком, входной и гаражной дверями. Эти показатели основаны на данных, которыми система обменивается с облаком и сохраняет их там, а не на локальных данных. Здесь выводятся сведения о событиях и о датчиках, которые эти события фиксируют.
- Панель состояния выводит наиболее свежие записи по каждому типу событий с отметками времени.
- Изображение входной двери показывает, открыта она или закрыта, а также содержит анимированный значок, позволяющий понять, заперта дверь или нет. При срабатывании дверного звонка выводятся визуальные уведомления
- Изображение гаражной двери так же анимировано, оно показывает процесс открывания и закрывания двери, а та же – блокировку каким-либо объектом. Если дверь заблокирована, приложение показывает эту блокировку визуально, с помощью анимации, и предотвращает закрытие двери.
Административное приложение, кроме того, выводит всплывающие уведомления о запрошенных действиях, которые нельзя выполнить. Например, такие: «Входная дверь заперта. Сначала её надо отпереть». Уведомление появляется и в том случае, когда пользователь пытается запереть дверь, которая открыта.
Интерфейс мобильного приложения
Интерфейс мобильного приложения, показанный на рисунке ниже, разработан в расчёте на смартфоны. Он позволяет пользователю открывать и закрывать гаражную дверь умного дома. Кроме того, приложение сообщает о состоянии двери, основываясь на запросах к облаку, которые выполняются с частотой один раз в секунду.
Мобильное приложение
Интерфейс мобильного приложения включает в себя следующие основные элементы:
Панель уведомлений показывает, открыта или закрыта гаражная дверь, а также – анимированный процесс открывания или закрывания двери. Кроме того, она, так же с анимацией, показывает, заблокирована ли дверь каким-либо объектом, и, если это так, выводит диалоговое окно с предложением убрать препятствие перед продолжением работы.
Кнопки открывания и закрывания двери, как и следует ожидать, позволяют пользователю дистанционно открывать и закрывать гаражную дверь. Когда кнопку нажимают, приложение передаёт данные в облако, получает оттуда ответ и отображает состояние гаражной двери, основываясь на этом ответе. Административное приложение мгновенно реагирует на действия, которые выполняются с мобильного приложения.
?Выводы
Структурированный подход, о котором мы рассказали, позволяет превращать идеи в готовые для массового производства продукты. Этим подходом могут воспользоваться все желающие, адаптировав его под нужды собственных проектов. Одно из важных достоинств представленной методики заключается в скорости создания работающих прототипов, основанных на недорогих, доступных компонентах. Это позволяет очень рано, когда в проект ещё вложено не слишком много сил и средств, понять, есть ли у идеи коммерческий потенциал, решает ли она некую важную задачу, стоит ли доводить её до стадии готового продукта. Это ограничивает риски и даёт команде разработчиков свободу во внедрении инноваций.
Надеемся, наш рассказ поможет вам претворить ваши IoT-идеи в жизнь.
Комментарии (23)
Alex_Belyaev
08.08.2016 19:06Присоединяюсь к IronHead, спасибо за комментарий.
Самое главное, что прочитав данную статью, автор очень поверхностно подошел к рискам. Данного раздела не вижу прочитав эту статью. Без учета рисков, которые вы должны были описать (или провести), говорить о неком подобии кейса, который вы постарались описать в данной статье просто невозможно.
Также, говоря о методологи проекта, вы так и не указали, какую именно вы использовали. Сейчас компания Intel использует PRINCE2? Или руководители ваших проектных офисов не регламентируют, какую именно методологию вы должны использовать?
Kitsok
08.08.2016 21:30+2То есть, я правильно понял, что вот вся эта статья про то, как сделать пульт открывания двери и ворот?
bambruysk
09.08.2016 00:56Согласен с IronHead.
Также добавлю что на схеме видится излишество в виде SPI-IO расширителя. Большинство FTDI поддерживает bit-bang, то есть можно вывести дискретные сигнал непосредственно с нее.
Опять же применение USB и FTDI для управления ответственными устройствами без участия человека выглядит не очень.
И да, отсутствуют решения для протаскивания всего этого хозяйства по длинным проводам, гальванические развязки прочее прочее.
AndreyDmitriev
09.08.2016 08:17+2Это не умный дом. Это невероятно навороченный пульт-ленивчик с довольно низкой отказоустойчивостью.
Умный дом — это когда я подъехал к дому, вышел из машины и… всё. Он сам откроет ворота, и умная машина сама туда запаркуется. Входная дверь откроется сама. Свет сам зажгётся, если нужно и так далее.
Давайте чуть усложним сценарий с дверью. Я время от времени заказываю что-то по интернету, и почтальон, если меня нет дома, может оставить посылку в гараже (такая опция есть у немецкой почты и ей пользуюсь, но в этот день мне нужно оставить дверь гаража открытой). Так вот умный дом сам проанализирует почту, увидит письмо о доставке, в нужное время откроет дверь для почтальона (при это проанализирует, что это именно почтальон, а не вор), да ещё и голосом поблагодарит его за доставку и всё это вообще без каких-либо телодвижений с моей стороны.
В общем и целом целей у умного дома всего три — снизить количество «информационного шума» в моей жизни, помнить о том, о чём я могу забыть и взять на себя часть действий, которые я обычно выполняю. Я вообще не должен замечать умного дома — он должен напоминать о себе лишь тогда, когда это будет реально нужно.
В настоящее время, как мне кажется, мы наблюдаем «перекос» в технологиях — аппаратные средства позволяют подключить к сети всё, что угодно, а вот программная часть пока «хромает» — мы уже начинаем упираться в сложность примитивной логики, построенной грубо говоря на конструкциях «если то-то и то, то то-то и то-то», а ИИ, который так нужен, чтобы сделать дом по-настоящему «умным», пока что ещё нет. Но всему своё время, мы над этим работаем.
roboter
09.08.2016 08:49меня волнует такая проблема, допустим через некоторое время понадобится расширить систему, добавить ещё одну дверь, гараж и т.д.
специалист который это сделал, уволился, исходники потеряны, и дальше по тексту.
как избежать того, что через какое то время нужно обновить систему?
есть ли какие-то протоколы датчиков для умного дома, чтобы при смене мозгов можно было опросить датчики и под них настроить систему?
в идеале так, подключил новый управляющий комп и комп опросил все датчики/девайсы:
ответ примерно такой: я мотор открываюсь ровно в 8:00 и в 17:00 или по сигналу от кофеварки
или: я кофеварка могу посылать сигналы когда нужна чистка, готов кофе
а дальше уже на компе создаются связи событий.gsaw
09.08.2016 12:58Мне поэтому z-wave нравится, хоть и дорого. Там все основные типы устройств застандартизированны. Выключатели, датчики, диммеры. Контроллеры и конечные устройства могут быть от разных производителей. Я свой первый диммер и пульт купил 5 лет назад. Сейчас у меня разносола штук 7-8 в стенках встроенно. Нужен стандарт. Есть еще ZigBee, но что то я 5 лет назад ничего не находил или все было дороже даже чем z-wave. Сейчас не знаю как дела обстоят. Надеюсь какой то стандард все таки победит. Неважно плохой или хороший, главное, что бы удобно было.
IoT в принципе теже задачи должен решать, но когда я читаю статьи Intel, меня не отпускает ощущение, что их пишут студенты и ничего реально так и нету. Все ссылки ведут на какие то индустриальные решения. Не для обычных граждан вообщем. Это как PHP и J2EE. Одни уже сейчас клепают сайты которые может и не очень по ахитектуре, но работают. А другие годами разрабатывают стратегии, пишут стандарты, печатают кучу книжек, за миллионы годами пишут приложения для крупных заказчиков.
alex3535
09.08.2016 10:42+1Иногда автоматика на паре реле более надежна при схожем функционале. Вопрос грамотного подхода разработчиков. Все подключить к серверу и контролировать очень прикольно, но не нужно. Ворота гаража в 99% случаев надо открывать при подьезде, когда эти ворота уже видно, но из машины вылазить не хочется. Можно делать через интернет, а можно намного проще. Каждый новый наворот несет с собой цепочку уязвимостей. Потому проекты умных домов пока остаются уделом любителей, автоматизация для развлечения. По настоящему умный дом нужен для регулирования тепла и энергосбережения. И тут с 60-х годов есть очень простые и эффективные решения в виде продуманных термостатов.
lingvo
09.08.2016 13:45+1Мда, вот именно по этому куча хардверных IoT стартапов и обламывается…
Потому, что по окончании фазы 6 вы получаете всего лишь концептуальный прототип, ни к чему не приспособленный, кроме как гонять микромоторчики в миниатюрном домике. Запомните — у вас еще нет продукта!
Чтобы получить продукт вам надо:
Фаза 7 — провести полномасштабную разработку железа с привлечением нормальных специалистов. Разработать схемы подключения, чертежи, перечни элементов
Фаза 8 — собрать и испытать полномасштабный прототип с реальными воротами и реальными расстояниями. Провести полные функциональные тесты во всех режимах работы, включая пользователей- дибилов, которые просто будут тыкать на все кнопки и сувать руки куда не надо. На этом этапе у вас вылезят косяки — операционка не реального времени, помехи от работающих приводов, сбои от дребезга контактов, выходы из строя изза соседа, включившего болгарку или грозы.
Фаза 9 — Подготовка полной документации — инструкции по эксплуатации, обслуживанию, настройке.
Фаза 10 — Сертификационные испытания — без значка CE,UL, РСТ вы вашу систему ни в какой стране не продадите. Испытания на ЭМС, безопасность, климатику — в гараже может быть и -20°C, забыли? А на какой диапазон расчитан ваш Интел? Тут у вас конкретно повылазят косяки и с блоком питания и проводами и I2C и пр.
Фаза 11 — Вот тут можно подумать о запуске пробной партии.
По опыту скажу — на эти фазы придется потратить в десятки раз больше времени и денег, чем на указанные в статье фазы 1-6. Я понимаю, что Интелу надо продать продукт, но куча ж людей пострадает от таких обещаний…lingvo
09.08.2016 16:12ПС забыл добавить, что интенсивность фазы 7 будет очень сильно зависеть от результатов маркетингового исследования в Фазе 1. Если обнаружится, что за все устройство клиент готов платить аж 100 баксов да еще и в красивом корпусе, так как за эти деньги уже можно купить что-то другое, то все эти ваши Intel NUC и прочее идут лесом, так как с ними в прайс вы не вписываетесь вообще.
IronHead
Работы проделано много — а толку от нее мало.
Основные проблемные места, на вскидку:
1) Питание всей системы от одного источника, отсутствие резервной АКБ, соответственно цепей заряда и переключения источников.
2) Линии связи до датчиков. Пока они длинной до 1 метра — все работает, как только их нужно тянуть по всему дому — возникнет множество проблем, начиная от их прокладки, заканчивая наводками и выгоранием входов вашей дуинки от статического электричества, накапливаемого длинными линиями.
3) Исполнительные устройства. На макете ворота поднимает дешевый шаговый двигатель, в реале — нужно покупать дорогостоящий частотный преобразователь для элетродвигателя переменного тока, и тут очередные грабли (как отслеживать заедание механизма ворот, а если ворота закроются когда под ними будет лежать пес или играть ребенок, тут одним концевым выключателем не отделаться).
4) Выбор шлюза тоже не вполне понятен. Брать узкоспециализированную железку от одного конкретного производителя, чтобы потом через несколько лет попасть на невозможность свободной покупки именно этой железки (в случае ремонта системы). Не лучше ли взять малинку, она оупенсорсная и сохраняет преемственность поколений.
gsaw
Что вы к студентам придераетесь? :) И вообще, это абстракция, пункты 1, 2, 4 ваши надуманные. Только что с провадами да и то, я так думаю все равно где и сколько ардуинок стоят. Они могут и по сети передавать показания датчиков шлюзу.
IronHead
— Это не студенческий проект, а демо интела, чтобы продвинуть свои железки в продажу
— При переходе от макета к реализации всплывут все 4 пункта, уже проходили.
— Если бы дуинки передавали данные по сети — это бы было в макете, но там этого нет
— «провАды» бывают в армию и на пенсию, а электричество идет по проводам.
MnogoBukv
Только спровАдами проблема у человека? С придЕрками всё окей?
Ну а по теме, неплохо бы было на счёте иметь 999999999, что бы дома умными делать. А то как глянешь ценник на одну только хорошую камеру, я не говорю про всё остальное, — сразу отрезвляет.
Spiritschaser
Не ищите смысл в IoT в умном доме в России. Это ещё хорошо, что каждый датчик не подключён к Интернету через IPv6, а мониторинг не ведётся в облаке. Когда народ 100 лет использует разные китайские аналоги z-wave и старый добрый rs485, а админку на «малинке» или даже дешёвом MIPS роутере, эти непонятные IoT евангелисты пытаются ошарашить всех «Интернетом Вещей».
CrazyRoot
IoT от Лукавого.
Нет, если всё из одного инкубатора, тогда да, можно.
Но не у нас, где каждый строит как хочет/может.
simki
Согласен, толку не очень много.
За более чем 10 лет, ни разу ни кто из посторонних не дергал ручку дома ни в квартире, ни в частном доме. Вероятность кражи бы оценил как 0.1% в год, причем независимо от закрытости, просто режут замок чем-то. Снизить вероятность краж можно контрактом с ЧОП, приезжают через 5 минут после взлома, но это дорого, у меня, например, с учетом вероятности кражи, содержимое дома дешевле будет, хлам всякий, денег наличкой давно нет.
Был наоборот, смешной случай, когда я снимал квартиру и перепутал дома, типа вместо 55В ломился в дом 55Д. Со стороны выглядело как взлом, ключ подходил, но не отпирал. Через 10 минут сдался и понял что не туда ломлюсь. Так и рождаются легенды, что среди белого дня воры (наркоманы) ломятся в чужие квартиры и ничего не боятся.
На всякий случай у меня стоит камера, с родным ПО перед дверью, опять же за много лет ничего интересного.
Мои родственники вообще редко двери закрывают, еще и ключ могут с внешней стороны забыть. Объяснить почему это опасно я не могу, так как нет примеров, ни у соседей, ни у знакомых, «веселые» 90е прошли.
Вот банальный утюг опаснее. Почему их не делают с таймером отключения?! Как чайники, ну никого же не волнует вопрос выключенного чайника, сам отключится. А вот утюги застыли в развитии. Правда если стоит на теплоизоляции, потребление снижает и похоже состояние безопасно. Опасно оставить на ткани какой-то. Некоторые подобные инструменты, работают, только если нажать одновременно 2 кнопки (болгарка например). А вот утюг при сравнимой опасности, работает до самого конца.
KonstantinSoloviov
>Вот банальный утюг опаснее. Почему их не делают с таймером отключения?!
Ошибаетесь, таких утюгов полно: 30 секунд без движения лежа, 10-15 минут стоя — де-факто стандарт автоотключения, давно уже. Причем фича настолько обычная, что на цену почти не влияет.
alexrus
Я вот, знаете, имел привычку нехорошую не запирать двери. Пока ко мне не наведались пару раз соседи с разных этажей. Апофигеем стал случай, когда открылась входная дверь и забежала овчарка, а за ней супружеская пара владельцев. С тех пор я стал аккуратнее относиться к этому вопросу.
simki
Перепутали этажи? Я так же описывал смешной случай, когда снял квартиру и перепутал дома. У нас бы только посмеялись, если бы зашли соседи сверху, все всех знают. И к собакам хорошо отношусь, овчарке бы и колбасы кинул ))
diaskzn
3. Правильнее использовать родную автоматику и исполнительные устройства ворот.