intel程序猿笔记 发表于 2016-5-5 19:18:18

在英特尔® EDISON 开发板上设置 AWS 物联网设备 SDK

本教程可向您介绍安装 AWS IoT SDK 的流程以及如何执行基本的 MQTT 调用。

在开始连接英特尔® Edison 开发板之前,您需要确保安装了最新的操作系统映像。 如要做到这一点,请参照您的主机选择适当的入门说明进行操作: Windows、Mac 或 Linux。 按照标准英特尔® Edison 设置说明操作后,您需要从您的机器上建立一个串行连接到您的设备。 向英特尔® Edison 开发板建立串行连接(命令行)后,接下来您可以按照以下说明安装 AWS 物联网软件开发套件。
开始之前...
[*]确保您运行了 configure_edison --setup 命令来设置开发板
[*]确保英特尔® 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./configuremake
make install
export PATH=$PATH:/usr/local/bin/
cd ~对于 Less:先重命名旧版 lessmv /usr/bin/less /usr/bin/less-OLD然后安装新版 lesswget http://www.greenwoodsoftware.com/less/less-458.zip
unzip less-458.zip
cd less-458.zip
chmod 777 /*
./configure
make
make install
cd ~如要确保所有配置正确安装,请运行物联网帮助文件:aws iot help

获取 AWS 证书:
此时,您需要安装 AWS CLI。 按照以下链接中的说明操作,从 AWS 控制台中创建新用户并获取证书:http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html#cli-signup。 获取访问 ID 和密钥后,您可以使用以下命令配置 AWS 并输入 ID 和密钥:aws configure注:对于默认区域,您必须输入 us-east-1 才能够配置 AWS IoT。 默认格式可能保留为 json。 如要获取下载 AWS IoT 工具的权限,您需要将管理员账户策略与创建的用户相关联。 如要执行该操纵,请访问 IAM 控制台中的用户面板,选择您创建的用户,连接策略并选择管理员账户。
生成证书:
先创建一个文件夹来存储证书:mkdir aws_certscd aws_certs生成一个带 open ssl 的私有密钥: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注: 使用 certOutput.txt 的 "certificateId" 字段中存储的 ID 替换 <certificate 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 并输入 in :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"注:使用 outputCert.txt 文件 "certifcateArn" 中存储的值替换 <principal arn>。
使用 MQTT 订阅并发布至 AWS证书已经就绪,现在我们可以使用 MQTT 订阅并发布至云。首先,获取根 CA pem 文件:curl https://www.symantec.com/cerisig ... on-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>
注:使用您想要订阅的主题以及想要使用的 ID 替换 <topic> 和 <client_id>。使用 mosquitto 发布主题:mosquitto_pub --cafile crootCA.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">注: 使用您想要发布的主题、客户端 ID 和消息替换 <topic>、<client_id> 和 <"message">,message (消息)必须用引号引出。 如欲获取介绍如何在英特尔 Edison 开发板上使用 AWS IoT SDK 内的各种特性的教程,请参阅https://github.com/intel-iot-devkit/aws-iot-intel

dsweiliang 发表于 2016-5-5 22:40:31

学习学习
页: [1]
查看完整版本: 在英特尔® EDISON 开发板上设置 AWS 物联网设备 SDK