×

使用AWS和英特尔Edison构建连接的马拉卡

消耗积分:2 | 格式:zip | 大小:0.52 MB | 2022-10-20

哈哈哈

分享资料个

描述

介绍

今天,我们将构建一个像Maraca一样的简单连接设备。当您摇动设备时,它将开始将数据流式传输到 AWS。然后,您将能够在您的 AWS 账户中托管的仪表板上实时查看该数据。

马拉卡斯,有时被称为伦巴振动器和其他各种名称,是起源于拉丁美洲的打击乐器——拨浪鼓。它们被归类为 idiphones。玩家握住它们的把手,通常是成对的,然后摇晃它们。

将核心连接到 Edison 和 AWS 环境后,最终的 Connected Maraca 系统将如下所示:

 

 
poYBAGNQyU-AajWHAACYblQjWFM220.png
 

第 1 部分:设置您的英特尔 Edison

打开包装盒后,带有 Arduino 扩展板的 Intel Edison,按照这些一次性步骤设置、连接和刷新最新映像。

 

第 1 步:组装您的英特尔 Edison 开发板

要设置您的爱迪生,请将您的爱迪生卡入分线板。接下来,将 J9 跳线移至“顶部”位置最后,使用提供的两条 micro-USB 电缆将 Edison 连接到计算机。

单击此处以获取有关如何组装电路板的更多说明。

 

 

第 2 步:闪现你的爱迪生。

接下来,您需要刷新您的 Edison 板。首先,从 Intel 的下载页面下载最新的 Yocto 镜像和 Flash Tool Lite:

注意: 当您安装并打开 Flash Tool Lite 时,它​​可能会被命名为“Phone”Flash Tool Lite。这很正常!

 

确保您的 Intel Edison 已使用两条微型 USB 电缆连接到您的计算机。打开 Flash Tool Lite,您应该会在应用程序中看到您的开发板。按着这些次序:

  1. 浏览并选择您在上面下载的 Yocto 图像。

     
    poYBAGNQyVGAG09IAAAdYYfN_1s431.png
     
  2. 单击“开始闪烁”。此时,它可能会要求您断开并重新连接Edison。如果是这样,请拔下 USB 电缆并重新插入。

     
    pYYBAGNQyVSABJR1AACZ3CydGDQ349.png
     
  3. 等到板子完成闪烁。这将需要重新启动电路板。


     
    poYBAGNQyVaAWxwoAAA6qCUsoMw970.png
     

恭喜!你已经成功地刷新了你的爱迪生。

 

第 3 步:连接到您的英特尔 Edison。

为了连接到设备,您需要进行串行连接。在 Mac 或 Linux 操作系统上,您可以使用 screen 实用程序执行此操作。在 Windows 机器上,您可以使用 PuTTy 执行此操作。

注意: 一旦您建立了串行连接,如果您看到一个空白屏幕 - 按两次 Enter。

 

在 Mac 上:

  • 打开一个新的终端窗口并输入screen /dev/tty.usbs. 按“制表符”自动完成该行。最后,115200 -L在行尾添加并按两次回车。
 

 

在 PC 上:

  • 下载 PuTTy 后,选择“串行”并将波特率设置为 115200。在设备管理器中,您可以找到 Edison 正在使用的 COM 端口。连接,当您看到一个空白窗口时,按两次 Enter。
 

 

在 Linux 上:

  • 在使用 screen 命令连接到 Edison 之前,您需要安装 screen。键入这些命令,然后按两次 Enter。:

    $ sudo apt-get 安装屏幕
    $ sudo 屏幕 /dev/ttyUSB0 115200
    

第 4 步:设置和配置您的 Intel Edison。

连接到设备后,通过键入配置 Edison configure_edison --setup

 

 

第 5 步:设置 Arduino IDE 并上传基本草图以测试您的系统。

如果您没有安装 Arduino IDE,请按照此处的步骤进行安装。

要测试所有设置是否正确,请尝试使用 Arduino IDE 上传并运行“闪烁 LED”草图。

  1. 打开文件 > 示例 > 基础 > 闪烁
  2. 在 Tools > Board 下,确保您已选择“Intel Edison”。如果没有出现,请按照此处的步骤操作。
  3. 在工具 > 端口下,选择dev/cu.usbmodem...
  4. 单击验证,然后在编译后单击上传
  5. 看看 Edison 上的板载 LED 是否在闪烁!

 

 

