AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

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

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

GitHub 将适用于嵌入式 C 的 AWS IoT 开发工具包下载到您的 Raspberry Pi:

git clone https://github.com/aws/aws-iot-device-sdk-embedded-c.git -b release

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

mbed TLS 网站将 mbed TLS 下载到您的 Raspberry Pi。

使用 cd 转到 /home/pi/Downloads 目录。使用 tar -xvf mbedtls-2.16.3-apache.tgz 展开 mbedtls-2.16.3-apache.tgz 文件。

使用以下命令将 mbedtls-2.16.3 的内容复制到 aws-iot-device-sdk-embedded-C/external_libs/mbedTLS 目录中:

mv ~/Downloads/mbedtls-2.16.3 ~/aws-iot-device-sdk-embedded-c/external_libs/mbedTLS

示例应用程序配置

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

  1. 将您在为您的 Raspberry Pi 创建 AWS IoT 事物中创建的证书、私有密钥和根 CA 证书复制到 aws-iot-device-sdk-embedded-C/certs 目录中。

    注意

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

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

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

  3. 打开 aws_iot_config.h 文件并在 Get from console 部分更新以下各项的值:

    AWS_IOT_MQTT_HOST

    您的私有终端节点。

    AWS_IOT_MY_THING_NAME

    您的事物名称。

    AWS_IOT_ROOT_CA_FILENAME

    您的根 CA 证书。

    AWS_IOT_CERTIFICATE_FILENAME

    您的证书。

    AWS_IOT_PRIVATE_KEY_FILENAME

    您的私有密钥。

    例如:

    // Get from console // ================================================= #define AWS_IOT_MQTT_HOST "a22j5sm6o3yzc5.iot.us-east-1.amazonaws.com" #define AWS_IOT_MQTT_PORT 8883 #define AWS_IOT_MQTT_CLIENT_ID "MyRaspberryPi" #define AWS_IOT_MY_THING_NAME "MyRaspberryPi" #define AWS_IOT_ROOT_CA_FILENAME "root-CA.crt" #define AWS_IOT_CERTIFICATE_FILENAME "device.pem.crt" #define AWS_IOT_PRIVATE_KEY_FILENAME "private.pem.key" // =================================================

运行示例应用程序

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

  1. 使用包含的生成文件编译 subscribe_publish_sample_app

    make -f Makefile

    此操作将生成可执行的文件。

  2. 运行 subscribe_publish_sample_app。您应该可以看到类似于如下所示的输出内容:

现在 Raspberry Pi 已经通过适用于嵌入式 C 的 AWS IoT 设备开发工具包连接到 AWS IoT。