

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

# 教學課程：使用 適用於 Embedded C 的 AWS IoT Device SDK
<a name="iot-embedded-c-sdk"></a>

本節說明如何執行 適用於 Embedded C 的 AWS IoT Device SDK。

**Topics**
+ [Step1：安裝 適用於 Embedded C 的 AWS IoT Device SDK](#install-embedded-c-sdk)
+ [步驟 2：設定範例應用程式](#iot-c-sdk-app-config)
+ [步驟 3：建置並執行範例應用程式](#iot-c-sdk-app-run)

## Step1：安裝 適用於 Embedded C 的 AWS IoT Device SDK
<a name="install-embedded-c-sdk"></a>

通常以需要最佳化 C 語言執行時間的資源限制裝置 適用於 Embedded C 的 AWS IoT Device SDK 為目標。您可以在任何作業系統上使用軟體開發套件，並將其裝載在任何處理器類型 (例如 MCU 和 MPU) 上。如果您有更多可用的記憶體和處理資源，建議您使用較高順序的裝置 AWS IoT 和行動 SDKs （例如 C\$1\$1、Java、JavaScript 和 Python)。

一般而言， 適用於 Embedded C 的 AWS IoT Device SDK 適用於使用 MCUs的系統或執行內嵌作業系統的低階 MPUs。在本節中的程式設計範例，我們假設您的裝置使用 Linux。

**Example**  

1. 從 [GitHub](https://github.com/aws/aws-iot-device-sdk-embedded-C) 將 下載 適用於 Embedded C 的 AWS IoT Device SDK 至您的裝置。

   ```
   git clone https://github.com/aws/aws-iot-device-sdk-embedded-c.git --recurse-submodules
   ```

   這會在目前目錄中建立名為 `aws-iot-device-sdk-embedded-c` 的目錄。

1. 導航至該目錄並查看最新版本。請參閱[ github.com/aws/aws-iot-device-sdk-embedded-C/tags](https://github.com/aws/aws-iot-device-sdk-embedded-C/tags)，取得最新版本標籤。

   ```
   cd aws-iot-device-sdk-embedded-c
   git checkout latest-release-tag
   ```

1. 安裝 OpenSSL 1.1.0 版或更新版本。當透過套件管理工具進行安裝時，OpenSSL 開發程式庫通常會稱為 "libssl-dev" 或 "openssl-devel"。

   ```
   sudo apt-get install libssl-dev
   ```

## 步驟 2：設定範例應用程式
<a name="iot-c-sdk-app-config"></a>

 適用於 Embedded C 的 AWS IoT Device SDK 包含供您嘗試的範例應用程式。為了簡化，本教學課程使用 `mqtt_demo_mutual_auth` 應用程式，說明如何連線至 AWS IoT Core 訊息中介裝置，以及訂閱和發佈至 MQTT 主題。

1. 將您建立於 [AWS IoT Core 教學課程入門](iot-gs.md) 中的憑證和私有金鑰複製至 `build/bin/certificates` 目錄中。
**注意**  
裝置和根憑證授權機構憑證會有過期或遭撤銷的可能。若這些憑證過期或遭到撤銷，您必須將新的憑證授權機構憑證或私有金鑰和裝置憑證複製到裝置上。

1. 您必須使用個人 AWS IoT Core 端點、私有金鑰、憑證和根 CA 憑證來設定範例。導覽至 `aws-iot-device-sdk-embedded-c/demos/mqtt/mqtt_demo_mutual_auth` 目錄。

   如果您 AWS CLI 已安裝 ，您可以使用此命令來尋找帳戶的端點 URL。

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

   如果您沒有 AWS CLI 安裝 ，請開啟您的 [AWS IoT 主控台](https://console.aws.amazon.com/iot/home)。在導覽窗格中，選擇 **Manage (管理)**，然後選擇 **Things (物件)**。為您的裝置選擇 IoT 物件，然後選擇 **Interact** (互動)。您的端點會顯示在物件詳細資料頁面的 **HTTPS** 區段中。

1. 開啟 `demo_config.h` 檔案，並更新下列內容的值：  
AWS\$1IOT\$1ENDPOINT  
您的個人端點。  
CLIENT\$1CERT\$1PATH  
您的憑證檔案路徑，例如 `certificates/device.pem.crt"`。  
CLIENT\$1PRIVATE\$1KEY\$1PATH  
您的私有金鑰檔案名稱，例如`certificates/private.pem.key`。

   例如：

   ```
   // Get from demo_config.h
   // =================================================
   #define AWS_IOT_ENDPOINT               "my-endpoint-ats.iot.us-east-1.amazonaws.com"
   #define AWS_MQTT_PORT                  8883
   #define CLIENT_IDENTIFIER              "testclient"
   #define ROOT_CA_CERT_PATH              "certificates/AmazonRootCA1.crt"
   #define CLIENT_CERT_PATH               "certificates/my-device-cert.pem.crt"
   #define CLIENT_PRIVATE_KEY_PATH        "certificates/my-device-private-key.pem.key"
   // =================================================
   ```

1. 使用此命令來檢查您的裝置是否已安裝 CMake。

   ```
   cmake --version
   ```

   若您看見編譯器的版本資訊，則可繼續到下一節。

   若發生錯誤，或者沒看見資任何訊，您將需要使用此命令來安裝 cmake 套件。

   ```
   sudo apt-get install cmake
   ```

   再次執行 **cmake --version** 命令，確認已安裝 CMake，備妥繼續。

1. 使用此命令來檢查您的裝置是否已安裝開發工具。

   ```
   gcc --version
   ```

   若您看見編譯器的版本資訊，則可繼續到下一節。

   如果發生錯誤，或者沒看見編譯器資訊，您將需要使用此命令來安裝 `build-essential` 套件。

   ```
   sudo apt-get install build-essential
   ```

   再次執行 **gcc --version** 命令，確認已安裝建置工具，準備好繼續。

## 步驟 3：建置並執行範例應用程式
<a name="iot-c-sdk-app-run"></a>

此程序說明如何在您的裝置上產生`mqtt_demo_mutual_auth`應用程式，並使用 將其連接至[AWS IoT 主控台](https://console.aws.amazon.com/iot/home) 適用於 Embedded C 的 AWS IoT Device SDK。

**執行 適用於 Embedded C 的 AWS IoT Device SDK 範例應用程式**

1. 導覽至 `aws-iot-device-sdk-embedded-c`，建立一個建置目錄。

   ```
   mkdir build && cd build
   ```

1. 輸入下列 CMake 命令，產生需要建置的 Makefile。

   ```
   cmake ..  
   ```

1. 輸入下列命令來建置可執行的應用程式檔案。

   ```
   make
   ```

1. 使用此命令執行 `mqtt_demo_mutual_auth` 應用程式。

   ```
   cd bin
   ./mqtt_demo_mutual_auth
   ```

   您應該會看到類似下列的輸出：  
![\[執行 適用於 Embedded C 的 AWS IoT Device SDK 範例應用程式的命令列輸出。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/successful-run2.png)

您的裝置現在已 AWS IoT 使用 連線至 適用於 Embedded C 的 AWS IoT Device SDK。

您也可以使用 AWS IoT 主控台來檢視範例應用程式正在發佈的 MQTT 訊息。如需關於如何在 [AWS IoT 主控台](https://console.aws.amazon.com/iot/home)中使用 MQTT 用戶端的資訊，請參閱 [使用 MQTT 用戶端檢視 AWS IoT MQTT 訊息](view-mqtt-messages.md)。