第 2 部分:创建您的 AWS 环境

您的 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 资源,称为“堆栈”。

第 1 步:创建 CloudFormation 堆栈。

注意: 在本教程中,我们将在 AWS俄勒冈地区 ( us-west-2 ) 中设置资源。在继续之前,请确保屏幕右上角的区域下拉菜单显示Oregon

 

  1. 通过单击服务> CloudFormation打开 CloudFormation 控制台页面

  2. 按蓝色的创建堆栈按钮。

     
    pYYBAGNQyVmAA4QEAAEFMLionbk834.png
     
  3. 命名你的堆栈。接下来,将以下 URL 复制并粘贴到 S3 模板 URL 字段中:

    
    
  4. 创建并输入一个新的设备 ID,该 ID 将用于在连接的应用程序中识别您的设备。您可以在此字段中输入任何内容,但必须介于 5 到 10 个字符之间,并且不能包含空格或特殊字符。


     
    poYBAGNQyVuAFd8FAABcFHwRgfs619.png
     
  5. 选择“Edison”作为DeviceType

  6. 下一步添加任何可以帮助您在将来识别此堆栈的标签。

  7. 下一步此屏幕将为您提供堆栈的概览。注意:您可以在此处估算此环境每月的成本。

  8. 创建您的堆栈现在将启动。

 

第 2 步:记下创建的输出。

成功启动 CloudFormation 堆栈后,您将能够看到它创建的输出。这些是您在配置 Connected Maraca 和网站可视化工具时将使用的值。要查看输出,请单击输出选项卡。它看起来像这样:

 

 
pYYBAGNQyV6AQT6EAACmQ2lww4w649.png
 
 
poYBAGNQyWCAcFV6AADK2kXq668264.png
 

第 3 部分:创建 Lambda 函数

为了处理来自设备的数据,我们将使用 Kinesis 流和 Lambda 函数。

这是将用于处理写入 Kinesis 流的数据的Lambda 函数。您将剪切该函数中的源代码并将其粘贴到 Lambda 控制台中。

注意: 在本教程中,我们将在 AWS俄勒冈地区 ( us-west-2 ) 中设置资源。在继续之前,请确保屏幕右上角的区域下拉菜单显示Oregon

 

  1. 通过单击服务> Lambda打开 Lambda 控制台页面

  2. 按蓝色的立即开始按钮。

     
    pYYBAGNQyWSAC3rsAAEP7xjZfu0411.png
     
  3. 输入函数的名称和可选的描述。

     
    pYYBAGNQyWeASMiWAAER6KFkS7Q362.png
     
  4. 在上面列出的 URL 中剪切并粘贴 Javascript 文件中的源代码。将字符串“[TABLE_NAME]”替换为在 CloudFormation 堆栈中创建的设备表的名称。

     
    poYBAGNQyWmAGQNCAAE6Q_TqpfQ746.png
     
  5. 选择在上一步中从 CloudFormation 堆栈创建的角色。它的名称应该类似于 [StackName]-DeviceExecutionRole-XXXXX

     
    pYYBAGNQyWyAbH_nAAEtdjDPzSE105.png
     
  6. 创建该函数现已创建。

     
    poYBAGNQyW-AOh4FAAEukm4QytQ633.png
     
  7. 通过选择“Actions->Add Event Source”向函数添加事件源

  8. 选择由 CloudFormation 堆栈创建的 Kinesis 流作为事件源。

     
    pYYBAGNQyXSAJRHpAACoVSsRyHU259.jpg
     
  9. 提交您现在应该会在函数下方的“事件源”列表中看到 Kinesis 流。

     
    poYBAGNQyXaALLXAAAE2eFE4hWU380.png
     

恭喜!!您现在已成功设置 AWS 后端基础设施。

第 4 部分:组装互联马拉卡

Connected Maraca 简介:它会做什么?

