

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 首要步驟
<a name="freertos-prereqs"></a>

**重要**  <a name="deprecation-message-general"></a>
此頁面是指已棄用的 Amazon-FreeRTOS 儲存庫。我們建議您在建立新專案時從[這裡開始](freertos-getting-started-modular.md)。如果您已經有以現在已棄用的 Amazon-FreeRTOS 儲存庫為基礎的現有 FreeRTOS 專案，請參閱 [Amazon-FreeRTOS Github 儲存庫遷移指南](github-repo-migration.md)。 FreeRTOS 

若要開始使用 FreeRTOS AWS IoT，您必須擁有 AWS 帳戶、具有存取許可的使用者， AWS IoT 以及 FreeRTOS 雲端服務。您還必須下載 FreeRTOS 並設定主機板的 FreeRTOS 示範專案來使用 AWS IoT。以下章節將逐步引導您完成這些要求。

**注意**  
如果您使用的是 Espressif ESP32-DevKitC、ESP-WROVER-KIT 或 ESP32-WROOM-32SE，請略過這些步驟並前往[Espressif ESP32-DevKitC 和 ESP-WROVER-KIT 入門](getting_started_espressif.md)。
如果您使用的是 Nordic nRF52840-DK，請略過這些步驟並前往[Nordic nRF52840-DK 入門](getting_started_nordic.md)。

