最初のステップ - FreeRTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

最初のステップ

重要

このページで言及している Amazon-FreeRTOS リポジトリは非推奨です。新しいプロジェクトを作成するときは、ここから始めることをお勧めします。現在非推奨の Amazon-FreeRTOS リポジトリをベースにした既存の FreeRTOS プロジェクトが既にある場合は、「Amazon FreeRTOS Github リポジトリ移行ガイド」を参照してください。

AWS IoT で FreeRTOS の使用を開始するには、AWS アカウント、AWS IoT へのアクセス許可を持つユーザー、FreeRTOS クラウドサービスが必要です。また、FreeRTOS をダウンロードして、AWS IoT と連携するようにボードの FreeRTOS デモプロジェクトを設定する必要があります。以下のセクションでは、これらの要件について説明します。

注記

AWS アカウントとアクセス許可を設定する

AWS アカウントへのサインアップ

AWS アカウントがない場合は、以下のステップを実行して作成します。

AWS アカウント にサインアップするには
  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを使用して検証コードを入力するように求められます。

    AWS アカウントにサインアップすると、AWS アカウントのルートユーザーが作成されます。ルートユーザーには、アカウントのすべての AWS のサービスとリソースへのアクセス権があります。セキュリティのベストプラクティスとして、管理ユーザーに管理アクセスを割り当てルートユーザーアクセスが必要なタスクを実行する場合にのみ、ルートユーザーを使用してください。

サインアップ処理が完了すると、AWS からユーザーに確認メールが送信されます。https://aws.amazon.com/[アカウント] をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

管理ユーザーの作成

AWS アカウント にサインアップしたら、AWS アカウントのルートユーザー をセキュリティで保護し、AWS IAM Identity Center を有効にして、管理ユーザーを作成します。これにより、日常的なタスクにルートユーザーを使用しないようにします。

AWS アカウントのルートユーザーをセキュリティで保護する
  1. [ルートユーザー] を選択し、AWS アカウント のメールアドレスを入力して、アカウント所有者として AWS Management Console にサインインします。次のページでパスワードを入力します。

    ルートユーザーを使用してサインインする方法については、「AWS サインイン User Guide」の「Signing in as the root user」を参照してください。

  2. ルートユーザーの多要素認証 (MFA) を有効にします。

    手順については、「IAM ユーザーガイド」の「AWS アカウント のルートユーザーの仮想 MFA デバイスを有効にする (コンソール)」を参照してください。

管理ユーザーを作成する
  1. IAM アイデンティティセンターを有効にします。

    手順については、「AWS IAM Identity Center ユーザーガイド」の「AWS IAM Identity Center の有効化」を参照してください。

  2. IAM アイデンティティセンターで、管理ユーザーに管理者アクセスを付与します。

    IAM アイデンティティセンターディレクトリ をアイデンティティソースとして使用するチュートリアルについては、「AWS IAM Identity Center ユーザーガイド」の「デフォルトの IAM アイデンティティセンターディレクトリ でユーザーアクセスを設定する」を参照してください。

管理ユーザーとしてサインインする
  • IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

    IAM アイデンティティセンターのユーザーを使用してサインインする方法については、「AWS サインイン User Guide」の「Signing in to the AWS access portal」を参照してください。

アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

AWS IoT で MCU ボードを登録する

AWS クラウドと通信するには、ボードを AWS IoT に登録する必要があります。AWS IoT でボードを登録する場合、以下が必要です。

AWS IoT ポリシー

AWS IoT ポリシーは、AWS IoT リソースへのアクセス権限をデバイスに付与します。これは AWS クラウド上に保存されます。

AWS IoT のモノ

AWS IoT のモノにより、AWS IoT でデバイスを管理できるようになります。これは AWS クラウド上に保存されます。

プライベートキーと X.509 証明書

プライベートキーと証明書により、AWS IoT でデバイスを認証できるようになります。

ボードを登録するには、次の手順に従ってください。

