Что Нам Следует Построить В Интернете Вещей? Ваш Интернет Вещей На Amazon За Один День

Что помешало мне начать разбираться в платформах IoT (Интернета вещей), так это отсутствие IoT-устройства, совместимого по протоколам и методам доступа.

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

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

Такая система, конечно, не имеет практической ценности, но позволяет понять, как все работает:

Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

Почему стоит выбрать IoT-платформу Amazon? И зачем вообще нужно понимать, как работают IoT-платформы?



М2М – Интернет вещей – Интернет вещей

В мире становится все больше IoT-устройств, об этом говорят и аналитические агентства, и мировая статистика.

Мы сами прекрасно видим, что все больше и больше систем подключаются к Интернету и управляются автоматически или людьми: умные дома, автомобили, носимые устройства.

И теперь уже говорят не просто об IoT, а об IoE (Интернете всего), потому что.

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

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



Почему Амазон?

Amazon создает сервисы с учетом мировых тенденций и в результате получаются «универсальные» системы, основные принципы которых используют все производители.

У облачной платформы есть еще большее преимущество – это возможность самостоятельно развернуть систему за пару часов, без привлечения корпоративных ИТ и служб безопасности)

Почему смартфон, а не какой-нибудь стартовый комплект IoT?

При ближайшем рассмотрении смартфон хорошо эмулирует IoT-устройство:
  • У него есть Linux, на котором можно запускать приложения;
  • Есть мобильное подключение к Интернету;
  • С помощью программного обеспечения можно эмулировать показания датчиков.

Те.

Работа с реальным IoT-устройством ничем не будет отличаться от работы со смартфоном, за исключением использования специального SDK для получения показаний датчиков.

Все остальные коммуникации будут аналогичны.

Раздел о стандартах, аналитике и исследованиях рынка позволю себе пропустить — в конце статьи я приведу несколько соответствующих ссылок.

Не могу дождаться, чтобы сделать что-то интересное)

Платформа AWS Интернета вещей

Amazon рисует довольно четкую схему своей платформы:

Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

В общем, здесь все понятно:
  • (1) Существуют устройства, которые взаимодействуют с платформой Интернета вещей с помощью SDK.
  • (2) Устройства отправляют сообщения, проверенные службой аутентификации и авторизации.

  • (3) Сообщения поступают на шлюз устройств по разным протоколам, затем поступают в процессор правил (4.1) и копируются (4.2) в тени устройств.

  • (4.2) Тени устройств — это цифровые двойники, хранящие текущие состояния устройств, которые всегда доступны приложениям.

    С другой стороны, если связи с устройством нет, Device Shadow выполняет команды управления из приложений и при восстановлении связи синхронизирует текущее состояние с устройством.

  • (4.1) Обработчик правил в зависимости от полученных данных выполняет заранее определенные действия (5.1), например, сохраняет данные в БД, отправляет SMS или уведомление по электронной почте, вызывает HTTP API, отправляет данные в систему аналитики и т. д. .

  • (5.2) Приложения используют эти данные для мониторинга и управления устройствами с помощью AWS API (6)
  • Информация обо всех устройствах хранится на платформе AWS IoT (7).

Начнем разбираться, схема немного усложняется:

Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

Появляется: Вакансии — выполнять стандартные действия на устройствах, например установку приложений, обновление прошивки, перезагрузку устройств и т. д. Темы – суть протокола MQTT. Сообщения от IoT-устройств отправляются в определенные темы.

Роли IAM – Пользователи AWS, от имени которых выполняются правила и которые имеют доступ к необходимым ресурсам AWS. Правила состоит из:

  • Фильтр — фильтр сообщений для обработки.

    Указывается как SQL-запрос.

  • Действие – действие, которое необходимо выполнить.

  • Роль — одна или несколько ролей IAM.
Сертификат – загружаются на устройство IoT, они используются для аутентификации устройств на платформе AWS. Состоит из:
  • Сертификат устройства X.509
  • Закрытый ключ
  • Корневой сертификат платформы AWS
Политика – к сертификатам прикреплены политики, определяющие, какие действия может выполнять устройство.

С помощью политик устройства авторизуются.

