- PVSM.RU - https://www.pvsm.ru -
Недавно мы рассказывали [1] о подходе к работе над IoT-проектами. В прошлый раз нас больше всего интересовала методика, этапы превращения идеи сначала в прототип, а потом – в продукт, готовый к производству. Сегодня предлагаем углубиться в технические детали. А именно –поговорим о том, как создать функциональный прототип умного дома.
В проекте задействован Intel IoT Commercial Development Kit, компьютер малого форм-фактора Intel NUC Kit DE3815TYKHE, плата Arduino 101 и некоторые дополнительные компоненты. Освоив этот материал, вы cможете сделать то же самое, что получилось у нас, даже если ваш опыт создания IoT-решений невелик.
Вот, что вы узнаете, освоив это руководство:
Код и дополнительную документацию можно найти на GitHub [3].
Наш проект представляет собой рабочую модель умного дома, а именно, здесь реализовано следующее:
Система умного дома, о которой мы говорим, работает, опираясь на следующие сведения, которые поставляют ей датчики:
Обмен данными в системе производится через облачную среду. Например, если владелец дома открывает гаражную дверь, соответствующая команда передаётся в облако, а оттуда – уже на механизмы гаражной двери. Этот подход позволяет обрабатывать сведения о состоянии системы в облаке, даёт возможность удалённого доступа к ним. Так, если владелец дома не помнит, закрыл ли гаражную дверь, он может узнать об этом откуда угодно, и, если дверь всё-таки не закрыта, способен удалённо же её закрыть.
В данном примере мы ограничиваемся вышеописанными возможностями, не включая в него дополнительный функционал. Но его вполне можно реализовать, расширив систему (в частности, используя облачные ресурсы).
Рассмотрим установку Intel IoT Gateway Software Suite на компьютер Intel NUC Kit DE3815TYKHE. Обратите внимание на то, что так как размер встроенной системы хранения устройства ограничен, мы рекомендуем не создавать на ней раздел для восстановления. Вернуться к заводскому образу системы можно, загрузив его с USB-диска.
После установки системы, к NUC, который будет выполнять роль IoT-шлюза, можно будет подключиться с компьютера разработчика в том случае, если устройства находятся в одной и той же сети. Если планируется подключить шлюз к Intel IoT Gateway Developer Hub, то, для подключения к шлюзу, нужно будет ввести соответствующий IP-адрес в браузере и пройти процедуру первоначальной настройки.
Кроме того, если шлюз подключён к сети Intel, нужно будет настроить прокси-сервер.
Приступим к настройке Intel NUC.
— Для записи образа на диск, если вы работаете в Windows, можно воспользоваться приложением Win32 Disk Imager [5].
— В Linux используйте команду:
sudo dd if=GatewayOS.img of=/dev/ sdX bs=4M; sync
Здесь USB-диск – это sdX.
— В меню Advanced выберите пункт Boot.
— В свойстве Boot Configuration раздела OS Selection выберите Linux.
— Проследите, чтобы в разделе Boot Devices был установлен флажок USB.
— Сохраните изменения и перезагрузите систему.
— Нажмите F10 для входа в загрузочное меню и выберите там USB-диск.
~# deploytool -d /dev/mmcblk0 --lvm 0 --reset-media –F
poweroff
для того, чтобы отключить шлюз, после чего отсоедините от него USB-диск и включите снова. Устройство загрузится с локального диска.
~# smart update
~# smart upgrade
~# smart install upm
Вот перечень компонентов, которые входят в наш проект.
— Intel NUC Kit DE3815TYKHE [8].
— Arduino 101 [9].
— USB-кабель A-B для подключения платы Arduino 101 к NUC.
— Base Shield V2 [10] (базовая плата расширения).
— Gear Stepper Motor with Driver [11] (шаговый двигатель с платой управления).
— Button Module [12] (модуль кнопки).
— Touch Sensor Module [13] (модуль датчика прикосновения).
— Light Sensor Module [14] (модуль датчика освещённости).
— Rotary Sensor Module [15] (модуль датчика угла поворота).
— Red LED [16] (красный светодиод).
— LCD with RGB Backlight Module [17] (ЖК-дисплей с цветной подсветкой).
— Buzzer Module [18] (зуммер).
А вот, как всё это выглядит в сборе:
Прототип системы для умного дома
Intel XDK IoT Edition поддерживает JavaScript и разработку под Node.js для проектов в сфере интернета вещей.
Обратите внимание на то, что, если вы работаете в Windows, мы рекомендуем установить на компьютер ПО Bonjour Print Services. Это позволит Intel XDK автоматически обнаруживать IoT-устройства, подключённые к сети. Установка Bonjour необязательна, но это облегчает работу. К устройству можно подключиться и вручную введя IP-адрес и необходимые для подключения сведения. Если вы работаете в корпоративной сети, сетевой экран может блокировать Bonjour.
Для установки Intel XDK выполните следующие шаги:
— Для Windows, щёлкните правой кнопкой мыши по загруженному файлу и выберите в появившемся меню команду Запуск от имени администратора. Если будет нужно, подтвердите запуск программы.
— Для Mac OS, выполните двойной щелчок мышью по загруженному .DMG-файлу для того, чтобы извлечь установщик. После этого запустите извлечённый .PKG-файл.
— Запустите терминал
— Перейдите к папке, в которой находится загруженный архи с установщиком. Например, если этот файл находится в папке Desktop, воспользуйтесь командой cd ~/Desktop/
— Для того, чтобы распаковать файл (предположим, что его имя – installername
), введите команду вида tar zxvf installername
.
— Перейдите в папку, где находятся извлечённые из архива файлы.
— Запустите установку командой ./install.sh
— Загрузите установщик с этого [20] сайта.
— Запустите загруженный файл BonjourPSSetup.exe от имени администратора.
— Следуйте инструкциям Мастера установки.
~# smart update
~# smart install xdk-daemon
Здесь мы расскажем о том, как создать Bluemix-приложение, как подключиться MongoDB и работать с данными.
Сначала создадим приложение Bluemix с помощью MongoLab.
Пользовательский интерфейс BlueMix
Для того, чтобы это сделать, выполните следующее:
Прежде чем начинать работу с Cloud Foundry, нужно установить интерфейс командной строки cf. Здесь стоит учесть, что работу с этим интерфейсом не поддерживает Cygwin. Поэтому, работая с Cloud Foundry в Windows, нужно пользоваться другим интерпретатором командной строки.
После установки, если вы не знакомы с Cloud Foundry, следуйте руководству по этой системе для загрузки начального кода, и разберитесь с тем, как отправлять приложения для IBM Bluemix в облако.
ifconfig
для того, чтобы увидеть IP-адрес системы.После этого приложение должно запуститься на шлюзе.
Node.js-приложение для Bluemix задействует MongoDB для хранения данных и предоставляет REST API для работы с ними. Кроме того, здесь используются веб-сокеты для передачи новых сведений в реальном времени клиентскому и мобильному приложениям.
Это Node.js-приложение исполняется на Intel NUC, который играет роль шлюза. К нему подключена плата Arduino 101, что позволяет шлюзу взаимодействовать с датчиками и другими периферийными устройствами. Шлюз, кроме того, отправляет показания датчиков в приложение, которое работает в облаке IBM Bluemix, а оно, в свою очередь, сохраняет их.
Основной коммуникационный протокол – веб-сокеты. Это позволяет клиенту (Intel NUC и Arduino 101) взаимодействовать с облачным приложением. Если подключение к облаку недоступно, приложение использует SQLite для локального хранения данных и отправляет их в облако тогда, когда подключение восстановится. Кроме того, это приложение, когда облако недоступно, взаимодействует с мобильным приложением (напомним – когда связь с облаком присутствует, мобильное приложение работает с системой через него).
Данное приложение позволяет пользователю взаимодействовать с датчиком прикосновения и зуммером, которые имитируют дверной звонок, датчиком освещённости, который способен определять наличие объектов, сервомотором для имитации подъёма и опускания гаражной двери, и датчиком угла поворота, который поставляет в систему данные о закрывании и открывании входной двери.
Административное и мобильное приложения тесно интегрированы с приложением, которое исполняется на Intel NUC. Вместо того, чтобы предоставлять несколько версий программ в виде полнофункциональных клиентов для различных платформ (или усложнять работу над проектом из-за необходимости разработки кросс-платформенных решений), команда проекта решила реализовать эти приложения на HTML5 и JavaScript с использованием Intel XDK IoT Edition. Этот подход позволил создать одну версию каждого приложения, которая может работать на различных аппаратных платформах, используемых администраторами системы и её конечными пользователями.
Административное приложение выводит сведения с датчиков, в режиме, практически соответствующем реальному времени, а также отображает журнал событий, используя REST API. Оно работает на обычном компьютере или на планшете и даёт полный обзор происходящего в умном доме, включая сведения о событиях и состояниях объектов. Приложение позволяет просматривать журналы и работать с облачными данными и аналитическими сведениями.
Мобильное приложение позволяет пользователю открывать и закрывать гаражную дверь, используя веб-сокеты. Работает оно на смартфоне или другом мобильном устройстве, позволяя пользователю, помимо открывания и закрывания двери гаража, отслеживать то, как это происходит, а также, узнавать, не заблокирована ли дверь.
В этом материале мы продемонстрировали процесс создания прототипа IoT-системы, воспроизвести который могут буквально все желающие.
Используя Intel IoT Commercial Developer Kit, Intel NUC и плату Arduino 101, команды разработчиков могут быстро создавать сравнительно недорогие прототипы IoT-проектов.
Дополнительные компоненты для подобных проектов можно найти, например, в Grove Starter Kit Plus IoT Edition. Облачную часть можно реализовать на IBM Bluemix. ПО, включающее в себя как серверные, так и клиентские приложения, может быть подготовлено в Intel XDK IoT Edition.
Мы рассказали вам об инструментах для создания IoT-решений и о подходах к работе над ними. Теперь дело за вами. Удачных разработок!
Автор: Intel
Источник [22]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/181756
Ссылки в тексте:
[1] рассказывали: https://geektimes.ru/company/intel/blog/279272/
[2] Image: https://geektimes.ru/company/intel/blog/279964/
[3] GitHub: https://github.com/intel-iot-devkit/path-to-product/tree/master/smart-home
[4] Intel IoT Platform Marketplace: https://shopiotmarketplace.com/iot/index.html#/home
[5] Win32 Disk Imager: https://sourceforge.net/projects/win32diskimager
[6] https://01.org: https://01.org/
[7] этими: https://www.arduino.cc/en/Guide/Arduino101
[8] Intel NUC Kit DE3815TYKHE: http://www.intel.com/content/www/us/en/support/boards-and-kits/intel-nuc-kits/intel-nuc-kit-de3815tykhe.html
[9] Arduino 101: http://www.arduino.cc/en/Main/ArduinoBoard101
[10] Base Shield V2: http://www.seeedstudio.com/depot/Base-Shield-V2-p-1378.html
[11] Gear Stepper Motor with Driver: http://www.seeedstudio.com/depot/Gear-Stepper-Motor-with-Driver-p-1685.html
[12] Button Module: http://www.seeedstudio.com/depot/Grove-Button-p-766.html
[13] Touch Sensor Module: http://www.seeedstudio.com/depot/Grove-Touch-Sensor-p-747.html
[14] Light Sensor Module: http://www.seeedstudio.com/depot/Grove-Light-Sensor-p-746.html
[15] Rotary Sensor Module: http://www.seeedstudio.com/depot/Grove-Rotary-Angle-Sensor-p-770.html
[16] Red LED: http://www.seeedstudio.com/depot/Grove-Red-LED-p-1142.html
[17] LCD with RGB Backlight Module: http://www.seeedstudio.com/depot/Grove-LCD-RGB-Backlight-p-1643.html
[18] Buzzer Module: http://www.seeedstudio.com/depot/Grove-Buzzer-p-768.html
[19] этой: https://software.intel.com/en-us/%20iot/software/id
[20] этого: http://support.apple.com/kb/DL999
[21] консоль Bluemix: https://console.ng.bluemix.net/
[22] Источник: https://geektimes.ru/post/279964/
Нажмите здесь для печати.