AWS IoT ポリシーを作成するには
  1. IAM ポリシーを作成するには、AWS リージョンと AWS アカウント番号を把握しておく必要があります。

    AWS アカウント番号を見つけるには、AWS マネジメントコンソールを開き、右上隅のアカウント名の下にあるメニューを展開し、[My Account] (アカウント) を選択します。アカウント ID が [Account Settings] (アカウント設定) に表示されます。

    AWS アカウントの AWS リージョンを確認するには、AWS Command Line Interface を使用します。AWS CLI をインストールするには、AWS Command Line Interface ユーザーガイドの手順に従います。AWS CLI をインストールしたら、コマンドプロンプトウィンドウを開き、次のコマンドを入力します。

    aws iot describe-endpoint --endpoint-type=iot:Data-ATS

    出力は次のようになります:

    { "endpointAddress": "xxxxxxxxxxxxxx-ats.iot.us-west-2.amazonaws.com" }

    この例では、リージョンは us-west-2 です。

    注記

    例に示されているように、ATS エンドポイントを使用することをお勧めします。

  2. AWS IoT コンソールを参照します。

  3. ナビゲーションペインで、[Secure] (保護) を選択し、[Policies] (ポリシー) を選択してから [Create] (作成) を選択します。

  4. ポリシーを識別するための名前を入力します。

  5. [Add statements] (ステートメントを追加) セクションで、[Advanced mode] (アドバンストモード) を選択します。次の JSON をポリシーエディタウィンドウにコピーして貼り付けます。aws-region および aws-account をお客様の AWS リージョンとアカウント ID に置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource":"arn:aws:iot:aws-region:aws-account-id:*" }, { "Effect": "Allow", "Action": "iot:Publish", "Resource": "arn:aws:iot:aws-region:aws-account-id:*" }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:aws-region:aws-account-id:*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:aws-region:aws-account-id:*" } ] }

    このポリシーは以下のアクセス権限を与えます。

    iot:Connect

    任意のクライアント ID を使用して AWS IoT メッセージブローカーに接続するためのアクセス許可をデバイスに付与します。

    iot:Publish

    MQTT トピックについて MQTT メッセージを発行するためのアクセス許可をデバイスに付与します。

    iot:Subscribe

    MQTT トピックフィルターをサブスクライブするためのアクセス許可をデバイスに付与します。

    iot:Receive

    MQTT トピックについて AWS IoT メッセージブローカーからメッセージを受信するためのアクセス許可をデバイスに付与します。

  6. [Create] (作成) を選択します。