Подробны Сервисы AWS , который получает информацию от IoT-платформы: Аналитики, БД, службы уведомлений SNS.

Подключение устройства

Я не буду приводить полную инструкцию по подключению IoT-устройства к платформе Amazon: Начало работы с AWS IoT .

Но чтобы понять масштаб задачи, перечислю шаги, которые необходимо сделать, чтобы схема заработала:

  • Создаем устройство my-iot-dev на платформе
  • Получаем сертификат устройства X.509, закрытый ключ, открытый ключ.

  • Получаем корневой сертификат платформы AWS (Root CA для AWS IoT)
  • Создайте политику my-iot-dev-policy. Для нашей демо мы разрешаем все действия: iot:*


Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

  • Прикрепление политики к сертификату
  • Прикрепление сертификата к устройству
  • В результате мы получили сертификат с устройством и политикой:


Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

  • Давайте создадим правило.

    Правило будет вызывать службу уведомлений AWS SNS (Simple Notification Service) для отправки электронного письма.

    Поэтому сначала нужно создать тему в AWS SNS (my-iot-dev-sns-topic):



Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

  • Теперь настраиваем, что именно будет делать этот топик при получении данных.

    Для этого создайте подписку на тему (подписаться на тему Amazon SNS), введите целевой адрес электронной почты, дождитесь проверочного письма и подтвердите электронную почту.



Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

Теперь создаём само правило (my_iot_dev_rule), которое будет вызывать созданную тему:
  • Фильтр: SELECT * FROM 'my/dev-topic' - фильтр срабатывает при получении любого сообщения в теме с названием 'my/dev-topic';
  • Действие: отправка сообщения в ранее созданную тему SNS «arn:aws:sns:eu-central-1:1219xxx34064:my-iot-dev-sns-topic»;
  • Роль IAM: создайте роль my-dev-role с доступом к темам SNS.


Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

  • Все логические сущности для нашего устройства созданы.

    Теперь вы можете проверить, что схема теоретически работает. Для этой цели у AWS есть инструмент тестирования, который позволяет отправлять и получать сообщения аналогично реальным устройствам.

    Запускаем его, подписываемся на тему (my/dev-topic) и отправляем «Hello World!» сообщение:



Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

  • Проверяем, пришло ли письмо с сообщением «Hello World!» и делаем вывод, что схема работает.


Конфигурация смартфона

Пришло время настроить IoT-устройство, которым будет мой смартфон.

Для этого мы используем Инструкции по JavaScript для AWS SDK .

Чтобы превратить смартфон в IoT-устройство, вам необходимо:

  • Скопируйте на устройство: закрытый ключ, сертификаты X.509 и «Root CA for AWS»;
  • Установите Node.js и менеджер пакетов npm;
  • Установите AWS SDK;
  • Установите и запустите тестовую программу.

В нашем случае все будет немного проще, потому что сертификаты, AWS SDK и тестовую программу я выложил на GitHub и вы можете просто клонировать Репозиторий IoT-сенсоров .

Если кто-то захочет использовать мою тестовую программу, ему нужно будет поместить свои сертификаты в каталог /IoT/certs и написать конечную точку Rest API, соответствующую устройству, в файле /server/src/services/IoT-AOI-Server. файл:

  
  
  
  
   

device = deviceModule({ … host: 'a2lqo1xxx4zydi-ats.iot.eu-central-1.amazonaws.com', … })

Rest API Endpoint берется из настроек устройства:

Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

Если вы хотите попробовать что-то стандартное, вы можете использовать тестовые программы из AWS SDK. Android — это то же самое, что и Linux, но со своими ограничениями, поэтому для запуска JS-приложений необходимо установить специальный терминал, например Термукс .

Есть ряд статей по началу работы с Termux, например: Запуск приложения NodeJS на Android .

Но по большому счету после установки Termux вам нужно всего лишь выполнить несколько волшебных команд:

git clone https://github.com/AlexeySushkov/IoT-Sensors.git



Установка сервера



cd ~/IoT-Sensors/server npm install npm start

Если все прошло успешно, в терминале появится следующая строка: Сервер запущен на порту: 8081. В реальной жизни это выглядит так:

Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день



Установка клиента



cd ~/IoT-Sensors/client npm install npm run serve

