电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>使用Alexa和Arduino的动画智能灯

使用Alexa和Arduino的动画智能灯

2022-12-09 | zip | 0.18 MB | 次下载 | 免费

资料介绍

描述

为什么灯带

我一直对可寻址的 RGB LED 灯带着迷。无穷无尽的色彩效果和动画功能一直吸引着我的创造力,所以几年前我决定为 Arduino 板开发一个名为 ALA(Arduino Light Animations)的库。Alexa 现在让我可以用我的声音控制房间的灯光和效果,这太棒了!

项目概况

有这个项目所必需的组件。

  • Amazon Alexa:自定义 Alexa 技能(Light Strip)定义语音交互模型并翻译发出到 Lambda 函数的命令(意图)。
  • Amazon Lambda :一个 Python 脚本,它从 Alexa 接收消息并将更新发送到 IoT 服务。
  • 亚马逊物联网:物联网服务存储一个“事物影子”,它代表了 RGB 条带的状态。每次影子更新时,订阅的 MQTT 客户端 (Raspberry PI) 都会收到通知。
  • Raspberry PI :这台小型 PC 运行 MQTT 客户端以接收来自 Amazon IoT 服务的消息。另一方面,它将通过 USB 端口为 Arduino 板供电并发送命令。
  • Arduino :这个不错的微控制器将运行ALA 库来驱动 LED 灯条,通过 USB 串行端口接收来自 Raspberry PI 的命令。您可以使用 Arduino Uno、Nano 或 Mega 开发板。
  • WS8212 RGB LED 灯条:这些是可寻址的 LED 灯条,因此每个 LED 灯都可以单独控制。这允许美丽多彩的灯光动画。
?
pYYBAGOSje2ALBxBAABIysDgOb8334.png
建筑层
?

项目中没有什么是非常具有挑战性的,但是有很多相互关联的部分。我建议您按照建议的结构在坚实的基础上构建您的项目,然后再继续下一步。为了使事情尽可能简单,我将项目拆分为两个子项目。

该项目的第一部分在我的Web-Controlled LED Animations with Raspberry Pi and Arduino Hackster.io 项目中有所描述,它将指导您完成连接 Raspberry PI、Arduino 板和 WS8212 LED 灯条所需的步骤。在此阶段结束时,您将能够使用网络浏览器从智能手机或 PC 控制 LED 动画。

?
poYBAGOSjjuAAYajAA1Y364Kc6g962.jpg
?

此处描述的项目的第二部分将使用 Amazon Alexa 在之前的实施中添加语音控制。要正确设置整个链条,需要执行几个步骤,因此请耐心等待并仔细按照说明操作。

亚马逊物联网

你完成硬件部分了吗?现在是上云的时候了!我们将使用 AWS IoT 平台来管理来自互联网的“事物”。

我们将使用“设备影子”,它是事物状态的副本,以及所需的更改。Raspberry PI 将订阅一个通知提要,将更改(“增量”)发布到此影子。查看此链接以了解有关 AWS IoT 平台和 API 的更多信息

创建物联网事物

登录AWS 控制台。如果您还没有这样做,则需要创建一个免费帐户。

确保您已登录右上角的美国东部(弗吉尼亚北部)欧洲(爱尔兰)区域。

搜索“IoT”并选择AWS IoT服务。单击“开始”按钮(如果有)以关闭介绍教程

我们首先需要为我们的“事物”创建一个安全策略转到Secure > Policies菜单,然后单击Create a Policy按钮并输入以下信息:

  • 名称:LightStripPolicy
  • 行动: *
  • 资源: *
  • 效果 - 允许:选中
  • 点击“创建”

现在我们可以创建 IoT Thing了

  • 选择Manage > Things菜单并通过单击Register a Thing按钮(或右上角的Create按钮)然后单击Create a single thing创建一个新的 AWS IoT Thing
  • 在名称字段中键入“LS01”。保留其他字段的默认值并单击下一步
  • 单击一键式证书创建部分中的创建证书按钮。
  • 为您的设备和根 CA 下载 3 个证书。对于 Root CA,您可能需要右键单击并保存它。
  • 下载证书后,单击“激活”按钮。
  • 单击Attach a Policy按钮,选择您之前创建的LightStripPolicy ,然后单击Register Thing

在继续之前,您需要记下 AWS IoT 端点。单击AWS IoT 网页左下角的设置菜单,打开它并记下端点。

?
pYYBAGOSjj2AGgqeAACdvrq4yZk427.png
?

配置 Raspberry PI 以收听“事物”

我们首先需要在 Raspberry PI 命令行上使用以下命令安装AWS IoT Device SDK for Python :

sudo pip3 install AWSIoTPythonSDK

现在从 GitHub 下载LightStrip 存储库并解压缩。

mkdir
cd /home/pi/LightStrip
wget https://github.com/bportaluri/LightStrip/archive/master.zip
unzip master.zip

将创建 IoT 事物时下载的四个证书复制到/home/pi/LightStrip/LightStrip-master/pi文件夹中。

编辑lightstripcfg.py脚本。您可以使用任何文本编辑器。以下是nano编辑器的命令。

cd /home/pi/LightStrip/LightStrip-master/pi
nano lightstripcfg.py

现在编辑设置以匹配您的配置。

  • AWSIOT:输入您之前记下的 AWS IoT 终端节点。
  • ROOT_CA:根CA证书文件名
  • CERTIFICATE:证书的文件名
  • PRIVATE_KEY:私钥文件名
  • DEVICE_NAME:保持不变为“LS01”

关闭 nano 编辑器并按“Ctrl+X”然后按“Y”保存文件。

按如下方式启动 lig??htstrip.py 脚本。

sudo python3 lightstrip.py

该脚本将列出连接的 USB 端口。Arduino 应该连接到 /dev/ttyACM0 所以运行脚本传递这样的端口。

sudo python3 lightstrip.py /dev/ttyACM0

测试客户端将连接到 Amazon Thing Shadow 服务并订阅LS01影子设备的更改。成功连接后,客户端脚本会将其状态更新为 LS01 设备影子,并收到这样的确认消息。

?
pYYBAGOSjkeAXiPeAAEABfmFnVY693.png
?

要验证一切是否正常工作,请返回 AWS IoT 控制台并选择“管理”>“事物”菜单,然后打开LS01设备。选择阴影菜单,您将看到设备阴影状态。

单击 Shadow Document 部分中的Edit链接,并将以下 JSON 文档粘贴到 Shadow state 框中。

{
 "desired": {
   "animation": "101"
 }
}

这是你应该看到的。

?
pYYBAGOSjkmADa33AACJfv7GbC4146.png
?

单击“保存”链接时,“增量”消息将发送到 Raspberry PI 上的 MQTT 客户端,这将打开 LED 灯带。

以下 JSON 文档会将颜色变为蓝色。

{
 "desired": {
   "color": "0066CC"
 }
}

在这一点上,我们能够从 ASW 物联网服务控制我们的 LED 灯条,所以你应该为你感到骄傲。

AWS Lambda 函数

AWS Lambda 允许在云中运行代码而无需配置或管理服务器。它是 Alexa Skills Kit 之间的完美桥梁,将在该项目的最后一步启用语音控制。

登录到AWS 控制台从服务列表中,选择Lambda

确保您登录的区域与您在上一步中使用的区域相同:右上角的美国东部(弗吉尼亚北部)欧洲(爱尔兰)区域。

单击创建函数按钮。点击Author from scratch ,配置如下:

  • 名称 = LightStrip
  • 运行时 = Python 3.6
  • 角色 = 创建自定义角色。这将启动一个新选项卡。只需单击“允许”按钮即可创建一个名为 lambda_basic_execution 的新角色。
  • 现有角色:lambda_basic_execution
  • 单击创建函数按钮

记下右上角的 Lambda ARN ID。

?
poYBAGOSjlGATROHAACr1CeUVfc405.png
?

单击LightStrip框以显示功能代码部分。

代码输入类型:内联编辑代码

  • 运行时:Python 3.6
  • 处理程序:lambda_function.lambda_handler

应该已经定义了lambda_function.py脚本。将LightStrip\lambda\lambda_function.py文件中的代码粘贴到代码编辑器中。

创建另一个名为ala_controller.py的文件,并将LightStrip\lambda\ala_controller.py文件中的代码粘贴到代码编辑器中。

这就是整个事情的样子。

?
pYYBAGOSjlOAcrYhAADcRLQBIuM233.png
?

完成后,单击右上角的橙色保存按钮。

Alexa 技能

我们现在可以为 Alexa 创建 Light Strip 自定义技能。

转到Amazon Developer Console并根据需要登录。您可能需要先注册您的帐户。

转到Alexa > Alexa Skills Kit(入门)

?
pYYBAGOSjlmAe7oHAAB0bV-v_oM111.png
?

单击右上角的添加新技能按钮,然后在技能信息选项卡中输入以下数据:

  • 技能类型:自定义交互模型
  • 语言:英语(美国)
  • 名称:灯带
  • 调用名称:灯带
  • 点击保存

这创造了技能。请注意技能 ID。

?
pYYBAGOSjlyAGN5pAACJBWk-ZTQ972.png
?

选择“交互模型”菜单,然后单击“启动技能生成器”按钮。

单击代码编辑器按钮并将LightStrip/alexaskill/lightstrip_skill.json文件的内容粘贴到文本框中。

?
poYBAGOSjmeAM4QLAAC_pQhgdjE492.png
?

单击保存模型构建模型按钮。构建模型需要几分钟时间,请耐心等待。单击技能信息按钮返回技能配置页面。

现在点击配置菜单。

在服务端点类型中,选择AWS Lambda ARN ,然后粘贴您在上面记下的 Lambda 函数 ARN。

保留所有默认值并单击下面的“保存”按钮。

将 Alexa 技能连接到 Lambda 函数

返回您的 Lambda 函数。在右侧有一个预定义触发器列表。选择Alexa Skills Kit ,它将添加到您的函数中。

?
pYYBAGOSjmuAY3CwAACsVY0CPMk263.png
?

配置如下:

  • 应用程序 ID = 您在上面记下的技能 ID
  • 点击添加
  • 点击保存

你完成了

该项目现已完成。尝试以下语音命令:

  • 打开灯带
  • 打开
  • 将亮度设置为 20%
  • 将亮度设置为 50%
  • 将颜色设置为红色
  • 将颜色设置为绿松石色
  • 关掉
  • 运行令人兴奋的动画
  • 播放轻松的动画

LightStrip 技能还允许更高级的语音交互

  • 我:Alexa,打开 Light Strip
  • Alexa:欢迎使用 LightStrip - LED 灯条会发出蓝光
  • 我:启动动画
  • Alexa:你想要轻松还是刺激的动画?
  • 我:放松
  • Alexa:好的 - LED 灯带将显示随机动画
  • 我:下一个动画
  • Alexa:好的 - 将显示另一个随机动画

为了更好地理解这里的交互模型是技能的完整 VUI 图。

?
pYYBAGOSjm-Af5CuAACvwGHpHQQ320.png
光带技能VUI图
?

增强和改进

开机自动启动 AlaWeb

该项目的一个小改进是在启动时自动启动lig??htstrip.py脚本,这样您就不需要在每次启动 Raspberry PI 或出现问题时手动启动它,而您必须重新启动。按照此说明进行操作

添加和调整动画

Light Strip cskill 已经定义了 20 个动画变化。但是,ALA 库允许您轻松地设置您自己的动画,选择动画预设、调色板和速度。您可以添加自己的动画或调整ala_controller.py脚本中的现有动画。在第 80 行左右,您将看到一个动画设置列表,您可以根据自己的喜好修改或增强这些设置。

?


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1DD3118电路图纸资料
  2. 0.08 MB   |  1次下载  |  免费
  3. 2AD库封装库安装教程
  4. 0.49 MB   |  1次下载  |  免费
  5. 3PC6206 300mA低功耗低压差线性稳压器中文资料
  6. 1.12 MB   |  1次下载  |  免费
  7. 4网络安全从业者入门指南
  8. 2.91 MB   |  1次下载  |  免费
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下载  |  免费
  11. 6海川SM5701规格书
  12. 1.48 MB  |  次下载  |  免费
  13. 7H20PR5电磁炉IGBT功率管规格书
  14. 1.68 MB   |  次下载  |  1 积分
  15. 8IP防护等级说明
  16. 0.08 MB   |  次下载  |  免费

本月

  1. 1贴片三极管上的印字与真实名称的对照表详细说明
  2. 0.50 MB   |  103次下载  |  1 积分
  3. 2涂鸦各WiFi模块原理图加PCB封装
  4. 11.75 MB   |  89次下载  |  1 积分
  5. 3锦锐科技CA51F2 SDK开发包
  6. 24.06 MB   |  43次下载  |  1 积分
  7. 4锦锐CA51F005 SDK开发包
  8. 19.47 MB   |  19次下载  |  1 积分
  9. 5PCB的EMC设计指南
  10. 2.47 MB   |  16次下载  |  1 积分
  11. 6HC05蓝牙原理图加PCB
  12. 15.76 MB   |  13次下载  |  1 积分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下载  |  免费
  15. 8苹果iphone 11电路原理图
  16. 4.98 MB   |  6次下载  |  2 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935127次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420064次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233089次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191390次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183342次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81588次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73815次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65989次下载  |  10 积分