- PVSM.RU - https://www.pvsm.ru -
В одном из проектов мы проверили возможности облачной платформы AWS IoT, подключив к ней несколько устройств из набора Lego для программируемых роботов Mindstorms EV3.
На старте мы исследовали несколько крупных облачных сервисов для IoT, которые дали хороший толчок развитию всей концепции интернета вещей (IoT) — Microsoft Azure IoT Suite, AWS IoT и IBM Watson IoT — но в результате остановились именно на Amazon Web Services (AWS).
Общая структурная схема получилась такая:
На данном этапе проект выглядит не слишком сложным, что позволяет рассмотреть IoT в целом, без излишних подробностей.
Для работы с AWS создаем учетную запись Amazon Web Service, прямо в ней выбираем и настраиваем нужные услуги.
Для начала нам понадобился виртуальный сервер EC2 с Linux`ом на борту.
Мы создали новый экземпляр класса (instance) выбрали образ ОС Ubuntu Server из предложенного списка Linux от Amazon, Red Hat, SUSE и Windows Server 2012 c SQL Server Express и без. Далее настраиваем сам инстанс: ЦПУ, память, хранилище, сетевые возможности, настройки тегирования и безопасности. В конце — генерируем пару ключей для доступа к сервису (можно использовать уже имеющуюся пару).
→ Более подробное руководство от AWS [1]
Для доступа к серверу мы использовали свободный клиент PuTTY.
В нашем проекте вещами — устройствами, подключенными к AWS IoT— стали «кирпичики» Lego Mindstorms EV3 [2].
Технические характеристики:
Можно объединить до четырёх таких модулей.
Помимо собственно основного кирпичика у нас также есть:
Для начала каждое IoT устройство необходимо зарегистрировать в AWS IoT. Там мы получаем сертификаты и ключи для подключения устройства, регистрируем уникальное имя-идентификатор нашей вещи.
Затем мы написали приложение для «кирпичей» на C#. Для этого использовали:
На сервере мы развернули веб-серверное приложение на Node.js с использованием модуля restify и специальных модулей от AWS для IoT и приложений, использующих их сервисы: aws-iot-device-sdk и aws-sdk.
Для хранения конфигурационных данных по каждой вещи использовали базу данных NoSQL Amazon Dynamo DB. Она создается в учетной записи AWS – одна база для одного аккаунта. Там же создаются все необходимые таблицы и настраиваются атрибуты.
Как сказано на официальном сайте AWS, AWS IoT поддерживает обмен сообщениями с помощью модели публикации и подписки, т.е. наш узел или вещь может создать необходимое количество тем для подписки, а все остальные сервисы или устройства должны подписаться на них, чтобы работать с данной вещью. На практике это выглядит так: при регистрации создается основной топик вещи, название которого соответствует его идентификатору при регистрации, а дальше топики создаются внутри этого основного топика при первой публикации в нем сообщения (<идентификатор вещи>/<какой-то топик>). Поэтому важно сначала подписаться на все свои топики в начале работы приложения устройства.
У каждого нашего устройства были следующие топики:
При включении приложения устройство публикует информацию о себе в топик конфигурации, которую читает сервер и сохраняет в базе. Далее с помощью веб-интерфейса можно настроить подключение любого сенсора с любого подключенного устройства к любому мотору любого подключенного устройства, выбрать математическую логику для сенсора, которой будет обрабатываться значение с него, отправить конкретное значение на мотор, или получить данные с сенсоров.
В итоге мы получили веб-терминал для управления и мониторинга контроллеров с настраиваемой возможностью управления выходами (моторами) одного терминала с входов (сенсоров) другого.
Облачные платформы типа AWS IoT объединяют любые датчики с необходимыми интерфейсами, собирают данные в облаке, помогают анализировать информацию и управлять интернетом своих вещей через мобильные приложения. Все технологии есть, нужна только фантазия для реализации этих возможностей в конкретных устройствах — датчиках для умного дома и офиса, развлечений, автоперевозок, автоматизации производства, даже для огромных боевых человекоподобных роботов.
Автор: Команда компании Promwad
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-2/251190
Ссылки в тексте:
[1] Более подробное руководство от AWS: https://aws.amazon.com/ru/getting-started/tutorials/
[2] Lego Mindstorms EV3: https://www.lego.com/ru-ru/mindstorms/products/mindstorms-ev3-31313
[3] Источник: https://habrahabr.ru/post/324992/
Нажмите здесь для печати.