Если все прошло успешно, в терминале появится следующая строка: Приложение работает в порту: 8080. Далее введите в браузере смартфона: http://localhost:8080 И на экране появится тестовое приложение:

Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

Нажмите кнопку «ИНИТ РАЗРАБОТКИ».

В этом случае устройство Интернета вещей проходит аутентификацию и авторизацию на платформе AWS IoT. В случае успеха статус изменится на «Init OK».

Далее введите значения датчиков температуры, влажности и давления, например: Температура: 23 Влажность: 65 Давление: 787 И нажмите кнопку «ОТПРАВИТЬ ДАННЫЕ».



Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

После этого приложение добавляет метку времени и отправляет данные в виде MQTT-сообщения в тему «my/dev-topic».

Платформа IoT получает сообщение и активирует правило, которое отправляет сообщение в службу уведомлений AWS SNS, которая отправляет электронное письмо с полученными данными в формате JSON:

{"time":"Mon, 30 Sep 2019 13:54:52 GMT", "temperature":"23", "humidity":"65", "pressure":"787"}

Если сообщение отправлено успешно, статус изменится на: «Опубликовать ОК», и на ваш адрес электронной почты будет отправлено следующее сообщение:

Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

Платформа AWS IoT имеет систему мониторинга, которая показывает количество подключений и сообщений от IoT-устройств, статистику по протоколам, типам сообщений и т. д.:

Что нам следует построить в Интернете вещей? Ваш Интернет вещей на Amazon за один день

Так что теперь все работает по-настоящему!

Заключение

Мы построили небольшой, но настоящий Интернет вещей, используя платформу Amazon. Все платформы построены по одним и тем же принципам, поэтому, если возникнет вопрос выбора IoT-системы, мы будем готовы задать следующие вопросы.

И тогда, зная ответы Amazon, мы сможем сделать выводы о том, насколько зрелой предлагается платформа: Устройства

  • Как устройства добавляются в систему?
  • Как аутентифицируются и авторизуются устройства?
  • Зашифрованы ли данные, отправляемые на платформу?
Платформа
  • Как защищены ключи и сертификаты на платформе?
  • Как формируются правила?
  • Какие действия могут выполнять правила?
  • Как осуществляется мониторинг и управление устройствами?
  • Есть ли на платформе тени (цифровые двойники) устройств?
  • Какие отчеты и аналитика доступны?
Взаимодействие
  • Какие протоколы используются для подключения устройств?
  • Как приложения взаимодействуют с устройством?
  • Как проверяется логика взаимодействия?
Как и обещал, приведу несколько актуальных ссылок на стандарты и аналитику:

Стандарты Интернета вещей

Удивительно, но гиганты стандартизации ( ИСО/МЭК , IEEE , МС?-Т ) потеряли интерес к IoT после 2016 года.

Что-то они, конечно, делают, но как-то без огонька).

NIST также опубликовал свое исследование Сети «вещей» , но после 2016 года больше ничего интересного.

Телекоммуникационные учреждения выглядят лучше, что неудивительно, ведь без подключения IoT — это не IoT. ТМ-Форум собирает кейсы и проекты под своей крышей Интернет вещей и цифровые экосистемы ETSI поступил проще и вступил в УанМ2М .

И вот мы подошли к двум организациям, которые образовались сравнительно недавно, но уже определяют глобальное направление развития IoT: УанМ2М OneM2M — это ассоциация организаций по стандартизации, телекоммуникационные компании и производители разных стран.

У них в открытом доступе десятки соответствующих документов, которые греют душу.

архитектурные модели и функциональные схемы .

ИИК IIC (Industrial Internet Consortium) — организация по стандартизации промышленного Интернета вещей — в основном занимается производители программного обеспечения и устройств .

Они также выпускают свои эталонные архитектуры.

В общем, есть где посмотреть на идеальный мир! )

Интернет вещей аналитика

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

В качестве примера приведем несколько актуальных статей, демонстрирующих оптимистичные прогнозы развития IoT:

Все только начинается! Теги: #Android #iot #Разработка для Интернета вещей #облачные сервисы #Анализ и проектирование систем #aws #Amazon Web Services #node.js #облачная платформа #IoE #M2M
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.