デバイス用の IoT モノ、プライベートキー、証明書を作成するには
  1. AWS IoT コンソールを参照します。

  2. ナビゲーションペインで、[Manage] (管理)、[Things] (モノ) の順に選択します。

  3. アカウントに IoT モノが登録されていない場合は、[You don't have any things yet] (まだモノがありません) ページが表示されます。このページが表示された場合は、[Register a thing] (モノの登録) を選択します。それ以外の場合は、[Create] (作成) を選択します。

  4. [Creating AWS IoT things] (モノを作成する) ページで、[Create a single thing] (単一のモノを作成する) を選択します。

  5. [Add your device to the thing registry] (Thing Registry にデバイスを追加) ページで、モノの名前を入力してから [Next] (次へ) を選択します。

  6. [Add a certificate for your thing] (モノに証明書を追加) ページの [One-click certificate creation] (1-Click 証明書作成) から [Create certificate] (証明書の作成) を選択します。

  7. それぞれの [Download] (ダウンロード) リンクを選択して、プライベートキーと証明書をダウンロードします。

  8. 証明書を有効にするには、[Activate] (有効化) を選択します。証明書は、使用前にアクティブ化する必要があります。

  9. [Attach a policy] (ポリシーをアタッチ) を選択して、デバイスに AWS IoT オペレーションへのアクセス権限を付与するポリシーを証明書にアタッチします。

  10. 作成したポリシーを選択し、[Register thing] (モノの登録) を選択します。

ボードが AWS IoT に登録されたら、「FreeRTOS をダウンロードする」に進むことができます。

FreeRTOS をダウンロードする

FreeRTOS は、FreeRTOS GitHub リポジトリ からダウンロードできます。

FreeRTOS をダウンロードしたら、FreeRTOS デモを設定する の手順を実行できます。

FreeRTOS デモを設定する

ボードでデモをコンパイルして実行するには、FreeRTOS ディレクトリで一部の設定ファイルを編集する必要があります。

AWS IoT エンドポイントを設定するには

ボード上で実行するアプリケーションが正しいエンドポイントにリクエストを送信できるように、AWS IoT エンドポイントを FreeRTOS に渡す必要があります。

  1. AWS IoT コンソールを参照します。

  2. 左側のナビゲーションペインで [設定] を選択します。

    AWS IoT エンドポイントが [Device data endpoint] (デバイスデータエンドポイント) に表示されます。次のようになっているはずです。1234567890123-ats.iot.us-east-1.amazonaws.comこのエンドポイントを書きとめておきます。

  3. ナビゲーションペインで、[Manage] (管理)、[Things] (モノ) の順に選択します。

    デバイスには、AWS IoT のモノ名が必要です。この名前を書き留めておきます。

  4. demos/include/aws_clientcredential.h を開きます。

  5. 以下の定数に値を指定します。

    • #define clientcredentialMQTT_BROKER_ENDPOINT "Your AWS IoT endpoint";

    • #define clientcredentialIOT_THING_NAME "The AWS IoT thing name of your board"

Wi-Fi を設定するには

ボードが Wi-Fi 接続経由でインターネットに接続している場合は、ネットワークに接続するための Wi-Fi 認証情報を FreeRTOS に渡す必要があります。Wi-Fi がボードでサポートされていない場合は、以下のステップをスキップできます。

  1. demos/include/aws_clientcredential.h.

  2. 以下の #define 定数の値を指定します。

    • #define clientcredentialWIFI_SSID "The SSID for your Wi-Fi network"

    • #define clientcredentialWIFI_PASSWORD "The password for your Wi-Fi network"

    • #define clientcredentialWIFI_SECURITY Wi-Fi ネットワークのセキュリティタイプ

      有効なセキュリティタイプは以下の通りです。

      • eWiFiSecurityOpen (オープン、セキュリティなし)

      • eWiFiSecurityWEP (WEP セキュリティ)

      • eWiFiSecurityWPA (WPA セキュリティ)

      • eWiFiSecurityWPA2 (WPA2 セキュリティ)

AWS IoT の認証情報をフォーマットするには

FreeRTOS は、デバイスに代わって AWS IoT と正常に通信するために、登録済みのモノに関連付けられた AWS IoT 証明書とプライベートキー、およびそのアクセス許可ポリシーを必要とします。

注記

AWS IoT 認証情報を設定するには、デバイスを登録する際に AWS IoT コンソールからダウンロードしたプライベートキーと証明書が必要です。AWS IoT のモノとしてデバイスを登録した後で、デバイスの証明書を AWS IoT コンソールから取得することはできますが、プライベートキーは取得できません。

FreeRTOS は C 言語のプロジェクトであり、証明書とプライベートキーをプロジェクトに追加するには、特別な形式にする必要があります。

  1. ブラウザウィンドウで、tools/certificate_configuration/CertificateConfigurator.html を開きます。

  2. [Certificate PEM file] (証明書 PEM ファイル) で、AWS IoT コンソールからダウンロードした ID-certificate.pem.crt を選択します。

  3. [Private Key PEM file] (プライベートキー PEM ファイル) で、AWS IoT コンソールからダウンロードした ID-private.pem.key を選択します。

  4. [Generate and save aws_clientcredential_keys.h] (aws_clientcredential_keys.h の生成と保存) を選択して、ファイルを demos/include に保存します。これにより、ディレクトリ内の既存ファイルが上書きされます。

    注記

    証明書とプライベートキーは、デモ専用にハードコードされています。本番稼動レベルのアプリケーションでは、これらのファイルを安全な場所に保存する必要があります。

FreeRTOS の設定を完了した後は、ボードの入門ガイドを参照し、プラットフォームのハードウェアおよびソフトウェア開発環境をセットアップして、ボードでデモをコンパイルして実行できます。ボード固有の説明については、「ボード固有の入門ガイド」を参照してください。入門ガイドチュートリアルで使用されているデモアプリケーションは、coreMQTT Mutual Authentication デモで、demos/coreMQTT/mqtt_demo_mutual_auth.c にあります。