ESP32上のEmbeddedC用のAWSIoTデバイスSDKの長期サポートをリリース
2017年以降、EspressifSoCはAWSIoTCoreおよび関連サービスに接続できるようになりました。Espressif Wi-FiSoCをAWSIoTCoreに接続する方法は2つあります。
1つ目は、Amazonが提供するFreeRTOSディストリビューションを使用することです。FreeRTOSディストリビューションは、カーネル、接続ライブラリ、および独自のビルドシステムを提供する包括的なソリューションです。これにより、認定されたSoCをAWSIoTおよび関連サービスにシームレスに接続できます。ただし、Espressif SoCでこのFreeRTOSディストリビューションを使用するには、特定の制限があります。ESP32などのSoCの複数のコアを利用するためのSMPサポート、およびESP32-C3などの新しいSoCのサポートは、FreeRTOSディストリビューションではまだ利用できません。
Espressif Wi-FiSoCをAWSIoT Coreに接続する2つ目の方法は、MQTTとDeviceShadowのサポートを含むスタンドアロンライブラリであるEmbeddedC用のIoTDeviceSDKを使用することです。ただし、OTAやDevice Defenderなどの他のAWSサービスのサポートは、最近までこのエージェントでは利用できませんでした。
ただし、202009.00以降のIoT Device SDK for Embedded Cの新しいリリースには、さまざまなAWSサービス(AWS IoT MQTT Broker、Device Shadow、AWS IoT Jobs、AWS IoT Device Defender、AWS IoT Over)に接続するためのライブラリのより大きなセットが含まれています-the-air Update Libraryなど)。さらに、上記の新しいリリースでは、AWSライブラリのLTSリリースを個別に使用できるため、最大限の柔軟性が提供されます。このオプションにより、開発者はさまざまなEspressif SoCおよびバージョンのESP-IDFから自由に選択できるため、効果的な統合が可能になります。
そのため、Espressifボード向けのベータ版SDKの202103.00リリースのサポートを開始しました。
:https://github.com/espressif/esp-aws-iot/tree/release/beta
この記事の執筆時点では、ベータリリースは次のAWS標準LTSライブラリをサポートしています。
- coreHTTP
- coreJSON
- coreMQTT
- corePKCS11
および次のAWSLTSライブラリ:
- AWSIoTデバイスシャドウ
- AWSIoTジョブ
- AWS IoT OTA
これらのライブラリの使用を簡素化するために、次の例を利用できるようにしました。
ここで、Device Shadowライブラリとそれに対応する例を見て、どれだけ簡単に使用できるかを見てみましょう。
注:次のセクションでは、読者がWebコンソールからのAWS IoTの使用に精通しており、コンピューターにESP-IDFが設定されていることを前提としています。AWS IoT Coreをセットアップしていない場合は、ここに記載されている手順に従ってください。ESP-IDFをインストールしていない場合は、ここに記載されている手順に従ってください。
リポジトリのクローンを作成し、 release / beta
ブランチをチェックアウトして、サブモジュールを更新することから始めます。
次に、デバイスシャドウの例に移動し、AWS IoTエンドポイント、識別子、ポートを設定します。
注:この例は、ポート8883および443でテストされています。一般に、ポート8883はセキュアなMQTT接続用です。ポート443では、ALPNプロトコル名を持つALPN TLS拡張を使用する必要があります。これは、ポート8883を使用する場合は必要ありません。詳細については、https://aws.amazon.com/blogs/iot/mqtt-with-tlsを参照してください。
menuconfigを開き、必要な値を設定します。
ここに示すように、デバイス証明書を追加します。
最後に、サンプルをビルドしてEspressifSoCにフラッシュします。
これで、現在のステータスを説明するログが数秒ごとにコンソールに表示されるようになります。例の中のREADMEには、問題が発生した場合に備えて、より詳細な手順とトラブルシューティング手順が含まれています。
これらのライブラリのESP32プラットフォームへの移植はベータ版ですが、開発に使用する準備ができています。今後も例の追加や、利用可能な他のLTSライブラリの移植に取り組んでいきます。認定が完了すると、ベータ版は終了します。
ご不明な点がある場合や問題が発生した場合は、関連するGitHubリポジトリに問題を報告できます。
詳細はお問い合わせください。