使用 适用于嵌入式 C 的 AWS IoT 设备开发工具包 - AWS IoT 核心
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 适用于嵌入式 C 的 AWS IoT 设备开发工具包

此部分描述如何运行 适用于嵌入式 C 的 AWS IoT 设备开发工具包。

安装适用于嵌入式 C 的 AWS IoT 设备开发工具包

适用于嵌入式 C 的 AWS IoT 设备开发工具包通常面向需要优化的 C 语言运行时的资源受限设备。您可以在任何操作系统上使用该开发工具包,并将其托管在任何处理器类型(例如,MCUs 和 MPUs)上。如果您有更多可用的内存和处理资源,我们建议您使用更高级的 AWS IoT 设备和移动 SDKs 之一(例如,C++、Java、JavaScript 和 Python)。

一般而言,适用于嵌入式 C 的 AWS IoT 设备开发工具包适用于使用 MCUs 或运行嵌入式操作系统的低端 MPUs 的系统。对于本节中的编程示例,我们假定您的设备使用的是 Linux。

  1. 从 适用于嵌入式 C 的 AWS IoT 设备开发工具包 将 下载到您的 GitHub设备。

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

    这将在当前目录中创建一个名为 aws-iot-device-sdk-embedded-c 的目录。

  2. 导航到该目录并签出最新版本。有关最新版本标签,请参阅 github.com/aws/aws-iot-device-sdk-embedded-C/tags

    cd aws-iot-device-sdk-embedded-C git checkout latest-release-tag
  3. 安装 OpenSSL 版本 1.1.0 或更高版本。开发库在通过程序包管理器安装时通常称为“libssl-dev”或“openssl-devel”。OpenSSL

    sudo apt-get install libssl-dev

示例应用程序配置

适用于嵌入式 C 的 AWS IoT 设备开发工具包 包含供您试用的示例应用程序。为简单起见,本教程使用 mqtt_demo_mutual_auth 应用程序,该应用程序说明了如何连接到 AWS IoT Core 消息代理并订阅和发布到 MQTT 主题。

  1. 将您在AWS IoT Core 入门中创建的证书和私有密钥复制到 build/bin/certificates 目录中。

    注意

    设备和根 CA 证书可能会过期或被吊销。如果这些证书过期或被吊销,您必须将新的 CA 证书或私有密钥和设备证书复制到您的设备上。

  2. 您必须使用个人 AWS IoT Core 终端节点、私有密钥、证书和根 CA 证书配置示例。导航到 aws-iot-device-sdk-embedded-c/demos/mqtt/mqtt_demo_mutual_auth 目录。

    如果您已安装 AWS CLI,则可使用 aws iot describe-endpoint --endpoint-type iot:Data-ATS 命令查找您的个人终端节点 URL。如果您尚未安装 AWS CLI,请打开 AWS IoT 控制台。在导航窗格中,依次选择 Manage (管理)Things (事物)。为您的IoT设备选择 事物,然后选择交互。您的终端节点显示在事物详细信息页面的 HTTPS 部分中。

  3. 打开 demo_config.h 文件并更新以下内容的值:

    AWS_IOT_ENDPOINT

    您的私有终端节点。

    客户端 CERT_KEY_PATH

    您的证书文件路径,例如,certificates/device.pem.crt"

    数据目录 (CLIENT_PRIVATE_KEY_PATH)

    您的私有密钥文件名,例如 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_KEY_PATH "certificates/my-device-cert.pem.crt" #define CLIENT_PRIVATE_KEY_PATH "certificates/my-device-private-key.pem.key" // =================================================
  4. 使用此命令检查您的设备上是否安装了 CMake。

    cmake --version

    如果您看到编译器的版本信息,则可以继续下一节。

    如果您收到错误或看不到任何信息,则需要使用此命令安装 cmake 程序包。

    sudo apt-get install cmake

    再次运行 cmake --version 命令,并确认 CMake 已安装,并且您已准备好继续操作。

  5. 使用此命令检查您的设备上是否安装了开发工具。

    gcc --version

    如果您看到编译器的版本信息,则可以继续下一节。

    如果出现错误或看不到任何编译器信息,则需要使用此命令安装 build-essential 软件包。

    sudo apt-get install build-essential

    再次运行 gcc --version 命令,确认构建工具已安装并且您已准备好继续操作。

构建并运行示例应用程序

运行适用于嵌入式 C 的 AWS IoT 设备开发工具包示例应用程序

  1. 导航到 aws-iot-device-sdk-embedded-c 并创建生成包目录。

    mkdir build && cd build
  2. 输入以下 CMake 命令以生成构建所需的 Makefile。

    cmake ..
  3. 输入以下命令以构建可执行应用程序文件。

    make
  4. 使用此命令运行 mqtt_demo_mutual_auth 应用程序。

    cd bin ./mqtt_demo_mutual_auth

    您应该可以看到类似于如下所示的输出内容:

您的 设备现已使用 AWS IoT 连接到 适用于嵌入式 C 的 AWS IoT 设备开发工具包。

您还可以使用 AWS IoT 控制台查看示例应用程序正在发布的 MQTT 消息。有关如何在 AWS IoT 控制台中使用 MQTT 客户端的信息,请参阅使用 AWS IoT MQTT 客户端查看 MQTT 消息