Что помешало мне начать разбираться в платформах IoT (Интернета вещей), так это отсутствие IoT-устройства, совместимого по протоколам и методам доступа.
Но когда я понял, что в качестве устройства можно использовать обычный смартфон, реализация рабочей цепочки заняла один день.
Давайте возьмем смартфон, который будет эмулировать IoT-устройство с датчиками температуры, влажности и давления и отправлять показания на платформу Amazon IoT. Мы создадим на платформе правило, которое при поступлении данных с нашего устройства будет вызывать службу уведомлений, которая в свою очередь отправит электронное письмо с полученными данными.
Такая система, конечно, не имеет практической ценности, но позволяет понять, как все работает:
Почему стоит выбрать IoT-платформу Amazon? И зачем вообще нужно понимать, как работают IoT-платформы?
М2М – Интернет вещей – Интернет вещей
В мире становится все больше IoT-устройств, об этом говорят и аналитические агентства, и мировая статистика.Мы сами прекрасно видим, что все больше и больше систем подключаются к Интернету и управляются автоматически или людьми: умные дома, автомобили, носимые устройства.
И теперь уже говорят не просто об IoT, а об IoE (Интернете всего), потому что.
устройства, подключающиеся к платформам, используются не только в промышленных системах, но и людьми.
Поэтому вам необходимо самому разобраться в принципах работы хотя бы для того, чтобы понимать, как можно эффективно использовать свои устройства или какие существуют ограничения и нюансы безопасности.
Почему Амазон?
Amazon создает сервисы с учетом мировых тенденций и в результате получаются «универсальные» системы, основные принципы которых используют все производители.
У облачной платформы есть еще большее преимущество – это возможность самостоятельно развернуть систему за пару часов, без привлечения корпоративных ИТ и служб безопасности)
Почему смартфон, а не какой-нибудь стартовый комплект IoT?
При ближайшем рассмотрении смартфон хорошо эмулирует IoT-устройство:- У него есть Linux, на котором можно запускать приложения;
- Есть мобильное подключение к Интернету;
- С помощью программного обеспечения можно эмулировать показания датчиков.
Работа с реальным IoT-устройством ничем не будет отличаться от работы со смартфоном, за исключением использования специального SDK для получения показаний датчиков.
Все остальные коммуникации будут аналогичны.
Раздел о стандартах, аналитике и исследованиях рынка позволю себе пропустить — в конце статьи я приведу несколько соответствующих ссылок.
Не могу дождаться, чтобы сделать что-то интересное)
Платформа AWS Интернета вещей
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).
Появляется: Вакансии — выполнять стандартные действия на устройствах, например установку приложений, обновление прошивки, перезагрузку устройств и т. д. Темы – суть протокола MQTT. Сообщения от IoT-устройств отправляются в определенные темы.
Роли IAM – Пользователи AWS, от имени которых выполняются правила и которые имеют доступ к необходимым ресурсам AWS. Правила состоит из:
- Фильтр — фильтр сообщений для обработки.
Указывается как SQL-запрос.
- Действие – действие, которое необходимо выполнить.
- Роль — одна или несколько ролей IAM.
- Сертификат устройства 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:*
- Прикрепление политики к сертификату
- Прикрепление сертификата к устройству
- В результате мы получили сертификат с устройством и политикой:
- Давайте создадим правило.
Правило будет вызывать службу уведомлений AWS SNS (Simple Notification Service) для отправки электронного письма.
Поэтому сначала нужно создать тему в AWS SNS (my-iot-dev-sns-topic):
- Теперь настраиваем, что именно будет делать этот топик при получении данных.
Для этого создайте подписку на тему (подписаться на тему Amazon SNS), введите целевой адрес электронной почты, дождитесь проверочного письма и подтвердите электронную почту.
Теперь создаём само правило (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.
- Все логические сущности для нашего устройства созданы.
Теперь вы можете проверить, что схема теоретически работает. Для этой цели у AWS есть инструмент тестирования, который позволяет отправлять и получать сообщения аналогично реальным устройствам.
Запускаем его, подписываемся на тему (my/dev-topic) и отправляем «Hello World!» сообщение:
- Проверяем, пришло ли письмо с сообщением «Hello World!» и делаем вывод, что схема работает.
Конфигурация смартфона
Пришло время настроить IoT-устройство, которым будет мой смартфон.Для этого мы используем Инструкции по JavaScript для AWS SDK .
Чтобы превратить смартфон в IoT-устройство, вам необходимо:
- Скопируйте на устройство: закрытый ключ, сертификаты X.509 и «Root CA for AWS»;
- Установите Node.js и менеджер пакетов npm;
- Установите AWS SDK;
- Установите и запустите тестовую программу.
Если кто-то захочет использовать мою тестовую программу, ему нужно будет поместить свои сертификаты в каталог /IoT/certs и написать конечную точку Rest API, соответствующую устройству, в файле /server/src/services/IoT-AOI-Server. файл:
Rest API Endpoint берется из настроек устройства:device = deviceModule({ … host: 'a2lqo1xxx4zydi-ats.iot.eu-central-1.amazonaws.com', … })
Если вы хотите попробовать что-то стандартное, вы можете использовать тестовые программы из 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. В реальной жизни это выглядит так:
Установка клиента
cd ~/IoT-Sensors/client
npm install
npm run serve
Если все прошло успешно, в терминале появится следующая строка: Приложение работает в порту: 8080. Далее введите в браузере смартфона: http://localhost:8080 И на экране появится тестовое приложение:
Нажмите кнопку «ИНИТ РАЗРАБОТКИ».
В этом случае устройство Интернета вещей проходит аутентификацию и авторизацию на платформе AWS IoT. В случае успеха статус изменится на «Init OK».
Далее введите значения датчиков температуры, влажности и давления, например: Температура: 23 Влажность: 65 Давление: 787 И нажмите кнопку «ОТПРАВИТЬ ДАННЫЕ».
После этого приложение добавляет метку времени и отправляет данные в виде MQTT-сообщения в тему «my/dev-topic».
Платформа IoT получает сообщение и активирует правило, которое отправляет сообщение в службу уведомлений AWS SNS, которая отправляет электронное письмо с полученными данными в формате JSON: {"time":"Mon, 30 Sep 2019 13:54:52 GMT", "temperature":"23", "humidity":"65", "pressure":"787"}
Если сообщение отправлено успешно, статус изменится на: «Опубликовать ОК», и на ваш адрес электронной почты будет отправлено следующее сообщение:
Платформа AWS IoT имеет систему мониторинга, которая показывает количество подключений и сообщений от IoT-устройств, статистику по протоколам, типам сообщений и т. д.:
Так что теперь все работает по-настоящему!
Заключение
Мы построили небольшой, но настоящий Интернет вещей, используя платформу Amazon. Все платформы построены по одним и тем же принципам, поэтому, если возникнет вопрос выбора IoT-системы, мы будем готовы задать следующие вопросы.И тогда, зная ответы Amazon, мы сможем сделать выводы о том, насколько зрелой предлагается платформа: Устройства
- Как устройства добавляются в систему?
- Как аутентифицируются и авторизуются устройства?
- Зашифрованы ли данные, отправляемые на платформу?
- Как защищены ключи и сертификаты на платформе?
- Как формируются правила?
- Какие действия могут выполнять правила?
- Как осуществляется мониторинг и управление устройствами?
- Есть ли на платформе тени (цифровые двойники) устройств?
- Какие отчеты и аналитика доступны?
- Какие протоколы используются для подключения устройств?
- Как приложения взаимодействуют с устройством?
- Как проверяется логика взаимодействия?
Стандарты Интернета вещей
Удивительно, но гиганты стандартизации ( ИСО/МЭК , IEEE , МС?-Т ) потеряли интерес к IoT после 2016 года.Что-то они, конечно, делают, но как-то без огонька).
NIST также опубликовал свое исследование Сети «вещей» , но после 2016 года больше ничего интересного.
Телекоммуникационные учреждения выглядят лучше, что неудивительно, ведь без подключения IoT — это не IoT. ТМ-Форум собирает кейсы и проекты под своей крышей Интернет вещей и цифровые экосистемы ETSI поступил проще и вступил в УанМ2М .
И вот мы подошли к двум организациям, которые образовались сравнительно недавно, но уже определяют глобальное направление развития IoT: УанМ2М OneM2M — это ассоциация организаций по стандартизации, телекоммуникационные компании и производители разных стран.
У них в открытом доступе десятки соответствующих документов, которые греют душу.
архитектурные модели и функциональные схемы .
ИИК IIC (Industrial Internet Consortium) — организация по стандартизации промышленного Интернета вещей — в основном занимается производители программного обеспечения и устройств .
Они также выпускают свои эталонные архитектуры.
В общем, есть где посмотреть на идеальный мир! )
Интернет вещей аналитика
Все наши любимые исследовательские агентства проводят исследования в области Интернета вещей, но не все из них доступны в свободном доступе.В качестве примера приведем несколько актуальных статей, демонстрирующих оптимистичные прогнозы развития IoT:
- Gartner, про IoT — в тексте статьи: 5 тенденций в цикле хайпа Gartner в отношении новых технологий, 2019 г.
- МакКинси: Растущие возможности Интернета вещей
-
Проблемы С Общим Кодом В Микросервисах
19 Oct, 24 -
Крутая Стажировка
19 Oct, 24 -
Ден Переводов
19 Oct, 24