测试通信 (禁用了设备同步) - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

您正在查看Amazon IoT Greengrass Version 1.Amazon IoT Greengrass Version 2是最新的主要版本Amazon IoT Greengrass. 有关使用Amazon IoT Greengrass V2,请参阅Amazon IoT Greengrass Version 2开发人员指南.

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

测试通信 (禁用了设备同步)

  1. 请确保您的计算机和Amazon IoT Greengrass核心设备使用同一个网络连接到 Internet。

    1. 在存储库的Amazon IoT Greengrass核心设备,运行以下命令以查找其 IP 地址。

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

      ping IP-address

      类似于下面的输出指示了计算机与Amazon IoT Greengrass核心设备(0% 数据包丢失):

      
                        成功的 ping 命令输出。
      注意

      如果您无法对正在运行 Amazon IoT Greengrass 的 EC2 实例进行 ping 操作,请确保该实例的入站安全组规则允许 ICMP 流量用于回显请求消息。有关更多信息,请参阅 。在安全组中添加规则中的适用于 Linux 实例的 Amazon EC2 用户指南.

      在 Windows 主机上,在具有高级安全性应用程序的 Windows 防火墙中,您可能还需要启用一个允许入站回显请求的入站规则(例如,File and Printer Sharing (Echo Request - ICMPv4-In) (文件和打印机共享 (回显请求 - ICMPv4-In))),或创建一个。

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

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

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

      
                Amazon IoT终端节点值。
      注意
  3. 在您的计算机上(而不是Amazon IoT Greengrass核心设备),打开两个命令行(终端或命令提示符)窗口。一个窗口代表 GG_Switch 设备,另一个窗口代表 GG_TrafficLight 设备。

    1. 从 GG_Switch 设备窗口中,运行以下命令。

      • path-to-certs-folder 替换为包含证书、密钥和 Python 文件的文件夹的路径。

      • AWS_IOT_ENDPOINT 替换为您的终端节点。

      • 将两个 switch 实例替换为 GG_Switch 设备的文件名中的哈希值。

      cd path-to-certs-folder python lightController.py --endpoint AWS_IOT_ENDPOINT --rootCA root-ca-cert.pem --cert switch.cert.pem --key switch.private.key --thingName GG_TrafficLight --clientId GG_Switch
    2. 从 GG_TrafficLight 设备窗口中,运行以下命令。

      • path-to-certs-folder 替换为包含证书、密钥和 Python 文件的文件夹的路径。

      • AWS_IOT_ENDPOINT 替换为您的终端节点。

      • 将两个 light 实例替换为 GG_TrafficLight 设备的文件名中的哈希值。

      cd path-to-certs-folder python trafficLight.py --endpoint AWS_IOT_ENDPOINT --rootCA root-ca-cert.pem --cert light.cert.pem --key light.private.key --thingName GG_TrafficLight --clientId GG_TrafficLight

      每隔 20 秒,开关会将影子状态更新为 G、Y 和 R,并且灯会显示新状态,如下文所示。

      GG_Switch 输出:

      
                                    与 GG_Switch 相关联的输出的屏幕截图。

      GG_TrafficLight 输出:

      
                                    与 GG_TrafficLight 相关联的输出的屏幕截图。

    首次执行时,每个设备脚本都将运行Amazon IoT Greengrass发现服务连接到Amazon IoT Greengrass核心(通过互联网)。在设备发现了并成功连接到Amazon IoT Greengrass核心,未来的操作可以在本地执行。

    注意

    lightController.pytrafficLight.py 脚本将连接信息存储在 groupCA 文件夹中,该文件夹与脚本在同一文件夹中创建。如果您收到连接错误,请确保在ggc-host文件与核心的 IP 地址终端节点匹配。

  4. 在Amazon IoT控制台,选择您的Amazon IoT Greengrass组中,选择Devices,然后选择GG_TrafficLight.

    
                            突出显示了“GG_TrafficLIght”的“Devices (设备)”页面的屏幕截图。
  5. 选择影子。在 GG_Switch 更改状态后,影子状态中的该影子主题不应有任何更新。这是因为 GG_TrafficLight 设置为仅限本地影子而不是影子同步到云

  6. 在 GG_Switch (lightController.py) 设备窗口中按 Ctrl + C。您应会看到 GG_TrafficLight (trafficLight.py) 窗口停止接收状态更改消息。

    保持这些窗口打开,以便您可以在下一部分中运行这些命令。