Представляю вашему вниманию перевод части статьи: The non-primitive approach of amazon — how AWS IoT meets IoT challenges
AWS IoT Core, пожалуй, является наиболее значимым сервисом среди базовых сервисов Amazon, посвященных IoT. Он позволяет просто и безопасно подключать физические устройства к облаку, надежно их масштабировать и обеспечивает полное взаимодействие между устройствами IoT с их периферийным программным обеспечением и облачными сервисами AWS IoT, упомянутыми выше.
Чтобы начать работу с AWS IoT, давайте организуем пробное подключение тестового устройства, содержащего микроконтроллер, а также следующие датчики HDC1080 — (температура, влажность), BME280 — (давление), MH-Z19 — (CO2), CCS811 — (eCO2, tVOC) в AWS IoT Core для пробной передачи данных.
![](https://habrastorage.org/webt/ef/t-/7w/eft-7wtfefcmotlpe500lrjz8-w.png)
Безопасное подключение устройства имеет важное значение в нашем случае. Одним из наиболее популярных методов обеспечения безопасной передачи данных является использование сквозного шифрования через TLS 1.2. протокол. Только немногие решения на основе микроконтроллеров могут соответствовать TLS 1.2. из-за недостатка ресурсов. На этот раз мы используем ESP32, поскольку микроконтроллер является одним из самых доступных решений.
Во-первых, нам нужно создать пользователя AWS, а наш микроконтроллер ESP32 должен быть подключен к Интернету.
После входа в систему откройте консоль IoT AWS по адресу aws.amazon.com/iot. На странице приветствия выберите “Начать”.
Если вы впервые используете консоль IoT AWS, вы увидите страницу «Добро пожаловать в консоль IoT AWS». На левой навигационной панели выберите «Управление», чтобы развернуть варианты, а затем выберите «Вещи».
На странице с надписью “У вас еще ничего нет”, выберите “Зарегистрировать вещь”. (Если вы уже создали вещь, выберите «Создать»).
![](https://habrastorage.org/webt/d_/f9/ms/d_f9mskdnuhd6dursoujte7qrt8.png)
Объект представляет собой устройство, состояние или данные которого хранятся в облаке AWS. Этот сохраненный статус или данные называются тенью устройства. Служба Device Shadow поддерживает тень для каждого устройства, подключенного к AWS IoT.
Введите имя для вещи, а затем нажмите “Далее”.
![](https://habrastorage.org/webt/ol/r7/oq/olr7oqe50ohkd24yuhpk8z1dvj0.png)
После этого мы должны создать сертификаты для безопасного соединения.
![](https://habrastorage.org/webt/xc/_y/ll/xc_yllqmxus4nilpi6y0uyilgk0.png)
Затем мы должны загрузить сертификаты, нажать «Готово» и получить авторизованную вещь.
![](https://habrastorage.org/webt/ow/zj/hz/owzjhzepergjwa6jb0pbbxee2wu.png)
![](https://habrastorage.org/webt/ef/4n/ys/ef4nyswph6ickzu9uavy1f0yzfa.png)
Затем мы должны перейти в “безопасность” и выбрать «политика».
![](https://habrastorage.org/webt/55/_l/lr/55_llrkrmz723zxqfrzzcmrwcaq.png)
На странице «Создание политики» в поле «Имя» введите имя для политики.
В поле “Действие” введите “iot”: *. В поле ARN ресурса введите *.
Установите флажок “Разрешить”. Это позволяет вашему Raspberry Pi публиковать сообщения в AWS IoT.
iot: * — политика подписки и публикации с использованием этого сертификата
* -все клиенты могут публиковать / подписываться на эту вещь, используя этот сертификат
![](https://habrastorage.org/webt/dk/ps/lu/dkpslu50deidkz2o8vpm6x-ayie.png)
![](https://habrastorage.org/webt/hd/z_/jx/hdz_jxzb_n6sczqpugcyc05cpik.png)
На левой панели навигации в разделе «Безопасность» выберите «Сертификаты».
В поле для сертификата, который вы создали, выберите ..., чтобы открыть раскрывающееся меню, а затем выберите “Присоединить политику”.
![](https://habrastorage.org/webt/hd/yh/-p/hdyh-psnra1as0vpsaiedwmmfoa.png)
![](https://habrastorage.org/webt/u3/ui/_e/u3ui_e1jpx1jazwfgi6ops2jl6u.png)
В поле для сертификата, который вы создали, выберите ..., чтобы открыть раскрывающееся меню, а затем выберите “Прикрепить вещь”.
![](https://habrastorage.org/webt/sj/mm/xn/sjmmxnt5pj58qbyagehjvb19mwy.png)
Последний шаг сводится к активации сертификата:
В поле для сертификата, который вы создали, выберите ..., чтобы открыть раскрывающееся меню, а затем выберите “Активировать”.
![](https://habrastorage.org/webt/s2/ie/2x/s2ie2xnjujc_kslsr1umsvaihc4.png)
Будем считать, что наш микроконтроллер ESP32, уже настроенный на работу с IoT AWS. Ему известны Rest API Endpoint брокера, порт и протокол, а также доступны все необходимые сертификаты.
Теперь нам нужно проверить возможность передачи данных между ESP32 и облаком AWS IoT. Перейдите в “Управление”, выбираем нашу вещь test-ESP32, в левом меню переходим на «Взаимодействовать» и копируем адрес темы под строкой «Обновление до этой вещи тень».
![](https://habrastorage.org/webt/z_/cn/kb/z_cnkb4wfzhwhm6gihb56u2pmsc.png)
После этого подпишитесь на выбранную тему и дождитесь данных.
![](https://habrastorage.org/webt/hm/3c/nf/hm3cnf_1urigi1wwxubdesivhwg.png)
![](https://habrastorage.org/webt/hv/uj/-h/hvuj-hxsye2jocefqyf8gtrx6b8.png)
Через несколько секунд мы увидим данные, успешно полученные брокером MQTT.
![](https://habrastorage.org/webt/jn/jt/de/jnjtdeaqrl7g8ihrmm7peplz1c4.png)
Наконец, мы можем собирать, анализировать и визуализировать наши данные как с помощью службы AWS IoT, так и с помощью наших собственных решений и архитектуры.
AWS IoT Core, пожалуй, является наиболее значимым сервисом среди базовых сервисов Amazon, посвященных IoT. Он позволяет просто и безопасно подключать физические устройства к облаку, надежно их масштабировать и обеспечивает полное взаимодействие между устройствами IoT с их периферийным программным обеспечением и облачными сервисами AWS IoT, упомянутыми выше.
Чтобы начать работу с AWS IoT, давайте организуем пробное подключение тестового устройства, содержащего микроконтроллер, а также следующие датчики HDC1080 — (температура, влажность), BME280 — (давление), MH-Z19 — (CO2), CCS811 — (eCO2, tVOC) в AWS IoT Core для пробной передачи данных.
![](https://habrastorage.org/webt/ef/t-/7w/eft-7wtfefcmotlpe500lrjz8-w.png)
Безопасное подключение устройства имеет важное значение в нашем случае. Одним из наиболее популярных методов обеспечения безопасной передачи данных является использование сквозного шифрования через TLS 1.2. протокол. Только немногие решения на основе микроконтроллеров могут соответствовать TLS 1.2. из-за недостатка ресурсов. На этот раз мы используем ESP32, поскольку микроконтроллер является одним из самых доступных решений.
Во-первых, нам нужно создать пользователя AWS, а наш микроконтроллер ESP32 должен быть подключен к Интернету.
После входа в систему откройте консоль IoT AWS по адресу aws.amazon.com/iot. На странице приветствия выберите “Начать”.
Если вы впервые используете консоль IoT AWS, вы увидите страницу «Добро пожаловать в консоль IoT AWS». На левой навигационной панели выберите «Управление», чтобы развернуть варианты, а затем выберите «Вещи».
На странице с надписью “У вас еще ничего нет”, выберите “Зарегистрировать вещь”. (Если вы уже создали вещь, выберите «Создать»).
![](https://habrastorage.org/webt/d_/f9/ms/d_f9mskdnuhd6dursoujte7qrt8.png)
Объект представляет собой устройство, состояние или данные которого хранятся в облаке AWS. Этот сохраненный статус или данные называются тенью устройства. Служба Device Shadow поддерживает тень для каждого устройства, подключенного к AWS IoT.
Введите имя для вещи, а затем нажмите “Далее”.
![](https://habrastorage.org/webt/ol/r7/oq/olr7oqe50ohkd24yuhpk8z1dvj0.png)
После этого мы должны создать сертификаты для безопасного соединения.
![](https://habrastorage.org/webt/xc/_y/ll/xc_yllqmxus4nilpi6y0uyilgk0.png)
Затем мы должны загрузить сертификаты, нажать «Готово» и получить авторизованную вещь.
![](https://habrastorage.org/webt/ow/zj/hz/owzjhzepergjwa6jb0pbbxee2wu.png)
![](https://habrastorage.org/webt/ef/4n/ys/ef4nyswph6ickzu9uavy1f0yzfa.png)
Затем мы должны перейти в “безопасность” и выбрать «политика».
![](https://habrastorage.org/webt/55/_l/lr/55_llrkrmz723zxqfrzzcmrwcaq.png)
На странице «Создание политики» в поле «Имя» введите имя для политики.
В поле “Действие” введите “iot”: *. В поле ARN ресурса введите *.
Установите флажок “Разрешить”. Это позволяет вашему Raspberry Pi публиковать сообщения в AWS IoT.
iot: * — политика подписки и публикации с использованием этого сертификата
* -все клиенты могут публиковать / подписываться на эту вещь, используя этот сертификат
![](https://habrastorage.org/webt/dk/ps/lu/dkpslu50deidkz2o8vpm6x-ayie.png)
![](https://habrastorage.org/webt/hd/z_/jx/hdz_jxzb_n6sczqpugcyc05cpik.png)
На левой панели навигации в разделе «Безопасность» выберите «Сертификаты».
В поле для сертификата, который вы создали, выберите ..., чтобы открыть раскрывающееся меню, а затем выберите “Присоединить политику”.
![](https://habrastorage.org/webt/hd/yh/-p/hdyh-psnra1as0vpsaiedwmmfoa.png)
![](https://habrastorage.org/webt/u3/ui/_e/u3ui_e1jpx1jazwfgi6ops2jl6u.png)
В поле для сертификата, который вы создали, выберите ..., чтобы открыть раскрывающееся меню, а затем выберите “Прикрепить вещь”.
![](https://habrastorage.org/webt/sj/mm/xn/sjmmxnt5pj58qbyagehjvb19mwy.png)
Последний шаг сводится к активации сертификата:
В поле для сертификата, который вы создали, выберите ..., чтобы открыть раскрывающееся меню, а затем выберите “Активировать”.
![](https://habrastorage.org/webt/s2/ie/2x/s2ie2xnjujc_kslsr1umsvaihc4.png)
Будем считать, что наш микроконтроллер ESP32, уже настроенный на работу с IoT AWS. Ему известны Rest API Endpoint брокера, порт и протокол, а также доступны все необходимые сертификаты.
Теперь нам нужно проверить возможность передачи данных между ESP32 и облаком AWS IoT. Перейдите в “Управление”, выбираем нашу вещь test-ESP32, в левом меню переходим на «Взаимодействовать» и копируем адрес темы под строкой «Обновление до этой вещи тень».
![](https://habrastorage.org/webt/z_/cn/kb/z_cnkb4wfzhwhm6gihb56u2pmsc.png)
После этого подпишитесь на выбранную тему и дождитесь данных.
![](https://habrastorage.org/webt/hm/3c/nf/hm3cnf_1urigi1wwxubdesivhwg.png)
![](https://habrastorage.org/webt/hv/uj/-h/hvuj-hxsye2jocefqyf8gtrx6b8.png)
Через несколько секунд мы увидим данные, успешно полученные брокером MQTT.
![](https://habrastorage.org/webt/jn/jt/de/jnjtdeaqrl7g8ihrmm7peplz1c4.png)
Наконец, мы можем собирать, анализировать и визуализировать наши данные как с помощью службы AWS IoT, так и с помощью наших собственных решений и архитектуры.
Foreglance
Ссылки на код, связанный собственно с ESP32
Подключение сенсоров (и дисплея)
github.com/satr/esp32-with-co2-sensor-mh-z19b-and-lcd-display-nokia-5110
ESP32 AWS IoT example using Arduino SDK
github.com/jandelgado/esp32-aws-iot
Некоторые технические детали об AWS IoT
github.com/espressif/esp-idf/blob/master/examples/protocols/aws_iot