1. [設定 AWS 您的帳戶和許可](#freertos-account-and-permissions) 

1. [向 註冊您的 MCU 電路板 AWS IoT](#get-started-freertos-thing)

1. [下載 FreeRTOS](#freertos-download)

1. [設定 FreeRTOS 示範](#freertos-configure)

## 設定 AWS 您的帳戶和許可
<a name="freertos-account-and-permissions"></a>

### 註冊 AWS 帳戶
<a name="sign-up-for-aws"></a>

若要開始使用 AWS，您需要 AWS 帳戶。如需建立 的相關資訊 AWS 帳戶，請參閱《 *AWS 帳戶管理 參考指南*》中的 [入門 AWS 帳戶](https://docs.aws.amazon.com//accounts/latest/reference/getting-started.html)。

若要提供存取權，請新增權限至您的使用者、群組或角色：
+ 中的使用者和群組 AWS IAM Identity Center：

  建立權限合集。請按照《*AWS IAM Identity Center 使用者指南*》中的[建立權限合集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)說明進行操作。
+ 透過身分提供者在 IAM 中管理的使用者：

  建立聯合身分的角色。遵循《*IAM 使用者指南*》的[為第三方身分提供者 (聯合) 建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)中的指示。
+ IAM 使用者：
  + 建立您的使用者可擔任的角色。請按照《*IAM 使用者指南*》的[為 IAM 使用者建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)中的指示。
  + (不建議) 將政策直接附加至使用者，或將使用者新增至使用者群組。請遵循《*IAM 使用者指南*》的[新增許可到使用者 (主控台)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) 中的指示。

## 向 註冊您的 MCU 電路板 AWS IoT
<a name="get-started-freertos-thing"></a>

您的主機板必須向 註冊 AWS IoT ，才能與 AWS 雲端通訊。若要向 註冊您的電路板 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 管理主控台](https://console.aws.amazon.com/)，找到並展開右上角您帳戶名稱下方的選單，然後選擇**我的帳戶**。您的帳戶 ID 會顯示在 **Account Settings (帳戶設定)** 下方。

   若要尋找 AWS 帳戶的 AWS 區域，請使用 AWS Command Line Interface。若要安裝 AWS CLI，請遵循 [AWS Command Line Interface 使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)中的指示。安裝 之後 AWS CLI，請開啟命令提示視窗，然後輸入下列命令：

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

   輸出應如下所示：

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

   在此範例中，區域為 `us-west-2`。
**注意**  
我們建議使用 ATS 端點，如範例所示。

1. 瀏覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iotv2/)。

1. 在導覽窗格中，選擇**安全**，選擇**政策**，然後選擇**建立**。

1. 輸入可識別政策的名稱。

1. 在 **Add statements (新增陳述式)** 區段中，選擇 **Advanced mode (進階模式)**。將下列 JSON 複製並貼入政策編輯器視窗。將 `{{aws-region}}` 和 取代`{{aws-account}}`為您的 AWS 區域和帳戶 ID。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iot:Connect",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Publish",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Subscribe",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Receive",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           }
       ]
   }
   ```

------

   此政策可授予下列許可：  
**`iot:Connect`**  
授予您的裝置許可，以使用任何用戶端 ID 連線至 AWS IoT 訊息中介裝置。  
**`iot:Publish`**  
授予裝置能發佈任何 MQTT 主題之 MQTT 訊息的許可。  
**`iot:Subscribe`**  
授予裝置能訂閱任何 MQTT 主題篩選條件的許可。  
**`iot:Receive`**  
授予裝置能接收 AWS IoT 訊息中介裝置中任何 MQTT 主題訊息的許可。

1. 選擇**建立**。

**為裝置建立 IoT 實物、私有金鑰和憑證**

1. 瀏覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iotv2/)。

1. 在導覽窗格中，選擇 **Manage (管理)**，然後選擇 **Things (實物)**。

1. 如果您的帳戶中尚未註冊任何 IoT 實物，則會顯示 **You don't have any things yet (尚無任何實物)** 頁面。如果您看到此頁面，請選擇 **Register a thing (註冊實物)**。否則，請選擇 **Create** (建立)。

1. 在**建立 AWS IoT 物件**頁面上，選擇**建立單一物件**。

1. 在 **Add your device to the thing registry (將您的裝置新增至物件登錄檔)** 頁面中，輸入物件的名稱，然後選擇 **Next (下一步)**。

1. 在 **Add a certificate for your thing (新增物件的憑證)** 頁面中，選擇 **One-click certificate creation (按一下建立憑證)** 下方的 **Create certificate (建立憑證)**。

1. 選擇各個項目的 **Download (下載)** 連結，下載您的私有金鑰和憑證。

1. 選擇 **Activate (啟用)** 以啟用您的憑證。需先啟用憑證才可開始使用。

1. 選擇**連接政策**，將政策連接至您的憑證，以授予裝置對 AWS IoT 操作的存取權。

1. 選擇您剛建立的政策，然後選擇 **Register thing (註冊實物)**。

向 註冊電路板後 AWS IoT，您可以繼續 [下載 FreeRTOS](#freertos-download)。

## 下載 FreeRTOS
<a name="freertos-download"></a>

您可以從 FreeRTOS [ GitHub 儲存庫下載 FreeRTOS](https://github.com/freertos/freertos)。

下載 FreeRTOS 之後，您可以繼續 [設定 FreeRTOS 示範](#freertos-configure)。

## 設定 FreeRTOS 示範
<a name="freertos-configure"></a>

您必須先編輯 FreeRTOS 目錄中的一些組態檔案，才能在電路板上編譯和執行任何示範。

**設定您的 AWS IoT 端點**

您必須將 AWS IoT 端點提供給 FreeRTOS，以便在電路板上執行的應用程式才能將請求傳送至正確的端點。

1. 瀏覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iotv2/)。

1. 在左側的導覽窗格中，選擇**設定**。

   您的 AWS IoT 端點會顯示在 **裝置資料端點**中。它看起來應該會像這樣：`{{1234567890123}}-ats.iot.{{us-east-1}}.amazonaws.com`。記下此端點。

1. 在導覽窗格中，選擇 **Manage (管理)**，然後選擇 **Things (實物)**。

   您的裝置應該有 AWS IoT 物件名稱。記下此名稱。

1. 打開 `demos/include/aws_clientcredential.h`。

1. 指定以下常數的值：
   + `#define clientcredentialMQTT_BROKER_ENDPOINT "{{Your AWS IoT endpoint}}";`
   + `#define clientcredentialIOT_THING_NAME "{{The AWS IoT thing name of your board}}"`

**設定您的 Wi-Fi**

如果您的電路板透過 Wi-Fi 連線連線至網際網路，您必須向 FreeRTOS 提供 Wi-Fi 登入資料，才能連線至網路。如果您的主機板不支援 Wi-Fi，您可以略過這些步驟。

1. `demos/include/aws_clientcredential.h`.

1. 指定以下 `#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`。

1. 在 **Certificate PEM file (憑證 PEM 檔案)** 下方，選擇您從 AWS IoT 主控台下載的 `{{ID}}-certificate.pem.crt`。

1. 在 **Private Key PEM file (私有金鑰 PEM 檔案)** 下方，選擇您從 AWS IoT 主控台下載的 `{{ID}}-private.pem.key`。

1. 選擇 **Generate and save aws\_clientcredential\_keys.h (產生並儲存 aws\_clientcredential\_keys.h)**，並將檔案儲存到 `demos/include` 中。這會覆寫目錄中現有的檔案。
**注意**  
將憑證和私有金鑰硬式編碼，僅作示範用途。生產層級應用程式必須將這些檔案存放在安全的位置。

設定 FreeRTOS 之後，您可以繼續參閱主機板入門指南，以設定平台的硬體及其軟體開發環境，然後在主機板上編譯並執行示範。如需主機板特定的指示，請參閱[主機板特定的入門指南](getting-started-guides.md)。入門教學中使用的示範應用程式是 coreMQTT 相互身分驗證示範，位於 `demos/coreMQTT/mqtt_demo_mutual_auth.c`。