Когда я щелкаю опцию Onboard в консоли AWS IoT, я вижу возможность зарегистрировать вещь. При нажатии на нее, а затем на кнопку «Начало работы» отображается страница выбора SDK для регистрации. Первый шаг — выбрать ОС, а затем язык. На данный момент я не вижу опции для выбора C или C ++ SDK!
Страница для AWS IoT SDK показывает C / C ++ SDK. Но страница для SDK устройства IoT AWS не показывает C ++ SDK.
Моя цель — создать клиент MQTT на C / C ++ для устройства с ОС RTOS. Я бы зарегистрировал его «снаружи» устройства.
1. Различные SDK
В AWS IOT есть две основные категории AWS SDK.
Оба приходят на разных языках. SDK устройств обычно используют сертификаты MQTT и x509 для аутентификации в AWS IOT, но вы также можете обмениваться данными через https. Обзор поддерживаемых протоколов для клиентов iot можно найти здесь. Имейте в виду, что устройства обычно имеют тенденцию использовать двунаправленную долгосрочную связь с использованием MQTT (публикация / подписка). Протокол http можно использовать только для отправки сообщений с устройства на AWS IOT.
Если вы используете систему на основе C, у вас есть 2 варианта:
Они используют стандартную связь MQTT.
2. Разница между AWS IoT SDK и Eclipse Paho
Оба будут использовать сертификаты MQTT / x509 и MQTT_SSL_VERSION_TLS_1_2.
Теоретически оба должны работать с Aws IOT, и я видел рабочие образцы MQTT-клиента Eclispe Paho в C ++, работающего с Aws IOT.
Исходя из моего опыта, вам, как правило, лучше использовать SDK для поставщиков, поскольку они будут иметь лучшую поддержку / образцы / функции, чем более общие библиотеки MQTT.
Кроме того, есть некоторая ценность — быть независимым от облаков и использовать стандартные протоколы / библиотеки, такие как MQTT / Paho, чтобы избежать (aws) блокировки поставщика.
3. Paho клиент и AWS IOT
AWS IoT требуется TLS V1.2, поэтому ваш клиент Paho должен это поддерживать. Я верю этому должно быть возможно сейчас с Paho cpp.
Других решений пока нет …