今天,我们将构建一个像Maraca一样的简单连接设备。当您摇动设备时,它将开始将数据流式传输到 AWS。然后,您将能够在您的 AWS 账户中托管的仪表板上实时查看该数据。
马拉卡斯,有时被称为伦巴振动器和其他各种名称,是起源于拉丁美洲的打击乐器——拨浪鼓。它们被归类为 idiphones。玩家握住它们的把手,通常是成对的,然后摇晃它们。
将核心连接到 Edison 和 AWS 环境后,最终的 Connected Maraca 系统将如下所示:
打开包装盒后,带有 Arduino 扩展板的 Intel Edison,按照这些一次性步骤设置、连接和刷新最新映像。
要设置您的爱迪生,请将您的爱迪生卡入分线板。接下来,将 J9 跳线移至“顶部”位置。最后,使用提供的两条 micro-USB 电缆将 Edison 连接到计算机。
单击此处以获取有关如何组装电路板的更多说明。
接下来,您需要刷新您的 Edison 板。首先,从 Intel 的下载页面下载最新的 Yocto 镜像和 Flash Tool Lite:
注意: 当您安装并打开 Flash Tool Lite 时,它可能会被命名为“Phone”Flash Tool Lite。这很正常!
确保您的 Intel Edison 已使用两条微型 USB 电缆连接到您的计算机。打开 Flash Tool Lite,您应该会在应用程序中看到您的开发板。按着这些次序:
浏览并选择您在上面下载的 Yocto 图像。
单击“开始闪烁”。此时,它可能会要求您断开并重新连接Edison。如果是这样,请拔下 USB 电缆并重新插入。
等到板子完成闪烁。这将需要重新启动电路板。
恭喜!你已经成功地刷新了你的爱迪生。
为了连接到设备,您需要进行串行连接。在 Mac 或 Linux 操作系统上,您可以使用 screen 实用程序执行此操作。在 Windows 机器上,您可以使用 PuTTy 执行此操作。
注意: 一旦您建立了串行连接,如果您看到一个空白屏幕 - 按两次 Enter。
在 Mac 上:
screen /dev/tty.usbs
. 按“制表符”自动完成该行。最后,115200 -L
在行尾添加并按两次回车。
在 PC 上:
在 Linux 上:
在使用 screen 命令连接到 Edison 之前,您需要安装 screen。键入这些命令,然后按两次 Enter。:
$ sudo apt-get 安装屏幕 $ sudo 屏幕 /dev/ttyUSB0 115200
连接到设备后,通过键入配置 Edison configure_edison --setup
。
如果您没有安装 Arduino IDE,请按照此处的步骤进行安装。
要测试所有设置是否正确,请尝试使用 Arduino IDE 上传并运行“闪烁 LED”草图。
您的 AWS 环境由许多不同的 AWS 服务组成,这些服务为您的 Connected Maraca 生成的发送者数据提供安全、传输和存储。您的 AWS 环境将包括使用以下服务预置的资源:
Lambda + Kinesis + DynamoDB + Cognito + S3 + SNS + IAM + CloudFormation
以下是系统的工作方式:
AWS 中的所有服务都是通过一组丰富的 REST API 提供的。您可以利用众多SDK之一通过 API 以编程方式使用服务。或者,您可以通过基于 Web 的AWS 管理控制台调用服务。为了构建我们的 AWS 环境,我们将通过控制台手动调用多项服务。但请记住,我们今天执行的每一步都可以完全以编程方式完成,这也是 AWS 云如此强大的众多原因之一。
要创建您的 AWS 环境,我们将使用 CloudFormation 模板。CloudFormation 模板使用 JSON 格式的文档来快速可靠地预置 AWS 资源,称为“堆栈”。
注意: 在本教程中,我们将在 AWS俄勒冈地区 ( us-west-2 ) 中设置资源。在继续之前,请确保屏幕右上角的区域下拉菜单显示Oregon。
通过单击服务> CloudFormation打开 CloudFormation 控制台页面
按蓝色的创建堆栈按钮。
命名你的堆栈。接下来,将以下 URL 复制并粘贴到 S3 模板 URL 字段中:
创建并输入一个新的设备 ID,该 ID 将用于在连接的应用程序中识别您的设备。您可以在此字段中输入任何内容,但必须介于 5 到 10 个字符之间,并且不能包含空格或特殊字符。
选择“Edison”作为DeviceType。
按下一步。添加任何可以帮助您在将来识别此堆栈的标签。
按下一步。此屏幕将为您提供堆栈的概览。注意:您可以在此处估算此环境每月的成本。
按创建。您的堆栈现在将启动。
成功启动 CloudFormation 堆栈后,您将能够看到它创建的输出。这些是您在配置 Connected Maraca 和网站可视化工具时将使用的值。要查看输出,请单击输出选项卡。它看起来像这样:
为了处理来自设备的数据,我们将使用 Kinesis 流和 Lambda 函数。
这是将用于处理写入 Kinesis 流的数据的Lambda 函数。您将剪切该函数中的源代码并将其粘贴到 Lambda 控制台中。
注意: 在本教程中,我们将在 AWS俄勒冈地区 ( us-west-2 ) 中设置资源。在继续之前,请确保屏幕右上角的区域下拉菜单显示Oregon。
通过单击服务> Lambda打开 Lambda 控制台页面
按蓝色的立即开始按钮。
输入函数的名称和可选的描述。
在上面列出的 URL 中剪切并粘贴 Javascript 文件中的源代码。将字符串“[TABLE_NAME]”替换为在 CloudFormation 堆栈中创建的设备表的名称。
选择在上一步中从 CloudFormation 堆栈创建的角色。它的名称应该类似于 [StackName]-DeviceExecutionRole-XXXXX
按创建。该函数现已创建。
通过选择“Actions->Add Event Source”向函数添加事件源
选择由 CloudFormation 堆栈创建的 Kinesis 流作为事件源。
按提交。您现在应该会在函数下方的“事件源”列表中看到 Kinesis 流。
恭喜!!您现在已成功设置 AWS 后端基础设施。
Connected Maraca 将以三种模式之一运行:
关于应用程序的一些注意事项:
现在让我们组装连接的马拉卡。您将需要以下部件:
注意: 有关 Grove Kit 中所有组件的更详细描述,请查看 Grove Wiki。
拥有所有组件后,将Grove 底座护罩连接到 Edison Arduino 板上。您将把各种 Grove Kit 组件连接到基础护罩。完成后,请按照下列步骤操作:
在本节中,我们将使用 Arduino IDE 构建连接的马拉卡。
首先,您需要下载 AWS/Edison Connected Maraca 示例代码:
AWS_Edison_Maraca_Sample.zip
按着这些次序:
解压上面的 Maraca 示例文件。
打开 Arduino IDE。
解压后的文件夹中有三个文件夹(库)可以导入 Arduino IDE:HardwareLibrary、AWSEdisonLibrary 和 AWSArduinoLibrary。要导入它们,请单击草图 > 导入库 > 添加库。
1 / 2
打开文件夹Edison_Maraca并双击Edison_Maraca.ino文件
修改keys.cpp并在 CloudFormation 输出中添加提供给您的信息。要到达此处,请单击 AWS 服务 CloudFormation,然后在您成功部署的堆栈下,单击“输出”选项卡。
按验证,然后按上传。它们是 IDE 窗口左上角的图标。
1 / 2
这将在您的 Edison 上上传并启动应用程序。
这是一个指导您完成整个过程的视频:
注意: 本视频演示了在 Arduino IDE 中设置 Connected Maraca 项目所需的关键步骤。请记住,您还需要在 keys.cpp 文件中添加其余的常量。如上所述,您可以通过单击 CloudFormation 中的“输出”选项卡找到这些(Kinesis 流名称、DynamoDB 表名称等)。
您可以通过单击工具 > 串行监视器来实时监视输出。它应该显示如下内容:
注意: 当您按住连接到 Edison 的按钮时,它会将交付模式更改为 AWS。这三个选项是 DynamoDB、Kinesis 和 SNS。
尝试到SSID: 连接无线网络 SSID:冷凝水 IP 地址 。 . . 信号强度 (RSSI):- dBm 设置完成!循环主程序 初始:运动 发布Kinesis { :,:,:,:[{ : }]} Kinesis 记录发布Stream 按钮按下改变。新:DynamoDB 发布DynamoDB DynamoDB PutItem 成功! 按钮按下改变。新:SNS 发布SNS 发送消息ID:a500139f- c1c- - - f44c782b2d9 按钮按下改变。新:运动 发布Kinesis { :,:,:,:[{ : }]} Kinesis 记录发布Stream 按钮按下改变。新:DynamoDB 按钮按下改变。新:SNS 按钮按下改变。新:运动 发布Kinesis { :,:,:,:[{ : }]} Kinesis 记录发布Stream 按钮按下改变。新:DynamoDB 发布DynamoDB DynamoDB PutItem 成功! 按钮按下改变。新:SNS 发布SNS 发送消息ID: afc97f- a1f- -bbfe- a4e1cce71e
您现在使用 Arduino 成功地将数据从英特尔 Edison 发送到云端。
恭喜!您已成功构建 Connected Maraca!当你摇动你的马拉卡时,你的数据将显示在房间前面的排行榜上。
可视化应用程序是通过 S3 交付的静态 Angular.JS 网站。由于该站点完全由 HTML、CSS 和 Javascript 组成,因此保护调用 AWS 服务的 Javascript 代码所使用的凭证非常重要。
为了提供对您环境中创建的资源的安全访问,我们将使用 Cognito 服务。Cognito 与 IAM 服务集成,允许您创建策略来定义如何访问环境中的资源。例如,您可能不希望全世界都能够在 DynamoDB 中的表中读取和写入数据。但是您可能希望允许某些用户或应用程序访问这些表。使用 Cognito 和 IAM,您可以将访问您的 DynamoDB 表的权限仅限于您信任的用户或应用程序,同时禁止访问其他所有内容。
注意: 在本教程中,我们将使用 Cognito 服务,该服务仅在 AWS N. Virginia区域 ( us-east-1 ) 中可用。在继续之前,请确保屏幕右上角的区域下拉菜单显示N. Virginia。
通过单击服务> Cognito打开 Cognito 控制台页面
按蓝色的开始按钮。
命名您的 Cognito 身份池。您可以使用任何您想要的名称。
在未经身份验证的身份部分下,选中该框以启用对未经身份验证的身份的访问。
单击创建池按钮。您现在将看到以下屏幕:
单击查看详细信息并记下在此过程中创建的未经身份验证的IAM 角色的名称。按允许。
恭喜!您已经设置了 Cognito 身份池。
现在已经创建了 Cognito 身份池,我们可以将其链接到定义可视化应用程序所需权限的 IAM 角色。此角色实质上允许对 DynamoDB 表中的数据进行只读访问。
通过单击服务> IAM打开 IAM 控制台页面
在左侧菜单中,单击角色。
查找设置 Cognito 身份池时创建的未经身份验证的角色。单击角色名称以编辑角色。
在托管策略下,单击附加策略。
AWS 有许多现成的托管策略,可用于定义对您的 IAM 用户、组和角色的访问权限。当您启动 CloudFormation 堆栈时,为可视化创建了一个托管策略。搜索“可视化”,应显示托管策略。
单击复选框并按附加策略。
恭喜!您已成功将您的可视化策略附加到您的 Cognito 未经身份验证的 IAM 角色!现在,您已准备好配置和上传 Web 应用程序。
要配置和安装可视化网站,首先下载应用程序并按照以下步骤操作:
可视化.tar.gz
将 tarball 解压到笔记本电脑的本地目录中。
在文本编辑器中打开文件visual/scripts/config.js 。
将所有具有“[TOKEN]”形式的配置值替换为所需的值。您将使用的值都是您在第 2 部分中创建的 CloudFormation 堆栈的输出。
保存对文件的更改。
通过单击服务> S3打开 S3 控制台页面
找到在您启动 CloudFormation 堆栈时创建的可视化存储桶。单击存储桶名称以打开存储桶。
点击左上角的上传。
在某些浏览器中,您可以简单地将文件拖放到页面上指定的框中。在其他情况下,您可以使用增强上传器复制文件夹中的所有文件。
或者,如果您设置了 AWS CLI 工具,则可以从命令行将可视化文件上传到您的 S3 存储桶。以下是用于复制文件的命令,其中 [YOUR S3 VISUALIZATION BUCKET] 是 CloudFormation 堆栈中名为“VisualizationBucketName”的输出参数的值:
--recusive 可视化 :
现在,如果您单击 CloudFormation 输出中提供的链接,您将看到带有流设备数据的可视化网站。
恭喜!!您已完成互联马拉卡!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !