65.9K
CodeProject 正在变化。 阅读更多。
Home

将 Intel® IoT 网关连接到 Amazon Web Services

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2016年9月8日

CPOL

6分钟阅读

viewsIcon

20498

本指南将引导您完成将 IoT Cloud 存储库添加到 Intel® IoT 网关并添加对 Amazon Web Services 的支持,以便您可以使用自己选择的编程语言开始为该平台开发应用程序。

获取新的 Intel® IoT 开发人员套件,这是一个完整的软硬件解决方案,可让开发人员使用 Intel® Galileo 和 Intel® Edison 板创建令人兴奋的新解决方案。请访问 Intel® IoT 开发人员专区

必备组件

  • 运行 IDP 3.1 或更高版本的 Intel® IoT Gateway 技术,并具有互联网访问权限
  • 与 Intel® IoT 网关在同一网络上的开发设备(例如笔记本电脑)
  • 从您的开发设备访问 Intel® IoT Gateway 的终端权限
  • Amazon Web Services 账户:https://aws.amazon.com/

请参阅以下文档以设置您的 Intel® IoT 网关:https://software.intel.com/en-us/node/633284

将 IoT Cloud 仓库添加到您的 Intel® IoT Gateway

  1. 通过连接显示器和键盘,或通过 SSH(推荐)访问网关的控制台。
  2. 使用以下命令添加云存储库的GPG密钥
    rpm --import http://iotdk.intel.com/misc/iot_pub.key
  3. 在您的开发设备(例如笔记本电脑)上打开 Web 浏览器,然后在地址栏中输入网关的 IP 地址,加载 IoT 网关开发人员中心界面。
    提示:您可以使用 ifconfig 命令查找网关的 IP 地址。
  4. 使用您的凭据登录 IoT 网关开发人员中心界面。默认登录名和密码均为 root

  5. 添加 IoT Cloud 存储库。

  6. 转到 Packages 部分,然后单击 Add Repo + 按钮。

  7. 使用以下信息填充字段,然后单击 Add Repository

    Name: IoT_Cloud
    URL: http://iotdk.intel.com/repos/iot-cloud/wrlinux7/rcpl13

  8. 最后,单击 Update Repositories 按钮更新软件包列表。

为您的 Intel® IoT 网关添加 AWS* 支持

  1. 单击**添加软件包 +**按钮以调出您可以安装的软件包列表。

使用软件包窗口顶部的搜索框搜索 cloud-aws。单击 packagegroup-cloud-aws 条目旁边的 Install 按钮。

在 AWS* 控制台中设置您的用户

  1. 在浏览器中导航到 AWS* 控制台:https://console.aws.amazon.com,然后登录您的 AWS 账户。
  2. AWSIoTFullAccess 策略分配给您的用户。

  3. 单击控制台右上角的您的账户名称,然后从下拉列表中选择 Security Credentials

    如果出现上述弹出消息,请选择 Continue to Security Credentials

  4. 从左侧面板选择 Users 以获取您 AWS 账户中所有用户的列表。如果没有列出用户,请单击 Create New Users 按钮,输入您想要创建的用户名,然后单击 Create。然后,您的 AWS 用户将如上所示列出。

  5. 单击您的用户以显示摘要页面。选择 Permissions 选项卡,然后单击 Attach Policy

  6. 向下滚动策略列表,直到找到 AWSIoTFullAccess。选择此策略,然后单击 Attach Policy 将此策略添加到您的用户。
  7. 为您的设备创建访问密钥

  8. 返回用户摘要屏幕,选择 Security Credentials 选项卡,然后单击 Create Access Key

    此时,将出现一个窗口,显示您的唯一访问密钥对。Secret Access Key 在关闭此窗口后将不再显示,这意味着您需要生成一个新的访问密钥。

    警告:在完成下一部分之前,请不要关闭此窗口!

配置您的网关

提示:建议使用 SSH 连接到您的网关,或通过 Intel Developer Hub 界面访问命令行,以便更轻松地复制访问密钥。如果您直接访问网关的命令行,使用显示器和键盘,则需要在下一部分手动输入访问密钥和秘密访问密钥。

1. 将您的用户凭据添加到网关。

输入以下命令将您的用户凭据添加到网关
aws configure
出现提示时,输入以下信息

  • AWS Access Key ID:您刚刚生成的访问密钥 ID。
  • AWS Secret Access Key:与您刚刚生成的访问密钥配对的秘密访问密钥。
  • Default region name:在此处查看区域列表(例如,eu-west-1)http://docs.aws.amazon.com/general/latest/gr/rande.html#iot_region
  • Default output format:默认即可,按 Enter 继续。

2. 创建一个 thing。

在您的网关上输入以下命令,在您的 AWS* 实例中创建一个关联的 thing

aws iot create-thing --thing-name gateway-test-01

如果 thing 创建成功,您将看到类似以下的输出。

3. 创建一个允许策略

输入以下命令在您的 AWS 实例中创建一个新策略

aws iot create-policy --policy-name gateway-policy --policy-document '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action":["iot:*"], "Resource": ["*"] }] }'

如果策略成功添加,控制台输出应与以下类似。

4. 为 thing 创建密钥和证书。

在您的网关上输入以下命令,创建密钥和证书以与 AWS* 通信

wget -O rootCA.pem https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem

aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile cert.pem --private-key-outfile privkey.pem

您应该会看到类似以下的输出,后跟大量的 JSON 数据。在下一步中,我们只需要 certificateArn 值,它位于控制台输出的开头。

5. 将策略附加到证书。

您现在需要将我们刚刚生成的 thing 证书附加到您之前创建的策略。使用以下命令执行此操作

aws iot attach-principal-policy --policy-name ${POLICY_NAME} –principal ${CERTIFICATE_ARN}

确保输入您之前输入的策略名称(例如 gateway-policy)以及上一步中的 certificateArn。例如

aws iot attach-principal-policy --policy-name gateway-policy --principal arn:aws:iot:eu-west-1:681450608718:cert/122c86b84c6e0b919353882c03ca37385855897e16804438a20d44b3f9934cb3

6. 在 AWS* IoT 控制台中检查设备。

在您的浏览器中,通过单击页面左上角的 AWS 图标导航到 AWS* 控制台主屏幕。在右上角,检查是否选择了您配置网关时使用的区域(例如爱尔兰),然后从列表中选择 AWS IoT 服务。

您的 AWS IoT 仪表板现在应该包含您刚刚在网关上配置的 thing、策略和证书。

使用 Python 将数据发送到 AWS* IoT 服务

现在您的网关已配置好,您可以开始向 AWS IoT 发送数据了。其中包含许多 Python 示例,可供您用于测试。

在 AWS* 控制台中监视网关通信

  1. 从您的 AWS IoT 控制台选择页面右上附近的 MQTT Client

  2. 在 MQTT Client 窗口中,输入您之前分配给网关的 thing 名称(例如 gateway-test-01),然后单击 Connect

    如果 AWS 能够与您的网关通信,则连接状态指示器将变为绿色并显示 Connected

  3. 从 MQTT Client Actions 中选择 Subscribe to topic

  4. Subscription topic 字段中,输入 sdk/test/Python,然后单击 Subscribe

    从网关接收的消息现在将出现在左侧的消息框中。

从网关发送消息

  1. 输入以下命令以获取要发送消息到 AWS 的 endpoint
    aws iot describe-endpoint

    这将返回 endpointAddress,我们在下一步中需要它。因此,请复制引号中的地址。

  2. 导航到包含 AWS 示例的目录
    cd /usr/share/awsiotsdk/samples/python/
  3. 使用以下命令运行示例
    python basicPubSub.py -e [ENDPOINT] -r [ROOTCA_PATH] -c [CERT_PATH] –k [PRIVATE_KEY_PATH]
    • ENDPOINT:这是您在上一步中找到的端点地址。
    • ROOTCA_PATH:这是您之前下载的 rootCA.pem 文件的路径。
    • CERT_PATH:这是您之前生成的 cert.pem 文件的路径。
    • PRIVATE_KEY_PATH:这是您之前生成的 privkey.pem 文件的路径。

    所有证书和密钥都应该已经下载或创建在同一个路径中。默认情况下,这将是 /root$HOME,除非您在登录网关后更改了目录。

    下面是一个工作示例

    python basicPubSub.py -e a1gx5hswnkj6kf.iot.eu-west-1.amazonaws.com -r $HOME/rootCA.pem -c $HOME/cert.pem -k $HOME/privkey.pem

    如果示例应用程序正在正确运行,您将开始看到类似以上所示的控制台输出,表明正在 sdk/test/Python 主题上发送消息。

    要验证这一点,请返回浏览器,查看消息窗口。您应该会看到新消息显示出来,类似于下图中的消息。

    您的网关现已连接到 AWS* IoT,并能够发送和接收数据。

© . All rights reserved.