Connected Maraca 将以三种模式之一运行:

  1. DynamoDB 模式:它将项目发布到 DynamoDB 表,列为
  2. Kinesis 模式:它将带有 device_id、时间戳和传感器数据的 JSON 记录发送到 Kinesis Stream。
  3. SNS 模式:它将向 SNS 主题发布时间戳。

关于应用程序的一些注意事项:

  • 该应用程序默认使用 DynamoDB 模式。
  • 插座 D7 上的按钮(“模式”按钮)更改(循环)当前支持的服务
  • RGB LED 指示当前模式(蓝色:发电机,橙色:kinesis,紫色:sns)
  • 更改模式时蜂鸣器发出哔哔声,串行控制台输出验证新模式
  • 摇动马拉卡触发器将记录发布到当前模式 AWS 服务
  • 串行控制台输出显示消息发送和响应信息
  • 发送消息和收到 AWS 目标服务响应之间的 RBG 模式 LED 变暗

 

第 1 步:确保您拥有所有正确的组件

现在让我们组装连接的马拉卡。您将需要以下部件:

注意: 有关 Grove Kit 中所有组件的更详细描述,请查看 Grove Wiki

 
pYYBAGNQyXmASQOtAACBVh1vf1w436.png
 

第 2 步:连接所有组件

拥有所有组件后,将Grove 底座护罩连接到 Edison Arduino 板上。您将把各种 Grove Kit 组件连接到基础护罩。完成后,请按照下列步骤操作:

  1. 将 Shield 上的 3.3 至 5V 开关设置为 3.3V
  2. Grove Button连接到底座屏蔽插座D7
  3. Grove 蜂鸣器连接到底座屏蔽插座D6
  4. Grove LED连接到基本屏蔽插座D3
  5. Grove 3 轴加速度计连接到任何底部I2C端口

 

 

第 5 部分:构建并运行您的 Connected Maraca

在本节中,我们将使用 Arduino IDE 构建连接的马拉卡。

首先,您需要下载 AWS/Edison Connected Maraca 示例代码:

AWS_Edison_Maraca_Sample.zip

 

第 1 步:打开 Connected Maraca 草图并将其上传到您的 Edison。

按着这些次序:

  1. 解压上面的 Maraca 示例文件。

  2. 打开 Arduino IDE。

  3. 解压后的文件夹中有三个文件夹(库)可以导入 Arduino IDE:HardwareLibrary、AWSEdisonLibrary 和 AWSArduinoLibrary要导入它们,请单击草图 > 导入库 > 添加库

     
     
     
     
    poYBAGNQyXyAYV8UAAAi6oTnOOU715.png
     
    1 / 2
     
  4. 打开文件夹Edison_Maraca并双击Edison_Maraca.ino文件

  5. 修改keys.cpp并在 CloudFormation 输出中添加提供给您的信息。要到达此处,请单击 AWS 服务 CloudFormation,然后在您成功部署的堆栈下,单击“输出”选项卡。

  6. 验证,然后按上传它们是 IDE 窗口左上角的图标

     
     
     
     
    pYYBAGNQyX-ARCzzAAAHZWTWIS4517.png
     
    1 / 2
     
  7. 这将在您的 Edison 上上传并启动应用程序。

这是一个指导您完成整个过程的视频:

注意: 本视频演示了在 Arduino IDE 中设置 Connected Maraca 项目所需的关键步骤。请记住,您还需要在 keys.cpp 文件中添加其余的常量如上所述,您可以通过单击 CloudFormation 中的“输出”选项卡找到这些(Kinesis 流名称、DynamoDB 表名称等)。

 

 

第 2 步:查看串行监视器上的输出

您可以通过单击工具 > 串行监视器来实时监视输出它应该显示如下内容:

注意: 当您按住连接到 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!当你摇动你的马拉卡时,你的数据将显示在房间前面的排行榜上。

(可选)第 6 部分:可视化您的数据

可视化应用程序是通过 S3 交付的静态 Angular.JS 网站。由于该站点完全由 HTML、CSS 和 Javascript 组成,因此保护调用 AWS 服务的 Javascript 代码所使用的凭证非常重要。

为了提供对您环境中创建的资源的安全访问,我们将使用 Cognito 服务。Cognito 与 IAM 服务集成,允许您创建策略来定义如何访问环境中的资源。例如,您可能不希望全世界都能够在 DynamoDB 中的表中读取和写入数据。但是您可能希望允许某些用户或应用程序访问这些表。使用 Cognito 和 IAM,您可以将访问您的 DynamoDB 表的权限仅限于您信任的用户或应用程序,同时禁止访问其他所有内容。

第 1 步:创建 Cognito 身份池。

注意: 在本教程中,我们将使用 Cognito 服务,该服务仅在 AWS N. Virginia区域 ( us-east-1 ) 中可用。在继续之前,请确保屏幕右上角的区域下拉菜单显示N. Virginia

 

  1. 通过单击服务> Cognito打开 Cognito 控制台页面

  2. 按蓝色的开始按钮。

     
    pYYBAGNQyYKAbBgSAADsrJUp4Do592.png
     
  3. 命名您的 Cognito 身份池。您可以使用任何您想要的名称。

  4. 未经身份验证的身份部分下,选中该框以启用对未经身份验证的身份的访问。

  5. 单击创建池按钮。您现在将看到以下屏幕:

     
    poYBAGNQyYeAXIeIAADGYbgLx9g069.png
     
  6. 单击查看详细信息并记下在此过程中创建的未经身份验证的IAM 角色的名称。允许

恭喜!您已经设置了 Cognito 身份池。

现在已经创建了 Cognito 身份池,我们可以将其链接到定义可视化应用程序所需权限的 IAM 角色。此角色实质上允许对 DynamoDB 表中的数据进行只读访问。

 

第 2 步:在 IAM 中附加可视化策略

  1. 通过单击服务> IAM打开 IAM 控制台页面

  2. 在左侧菜单中,单击角色

  3. 查找设置 Cognito 身份池时创建的未经身份验证的角色。单击角色名称以编辑角色。

  4. 托管策略下,单击附加策略

     
    pYYBAGNQyYqAfHf2AAAZLAn6Qto169.png
     
  5. AWS 有许多现成的托管策略,可用于定义对您的 IAM 用户、组和角色的访问权限。当您启动 CloudFormation 堆栈时,为可视化创建了一个托管策略。搜索“可视化”,应显示托管策略。

     
    pYYBAGNQyYyAAn8EAAAsN1wzYlM132.png
     
  6. 单击复选框并按附加策略

恭喜!您已成功将您的可视化策略附加到您的 Cognito 未经身份验证的 IAM 角色!现在,您已准备好配置和上传 Web 应用程序。

 

第 3 步:上传并配置您的 S3 可视化网站。

要配置和安装可视化网站,首先下载应用程序并按照以下步骤操作:

可视化.tar.gz

 
  1. 将 tarball 解压到笔记本电脑的本地目录中。

  2. 在文本编辑器中打开文件visual/scripts/config.js 。

  3. 将所有具有“[TOKEN]”形式的配置值替换为所需的值。您将使用的值都是您在第 2 部分中创建的 CloudFormation 堆栈的输出。

  4. 保存对文件的更改。

  5. 通过单击服务> S3打开 S3 控制台页面

  6. 找到在您启动 CloudFormation 堆栈时创建的可视化存储桶。单击存储桶名称以打开存储桶。

  7. 点击左上角的上传

     
    poYBAGNQyY-AN8laAAAm3ud0IHM381.png
     
  8. 在某些浏览器中,您可以简单地将文件拖放到页面上指定的框中。在其他情况下,您可以使用增强上传器复制文件夹中的所有文件。

     
    pYYBAGNQyZGAeuwuAABy3pr_Ktg425.png
     

或者,如果您设置了 AWS CLI 工具,则可以从命令行将可视化文件上传到您的 S3 存储桶。以下是用于复制文件的命令,其中 [YOUR S3 VISUALIZATION BUCKET] 是 CloudFormation 堆栈中名为“VisualizationBucketName”的输出参数的值:

   --recusive 可视化 : 

现在,如果您单击 CloudFormation 输出中提供的链接,您将看到带有流设备数据的可视化网站。

恭喜!!您已完成互联马拉卡!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !