2918浏览
查看: 2918|回复: 2

[intel程序猿笔记] 在英特尔® 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
./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.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_certs
cd 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


凌风清羽  中级技匠

发表于 2016-5-31 22:37:43

666666666,路过
回复

使用道具 举报

dsweiliang  初级技神

发表于 2016-6-3 09:31:32

感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail