zoukankan      html  css  js  c++  java
  • AWS IoT Greengrass 入门-模块4:在 AWS IoT Greengrass 组中与设备交互

    AWS IoT Greengrass 入门-模块4:在 AWS IoT Greengrass 组中与设备交互

    在此模块中,一个 Greengrass 设备将向 Greengrass 组中的另一个设备发送“Hello World”消息 。

    在 AWS IoT Greengrass 组中创建 AWS IoT 设备

    1. 在 AWS IoT 控制台中,依次选择 (Greengrass)(组),然后选择您的组。

    2. 在组配置页面中,选择(设备),然后选择(添加第一个设备)

    3. 选择(创建新设备)

    4. 将此设备注册为 HelloWorld_Publisher,然后选择下一步

    5. 对于(一键式操作),选择(使用默认设置)。此选项生成一个具有附加 AWS IoT 策略以及公有密钥和私有密钥的设备证书。

    6. 解压缩 hash-setup.tar.gz 文件

    7. 选择 (添加设备),重复步骤 (3 - 7) 以向组中添加新设备。

      将此设备命名为 HelloWorld_Subscriber。将设备的证书和密钥下载到您的计算机中。将它们保存并解压缩到您为 HelloWorld_Publisher 创建的同一文件夹中。

      同样,记下 HelloWorld_Subscriber 设备的文件名中的常见 hash 组分。

      现在,您的 AWS IoT Greengrass 组 中应该有两个设备:

    8. 下载 Amazon Root CA 1 ATS 根 CA 证书 ,将根 CA 证书作为 root-ca-cert.pem 保存到两个设备的证书和密钥所在的同一文件夹中。所有这些文件应位于计算机(而非 AWS IoT Greengrass Core 设备)上的某个文件夹中。

    配置订阅

    在本步骤中,您将使 HelloWorld_Publisher 设备能够向 HelloWorld_Subscriber 设备发送 MQTT 消息。

    1. 在组配置页面中,选择 (订阅),然后选择 (添加订阅)

    2. 配置订阅。

      • (选择源) 下面,选择 (设备),然后选择 HelloWorld_Publisher
      • (选择目标) 下面,选择 (设备),然后选择 HelloWorld_Subscriber
      • 选择 (下一步)

    3. 对于 (主题筛选条件),输入 hello/world/pubsub,选择 Next (下一步),然后选择 Finish (完成)

      注意

      您可以删除前面的模块中的订阅。在组的 Subscriptions (订阅) 页面上,选择与订阅关联的省略号 (),然后选择 Delete (删除)

    4. 确保 AWS IoT Greengrass 守护程序正在运行。

    5. 在组配置页面上,从 (操作) 中选择 (部署)

    安装 适用于 Python 的 AWS IoT 设备开发工具包

    AWS IoT 设备可以使用 适用于 Python 的 AWS IoT 设备开发工具包 来与 AWS IoT 和 AWS IoT Greengrass Core 设备通信(使用 Python 编程语言)。

    1. 要将开发工具包与所有必需的组件一起安装到您的计算机上。

      • 打开命令终端并运行以下命令:

        python --version
        

        如果没有返回版本信息,或者 Python 2 的版本号小于 2.7 或 Python 3 的版本号小于 3.3,则按照下载 Python 中的说明安装 Python 2.7+ 或 Python 3.3+。

      • 适用于 Python 的 AWS IoT 设备开发工具包 下载为 zip 文件并将其解压缩到您计算机上的适当位置。 并解压。

      • 请记下其中包含 setup.py 文件的文件夹的文件路径:在下一个步骤中,此文件路径将由 path-to-SDK-folder 指示。

      • 命令终端中运行以下命令:

        cd 'path-to-SDK-folder'
        python setup.py install
        

    2. 安装适用于 Python 的 AWS IoT 设备开发工具包后,导航到 samples 文件夹,打开 greengrass 文件夹,然后将 basicDiscovery.py 文件复制到包含 HelloWorld_Publisher 和 HelloWorld_Subscriber 设备证书的文件夹中,如以下示例中所示。

    测试通信

    1. 确保您的计算机和 AWS IoT Greengrass Core 设备已使用同一个网络连接到 Internet。

      • 在 AWS IoT Greengrass Core 设备上,运行以下命令以查找其 IP 地址。

        hostname -I
        
      • 在自己计算机的命令终端上,使用核心的 IP 地址运行以下命令。可以使用 Ctrl + C 停止 ping 命令。

        ping 'IP-address'
        

        类似于下面的输出指示了计算机与 AWS IoT Greengrass Core设备之间的通信成功(数据包丢失为 0%):

    2. 获取您的 AWS IoT 终端节点。

      1. (AWS IoT 控制台)的导航窗格中,选择 (设置)

      2. 设置 下方,记录终端节点的值。您可以使用此值在以下步骤中替换命令中的 AWS_IOT_ENDPOINT 占位符。

      注意

      确保您的终端节点与证书类型对应

    3. 在您的计算机(不是 AWS IoT Greengrass Core 设备)上,打开两个 (终端或命令提示符)窗口。一个窗口代表 HelloWorld_Publisher 设备,另一个窗口代表 HelloWorld_Subscriber 设备。

      执行时,basicDiscovery.py 尝试在其终端节点处 AWS IoT Greengrass Core 的位置上收集信息。在设备发现并成功连接到核心后,将会存储此信息。这将允许未来的消息收发和操作可以在本地执行(无需 Internet 连接)。

      注意

      您可以从包含 basicDiscovery.py 文件的文件夹运行以下命令,以查看详细的脚本使用信息:

      python basicDiscovery.py --help
      
    4. 从 HelloWorld_Publisher 设备窗口运行以下命令。

      • path-to-certs-folder 替换为包含证书、密钥和 basicDiscovery.py 的文件夹的路径。
      • AWS_IOT_ENDPOINT 替换为您的终端节点。
      • 将两个 publisher 实例替换为 HelloWorld_Publisher 设备的文件名中的哈希值。
      cd 'path-to-certs-folder'
      python basicDiscovery.py --endpoint 'AWS_IOT_ENDPOINT' --rootCA root-ca-cert.pem --cert 'publisher'.cert.pem --key 'publisher'.private.key --thingName HelloWorld_Publisher --topic 'hello/world/pubsub' --mode publish --message 'Hello, World! Sent from HelloWorld_Publisher'
      

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

      注意

      如果脚本返回 error: unrecognized arguments 消息,请针对 --topic--message 参数将单引号更改为双引号,并再次运行该命令。

      如果连接出错,尝试以下步骤:

      手动输入终端节点

      1. 依次选择 Greengrass和您的组。
      2. 选择 (设置)
      3. 对于 (本地连接检测),选择 (手动管理连接信息),然后选择 (查看核心的特定终端节点信息)
      4. 选择您的核心,然后选择(连接)
      5. 选择(编辑),确保只有一个终端节点值。该值必须是 AWS IoT Greengrass Core 设备的端口 8883 的 IP 地址终端节点(例如,192.168.1.4)。
      6. 选择 (更新)
    5. 从 HelloWorld_Subscriber 设备窗口运行以下命令。

      • path-to-certs-folder 替换为包含证书、密钥和 basicDiscovery.py 的文件夹的路径。
      • AWS_IOT_ENDPOINT 替换为您的终端节点。
      • 将两个 subscriber 实例替换为 HelloWorld_Subscriber 设备的文件名中的哈希值。
      cd path-to-certs-folder
      python basicDiscovery.py --endpoint 'AWS_IOT_ENDPOINT' --rootCA root-ca-cert.pem --cert 'subscriber'.cert.pem --key 'subscriber'.private.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribe
      

      您应该看到以下输出:

  • 相关阅读:
    CF948D Perfect Security
    bzoj 1015 [JSOI2008]星球大战starwar
    XJOI 7191 Genius ACM
    bzoj 1491 [NOI2007]社交网络
    CF1066F Yet another 2D Walking
    iOS main函数讲解
    iOS 邓白氏编码的申请
    iOS 开发与H5交互(JavaScriptCore框架的使用)
    iOS 开发之RunLoop
    iOS 蓝牙开发之(CoreBlueTooth)
  • 原文地址:https://www.cnblogs.com/--Simon/p/11898961.html
Copyright © 2011-2022 走看看