亚马逊AWS Kinesis Video Streams with IOT mqtt的demo示例


title: 亚马逊AWS Kinesis Video Streams with IOT mqtt的demo示例

categories:[Linux C]

tags:[亚马逊云平台]

date: 2021/12/22

作者:hackett

微信公众号:加班猿


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

1、下载 C 中的 Kinesis Video Streams with IOT 开发工具包

  1. GitHub 将 AWS IoT Device SDK for Embedded C 下载到您的设备。

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

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

  2. 导航到该目录并签出最新版本。

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

    sudo apt-get install libssl-dev

2、demo应用程序配置

AWS IoT Device SDK for Embedded C 包含供您试用的示例应用程序。为了简单起见,本教程使用的是 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,则可使用此命令查找您的账户端点 URL。

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

    如果您尚未安装 AWS CLI,请打开 AWS IoT 控制台。在导航窗格中,依次选择 Manage (管理)Things (事物)。为您的设备选择 IoT 事物,然后选择 Interact(交互)。您的终端节点显示在事物详细信息页面的 HTTPS 部分中。

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

    • AWS_IOT_ENDPOINT

      您的私有终端节点。

    • CLIENT_CERT_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_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 命令,确认构建工具已安装并且您已准备好继续操作。

构建并运行示例应用程序

运行 AWS IoT Device SDK for Embedded C 示例应用程序

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

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

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

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

    cd bin
    ./mqtt_demo_mutual_auth 

收到 “来自 AWS IoT 控制台的问候” 表示设备现已使用 AWS IoT Device SDK for Embedded C 连接到 AWS IoT。

如果你觉得文章还不错,可以给个"三连",文章同步到个人微信公众号[加班猿]

我是hackett,我们下期见

记录一下生活的点滴,工作上遇到的问题以及学习上的各类笔记

47 声望
11 粉丝
0 条评论
推荐阅读
音视频技术栈思维导图
分享一张音视频技术栈思维导图,希望对即将入行音视频开发领域的同学有帮助。

加班猿阅读 478

C 程序眼中的 Unicode
去年写了一篇文章「在 C 程序中处理 UTF-8 字符串」,介绍了如何使用 GLib 提供的 UTF-8 字符串处理函数来实现基本的 UTF-8 文本处理。不过,GLib 是一个功能比较全面的 C 程序库,C 字符串处理仅仅是它的一个很...

garfileo3阅读 5.8k评论 5

滚蛋吧,正则表达式!
你是不是也有这样的操作,比如你需要使用「电子邮箱正则表达式」,首先想到的就是直接百度上搜索一个,然后采用 CV 大法神奇地接入到你的代码中?

良许3阅读 1.6k

亮点回顾|2022 re:Invent Recap:创新源动力——深度学习技术洞察与实践
2022 年 12 月 30 日,由 SegmentFault 思否社区联合亚马逊云科技共同举办的“2022 re:Invent Recap:创新源动力——深度学习技术洞察与实践”线上沙龙活动圆满落幕。

思否编辑部3阅读 9.7k

程序员适合创业吗?
大家好,我是良许。从去年 12 月开始,我已经在视频号、抖音等主流视频平台上连续更新视频到现在,并得到了不错的评价。每个视频都花了很多时间精力用心制作,欢迎大家关注哦~考虑到有些小伙伴没有看过我的视频,...

良许3阅读 1.3k

记一次使用gdb诊断gc问题全过程
上次解决了GC长耗时问题后,系统果然平稳了许多,这是之前的文章《GC耗时高,原因竟是服务流量小?》 然而,过了一段时间,我检查GC日志时,又发现了一个GC问题,如下: 从这个图中可以发现,我们GC有一些尖峰,...

扣钉日记2阅读 1.1k

封面图
使用kubeasz部署高可用kubernetes集群
本实验采用kubeasz作为kubernetes环境部署工具,它是一个基于二进制方式部署和利用ansible-playbook实现自动化来快速部署高可用kubernetes集群的工具,详细介绍请查看kubeasz官方。本实验用到的所有虚拟机默认软...

李朝阳4阅读 792

记录一下生活的点滴,工作上遇到的问题以及学习上的各类笔记

47 声望
11 粉丝
宣传栏