我一直对可寻址的 RGB LED 灯带着迷。无穷无尽的色彩效果和动画功能一直吸引着我的创造力,所以几年前我决定为 Arduino 板开发一个名为 ALA(Arduino Light Animations)的库。Alexa 现在让我可以用我的声音控制房间的灯光和效果,这太棒了!
有这个项目所必需的组件。
项目中没有什么是非常具有挑战性的,但是有很多相互关联的部分。我建议您按照建议的结构在坚实的基础上构建您的项目,然后再继续下一步。为了使事情尽可能简单,我将项目拆分为两个子项目。
该项目的第一部分在我的Web-Controlled LED Animations with Raspberry Pi and Arduino Hackster.io 项目中有所描述,它将指导您完成连接 Raspberry PI、Arduino 板和 WS8212 LED 灯条所需的步骤。在此阶段结束时,您将能够使用网络浏览器从智能手机或 PC 控制 LED 动画。
此处描述的项目的第二部分将使用 Amazon Alexa 在之前的实施中添加语音控制。要正确设置整个链条,需要执行几个步骤,因此请耐心等待并仔细按照说明操作。
你完成硬件部分了吗?现在是上云的时候了!我们将使用 AWS IoT 平台来管理来自互联网的“事物”。
我们将使用“设备影子”,它是事物状态的副本,以及所需的更改。Raspberry PI 将订阅一个通知提要,将更改(“增量”)发布到此影子。查看此链接以了解有关 AWS IoT 平台和 API 的更多信息。
创建物联网事物
登录AWS 控制台。如果您还没有这样做,则需要创建一个免费帐户。
确保您已登录右上角的美国东部(弗吉尼亚北部)或欧洲(爱尔兰)区域。
搜索“IoT”并选择AWS IoT服务。单击“开始”按钮(如果有)以关闭介绍教程。
我们首先需要为我们的“事物”创建一个安全策略。转到Secure > Policies菜单,然后单击Create a Policy按钮并输入以下信息:
现在我们可以创建 IoT Thing了。
在继续之前,您需要记下 AWS IoT 端点。单击AWS IoT 网页左下角的设置菜单,打开它并记下端点。
配置 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
现在编辑设置以匹配您的配置。
关闭 nano 编辑器并按“Ctrl+X”然后按“Y”保存文件。
按如下方式启动 lightstrip.py 脚本。
sudo python3 lightstrip.py
该脚本将列出连接的 USB 端口。Arduino 应该连接到 /dev/ttyACM0 所以运行脚本传递这样的端口。
sudo python3 lightstrip.py /dev/ttyACM0
测试客户端将连接到 Amazon Thing Shadow 服务并订阅LS01影子设备的更改。成功连接后,客户端脚本会将其状态更新为 LS01 设备影子,并收到这样的确认消息。
要验证一切是否正常工作,请返回 AWS IoT 控制台并选择“管理”>“事物”菜单,然后打开LS01设备。选择阴影菜单,您将看到设备阴影状态。
单击 Shadow Document 部分中的Edit链接,并将以下 JSON 文档粘贴到 Shadow state 框中。
{
"desired": {
"animation": "101"
}
}
这是你应该看到的。
单击“保存”链接时,“增量”消息将发送到 Raspberry PI 上的 MQTT 客户端,这将打开 LED 灯带。
以下 JSON 文档会将颜色变为蓝色。
{
"desired": {
"color": "0066CC"
}
}
在这一点上,我们能够从 ASW 物联网服务控制我们的 LED 灯条,所以你应该为你感到骄傲。
AWS Lambda 允许在云中运行代码而无需配置或管理服务器。它是 Alexa Skills Kit 之间的完美桥梁,将在该项目的最后一步启用语音控制。
登录到AWS 控制台。从服务列表中,选择Lambda 。
确保您登录的区域与您在上一步中使用的区域相同:右上角的美国东部(弗吉尼亚北部)或欧洲(爱尔兰)区域。
单击创建函数按钮。点击Author from scratch ,配置如下:
记下右上角的 Lambda ARN ID。
单击LightStrip框以显示功能代码部分。
代码输入类型:内联编辑代码
应该已经定义了lambda_function.py脚本。将LightStrip\lambda\lambda_function.py文件中的代码粘贴到代码编辑器中。
创建另一个名为ala_controller.py的文件,并将LightStrip\lambda\ala_controller.py文件中的代码粘贴到代码编辑器中。
这就是整个事情的样子。
完成后,单击右上角的橙色保存按钮。
我们现在可以为 Alexa 创建 Light Strip 自定义技能。
转到Amazon Developer Console并根据需要登录。您可能需要先注册您的帐户。
转到Alexa > Alexa Skills Kit(入门)。
单击右上角的添加新技能按钮,然后在技能信息选项卡中输入以下数据:
这创造了技能。请注意技能 ID。
选择“交互模型”菜单,然后单击“启动技能生成器”按钮。
单击代码编辑器按钮并将LightStrip/alexaskill/lightstrip_skill.json文件的内容粘贴到文本框中。
单击保存模型和构建模型按钮。构建模型需要几分钟时间,请耐心等待。单击技能信息按钮返回技能配置页面。
现在点击配置菜单。
在服务端点类型中,选择AWS Lambda ARN ,然后粘贴您在上面记下的 Lambda 函数 ARN。
保留所有默认值并单击下面的“保存”按钮。
返回您的 Lambda 函数。在右侧有一个预定义触发器列表。选择Alexa Skills Kit ,它将添加到您的函数中。
配置如下:
该项目现已完成。尝试以下语音命令:
LightStrip 技能还允许更高级的语音交互
为了更好地理解这里的交互模型是技能的完整 VUI 图。
开机自动启动 AlaWeb
该项目的一个小改进是在启动时自动启动lightstrip.py脚本,这样您就不需要在每次启动 Raspberry PI 或出现问题时手动启动它,而您必须重新启动。按照此说明进行操作。
添加和调整动画
Light Strip cskill 已经定义了 20 个动画变化。但是,ALA 库允许您轻松地设置您自己的动画,选择动画预设、调色板和速度。您可以添加自己的动画或调整ala_controller.py脚本中的现有动画。在第 80 行左右,您将看到一个动画设置列表,您可以根据自己的喜好修改或增强这些设置。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !