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

在 Intel® Edison 板上设置 AWS IoT 设备 SDK

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2015年11月13日

CPOL

4分钟阅读

viewsIcon

9682

本教程将引导您完成安装 AWS IoT SDK 的过程,并展示如何进行基本的 MQTT 调用。

获取新的 Intel® IoT Developer Kit,这是一个完整的硬件和软件解决方案,使开发人员能够使用 Intel® Galileo 和 Intel® Edison 主板创建令人兴奋的新解决方案。请访问 Intel® 物联网开发者专区

本教程将引导您完成安装 AWS IoT SDK 的过程,并展示如何进行基本的 MQTT 调用。在开始连接您的 Intel® Edison 主板之前,您需要确保已安装最新的操作系统映像。为此,请按照您主机机器的入门说明进行操作:WindowsMacLinux。按照标准的 Intel® Edison 设置说明操作后,您需要从您的计算机建立与设备的串行连接。一旦与您的 Intel® Edison 主板建立了串行连接(命令行),您就可以使用以下说明继续安装 AWS IoT SDK。

开始之前…

  • 确保您已运行 configure_edison --setup 命令来设置您的主板
  • 确保您的 Intel® Edison 主板已通过本地 Wi-Fi 网络在线(应该在 configure_edison 设置过程中发生)

安装 AWS CLI

AWS CLI 是一种从您的主板管理 AWS 服务的方式。您首先需要它来下载 SDK。

首先,您需要安装 pip(Python 包管理器)

curl https://bootstrap.pypa.io/ez_setup.py -o - | python
easy_install pip

接下来,使用 pip 安装 AWS CLI

pip install awscli

注意:为了查看帮助文件(“aws iot help”),您需要安装 Groff 和一个非 BusyBox 版本的 less。

对于 Groff

wget http://ftp.gnu.org/gnu/groff/groff-1.22.3.tar.gz
tar -zxvf groff-1.22.3.tar.gz
cd groff-1.22.3

./configure

make
make install
export PATH=$PATH:/usr/local/bin/
cd ~

对于 Less

首先重命名旧版本的 less

mv /usr/bin/less /usr/bin/less-OLD

然后安装新版本的 less

wget http://www.greenwoodsoftware.com/less/less-458.zip
unzip less-458.zip
cd less-458
chmod 777 /*
./configure
make
make install
cd ~

要确保所有内容都已正确安装,请运行 iot help 文件

aws iot help

获取 AWS 凭证

此时,您应该已安装 AWS CLI。按照 http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html#cli-signup 中的说明,从 AWS 控制台创建新用户并获取凭证。一旦您有了访问 ID 和密钥,就可以使用以下命令配置 AWS 并输入 ID 和密钥:

aws configure

注意:对于默认区域,您必须输入 us-east-1 才能配置 AWS IoT。默认格式可以保留为 json

为了获得下载 AWS IoT 工具的权限,您需要将管理员帐户策略与您创建的用户关联。为此,请转到 IAM 控制台中的用户面板,选择您创建的用户,附加策略,然后选择管理员帐户。

生成证书

首先创建一个文件夹来存储您的证书

mkdir aws_certs

cd aws_certs

使用 openssl 生成私钥

openssl genrsa -out privateKey.pem 2048
openssl req -new -key privateKey.pem -out cert.csr

填写您的信息。

运行以下命令来激活证书

aws iot --endpoint-url https://i.us-east-1.pb.iot.amazonaws.com create-certificate --certificate-signing-request file://cert.csr --set-as-active > certOutput.txt

运行以下命令将证书保存到 cert.pem 文件中

aws iot --endpoint-url https://i.us-east-1.pb.iot.amazonaws.com describe-certificate --certificate-id <certificate ID> --output text --query certificateDescription.certificatePem > cert.pem

注意:将 <certificate ID> 替换为存储在 certOutput.txt 文件“certificateId”字段中的 ID。要查看文件,请输入:more certOutput.txt

为 AWS IoT SDK 创建一个 Json 策略文档

复制以下文本(ctrl-c)

{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action":["iot:*"],
"Resource": ["*"]
}]
}

输入 vi policy.doc ,按 a 键,然后右键单击以粘贴文本

按 Escape 键,然后输入 :wq 保存并退出

首先输入

aws iot --endpoint-url https://i.us-east-1.pb.iot.amazonaws.com create-policy --policy-name PubSubToAnyTopic --policy-document file://policy.doc

然后使用以下命令将策略附加到证书

aws iot --endpoint-url https://i.us-east-1.pb.iot.amazonaws.com attach-principal-policy --principal-arn <principal arn> --policy-name "PubSubToAnyTopic"

注意:将 <principal arn> 替换为 outputCert.txt 文件中“certifcateArn”字段的值。

使用 MQTT 订阅和发布到 AWS

现在证书已准备就绪,我们可以使用 MQTT 在云端进行订阅和发布。

首先获取根 CA pem 文件

curl https://www.symantec.com/cerisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem > rootCA.pem

使用 moquitto 客户端订阅一个主题

mosquitto_sub --cafile rootCA.pem --cert certs\cert.pem --
key privateKey.pem -h g.us-east-1.pb.iot.amazonaws.com -p 8883
-q 1 -d -t <topic> -i <client_id>

注意:将 <topic> 和 <client_id> 替换为您希望订阅的主题和您希望拥有的 ID。

使用 mosquitto 发布到一个主题

mosquitto_pub --cafile rootCA.pem --cert certs\cert.pem --
key privateKey.pem -h g.us-east-1.pb.iot.amazonaws.com -p 8883
-q 1 -d -t <topic> -i <client_id> -m <"message">

注意:将 <topic>、<client_id> 和 <"message"> 替换为您希望发布的主题、客户端 ID 和消息。消息必须用引号括起来。

有关展示如何在 Intel Edison 主板上的 AWS IoT SDK 中使用各种功能的教程,请参阅 https://github.com/intel-iot-devkit/aws-iot-intel

© . All rights reserved.