- PVSM.RU - https://www.pvsm.ru -

Проект Ньютон – полное решение для управления умным домом

Проект Ньютон – полное решение для управления умным домом - 1 [1]

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

Проблемы

  • «Нет единого, унифицированного решения». Пользователи хотят сами делать свой выбор. Они хотят покупать умные телевизоры, холодильники, кондиционеры от Apple, Samsung, Tencent, Xiaomi и многих других. Но у каждого производителя есть собственное решение для умного дома, например, у них различаются протоколы обмена. Это приводит к тому, что почти невозможно как-то стандартизировать экосистему умного дома.
  • «Они всё ещё недостаточно практичны». Предыдущие решения для управления умным домом имели некоторые недостатки. Управление голосом может быть осложнено окружающим шумом. Управление с телефона неудобно, потому что требует извлечения телефона, запуск соответствующего приложения и выбор устройства, которым вы хотите управлять. Управление жестами через камеру зависит от окружающего освещения и вашего положения в комнате.

Проект Ньютон

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

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

Мы разработали улучшенное IoT-решение для управления умным домом, которое назвали «проект Ньютон». Оно реализует подключение всех основных платформ (процессор Intel Core, Atom, Centrino и мобильную платформу ARM) и всех IoT-платформ (плата Intel Edison, Intel Galileo, Raspberry, Spark, Mbed, Freescale, Arduino Uno и так далее). Таким образом, проект Ньютон может соединить платформы, на которых исполняются все основные операционные системы (Windows, Linux, Android) и специализированные операционные системы без пользовательского интерфейса (Mbed, Contiki, RIOT, Spark, OpenWRT, Yocto, WindRiver, VxWorks, Raspbian и так далее).
Поставщики умных домов обычно определяют только протоколы для общения на уровне приложений, но эти протоколы относительно закрытые. В проекте Ньютон мы используем протокол CoAP (Constrained Application Protocol – ограниченный протокол, уровня приложения), который является программным протоколом, предназначенным для общения простых электронных устройств через интернет. Протокол CoAP основан на RESTful и позволяет легко строить умные шлюзы. Вот базовый дизайн прототипа протокола CoAP в проекте Ньютон.

Проект Ньютон – полное решение для управления умным домом - 2

Перечислим все поддерживаемые операционные системы. Плата Intel Galileo, Intel Edison, UNO и Spark используют стандарты программирования Arduino. Популярная IoT-плата LPC1768 поддерживает операционные системы Mbed и RIOT. Mbed — это платформа и операционная система для ARM-устройств, подключённых к интернету. Она удобна для управления аппаратными ресурсами при помощи вызова соответствующих объектов. RIOT — это операционная система с открытым исходным кодом, которая поддерживает многопоточность и несколько различных плат для разработчиков. Для работы с ней можно использовать язык C. Чипу LPC1768 потребуется внешний Wi-Fi модуль. Windows, Linux и Android также можно просто приспособить к протоколу CoAP. Ниже показана архитектура проекта Ньютон.

Проект Ньютон – полное решение для управления умным домом - 3

Реализация CoAP

Реализация CoAP с открытым исходным кодом для микроконтроллеров называется MicroCoAP [2]. Это небольшая библиотека написана на стандартном языке C, поэтому может быть просто портирована на различные платформы. MicroCoAP содержит четыре файла (CoAP.h, CoAP.c, endpoints.c, and main.c).
В файлах CoAP.h и CoAP.c реализован протокол CoAP, который показан внизу, а файл endpoints.c включает функции ответа, связанные со специальными узлами.

Проект Ньютон – полное решение для управления умным домом - 4

Файл main.c создает CoAP сервер. В основном мы используем coap_packet_t, coap_parse, coap_handle_req и coap_build. coap_packet_t определяет структуру данных CoAP пакетов. Функция coap_parse разбирает шестнадцатеричные данные, полученные из сети или последовательного порта и переводит их в структуру coap_packet_t. Функция coap_handle_req анализирует полученный CoAP пакет и создает подходящие ответы. Функция coap_build переводит пакет с ответом в шестнадцатеричный формат. Ключевой исходный код для создания CoAP сервера показан ниже.

Проект Ньютон – полное решение для управления умным домом - 5

Arduino реализация

Arduino — это открытая платформа для прототипирования, которая определяет аппаратные и программные стандарты Arduino. Платы Intel Edison, Intel Galileo и Spark следуют этим стандартам. Программа для Arduino состоит из двух функций: setup и loop. Функция setup инициализирует аппаратную часть и вызывается всего лишь раз перед функцией loop. Функция loop это бесконечный цикл, который может быть использован для выполнения главной задачи.
Чтобы добавить поддержку CoAP к плате Arduino, достаточно добавить три файла (CoAP.h, CoAP.c, endpoints.c) в проект и изменить функции setup и loop в соответствии с main.c в microCoAP.

Проект Ньютон – полное решение для управления умным домом - 6

Реализация Mbed

Mbed — это объектно-ориентированная C++ библиотека, разработанная для процессора ARM Cortex-M. Мы можем управлять выводами общего назначения (GPIO) и другими аппаратными ресурсами, используя соответствующие классы. Тем не менее, не существует стандартного Wi-Fi модуля или библиотеки. Поэтому будем использовать модуль UART-to-WIFI, чтобы добавить возможность работы с Wi-Fi к Mbed. Класс WIFI основан на документации к модулю UART-WIFI, и каждая функция будет посылать соответствующую строку на модуль UART-WIFI.
Вам надо добавить к проекту три файла (CoAP.h, CoAP.c, endpoints.c) и изменить файл main.c в соответствии с файлом main.c в проекте microCoAP. Чтобы скомпилировать, просто выполните команду make – в Makefile всё уже правильно настроено.

Проект Ньютон – полное решение для управления умным домом - 7

Реализация RIOT

RIOT — это дружественная для разработчиков операционная система с открытым исходным кодом для IoT, которая поддерживает несколько плат, таких как Mbed LPC1768 и Spark Core development kit. Разработку можно вести на C и C++. Папка tests содержит множество примеров API для подключения аппаратного обеспечения. Так же как и для Mbed, сервер CoAP может быть реализован изменением класса Wi-Fi из Mbed в C-функцию и изменением API, относящегося к последовательному порту. Тем не менее, в наших экспериментах были частые падения, поэтому его пока можно использовать только для тестирования. Для компиляции используйте команду в корневой папке:

BOARD=Mbed_lpc1768 make clean all flash

Для слежения за последовательным портом и получения выводимой информации от Mbed используйте:

BOARD=Mbed_lpc1768 make term

Ниже на картинке приведена структура кода CoAP сервера для RIOT.

Проект Ньютон – полное решение для управления умным домом - 8

Реализация Contiki

Contiki — это компактная, многозадачная, переносимая операционная система с открытым кодом. Папка example содержит несколько примеров использования API для управления аппаратным обеспечением. Так же нет стандартного модуля Wi-FI. Для реализации сервера CoAP, используйте подобные функции из RIOT и перепишите пример с UART. Для компиляции используйте команду “TARGET=cc2530dk make” и загрузите двоичную программу, используя jlink.

Проект Ньютон – полное решение для управления умным домом - 9

Реализация OpenWRT

OpenWRT — это встроенная операционная система, основанная на Linux, используемая для роутеров. Она поддерживает стандартный API для Linux. Таким образом, можно непосредственно использовать код microCoAP. В папке package установите проект microCoAP и измените Makefile в соответствии с файлом Makefile вашего проекта. Затем запустите команду make в корневой директории. Скомпилированное приложение будет в папке bin. Приложение может быть загружено на плату по ftp или через usb stotage. В завершении, используйте команду, чтобы установить приложение CoAP в OpenWRT:

opkg command install CoAP*.ipk

Добавьте “/usr/bin/CoAP &” в файл /etc/rc.local. Структура кода CoAP-сервера для OpenWRT приведена ниже.

Проект Ньютон – полное решение для управления умным домом - 10

Удобство использования в проекте Ньютон

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

Пример 9-ти осевого гироскопа с Wi-Fi модулем:

Проект Ньютон – полное решение для управления умным домом - 11

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

Демонстрация проекта Ньютон

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

Проект Ньютон – полное решение для управления умным домом - 12

Выбор (синий цвет) и управление (зелёный цвет) платой Intel Edison в проекте Ньютон:

Проект Ньютон – полное решение для управления умным домом - 13

Управление Android устройством (планшетом) в проекте Ньютон:

Проект Ньютон – полное решение для управления умным домом - 14

Управление рукой робота:

Проект Ньютон – полное решение для управления умным домом - 15

Управление машиной:

Проект Ньютон – полное решение для управления умным домом - 16

Планы

Проект Ньютон — это хорошее законченное решение для управления умным домом. Его просто использовать, оно позволяет подключать любые устройства и не зависит ни от каких внешних параметров, таких как освещение, уровень шума и так далее.
Впрочем, как и любые другие проекты с открытыми исходниками, проект Ньютон можно совершенствовать. Следующим шагом мы хотим улучшить распознавание жестов, увеличить производительность и подключить другие носимые устройства. Например, говорят, что очки Google Glass следующего поколения смогут похвастаться большей призмой для глаз и будут основаны на процессоре Intel Atom, а это может стать лучшим решением для управления в проекте Ньютон.

Автор: Intel

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/umny-j-dom/109031

Ссылки в тексте:

[1] Image: http://geektimes.ru/company/intel/blog/268306/

[2] MicroCoAP: https://github.com/1248/microCoAP

[3] Источник: http://geektimes.ru/post/268306/