Alexa,点亮我的心情
了解如何使用 Arduino IoT Cloud 和 Amazon Alexa 控制您的 MKR RGB 扩展板
项目介绍
注意:本教程可能已过时,请转到此处获取最新版本。
简介:Arduino IoT Cloud
$ Arduino IoT Cloud $ 是一个平台,使任何人都可以轻松构建物联网连接对象。为了使用 Alexa 控制我们的 MKR RGB Shield,我们还将使用 $ 官方 Arduino Alexa 技能。 $
如果您是Arduino IoT Cloud的新手,我们建议您首先看一下$这个介绍性项目,$它将为您提供概述并指导您完成设置受支持的板之一,IoT Cloud 事物和属性的过程并让您加入。
第 1 部分:Arduino 物联网云
在 $ IoT Cloud 主页上,我们将创建一个新事物并为其分配一个有意义的名称。 然后,我们将选择要使用的电路板。如果你看不到你的看板,你可能已经跳过了$入门过程:$查看上面的部分。
完成后,我们将为我们的事物添加一个属性,该属性将代表RGB屏蔽。 作为一种类型,请记住选择 ColoredLight,它可以让我们控制 RGB 灯,让我们改变它的亮度和颜色。将其设置为 ReadandWrite,因为我们需要通过 Alexa 控制其行为。
此时,您的事物的 Dashboard 视图应如下所示:
添加属性时,请确保仅使用“智能家居”部分下列出的类型,否则它们将无法与 Alexa 一起使用。
现在,通过单击 Thing 编辑视图中的 Edit Sketch 按钮进入 Web 编辑器。
第 2 部分:Arduino Web 编辑器
在 Web 编辑器中,我们需要将一些代码添加到自动为我们生成的 Sketch 中。
首先要包括的库将帮助我们控制MKR RGB Shield:
#include <ArduinoGraphics.h>
#include <Arduino_MKRRGB.h>
我们必须包括这两个库,因为 $ Arduino_MKRRGB $ 取决于 $ ArduinoGraphics $ 。
现在在设置功能中,我们可以使用以下方式初始化Arduino MKR RGB Shield:
if (!MATRIX.begin()) {
Serial.println("Failed to initialize MKR RGB shield!");
while (1);
}
MATRIX.brightness(10);
这样,如果未安装防护板,Sketch 的执行将被阻止。
出于开发目的 ,亮度设置为 10(无需外部电源)。如果您计划使用 $ 入门指南 $ 中所述的 4 Amps 5v 电源,则可以使用更大的值(支持的范围为 0 到 255)。
现在是时候实现我们的回调函数了:负责设置 LED 的颜色/状态。每次从 IoT Cloud 中提取属性值的更改时,都会执行此函数。
让我们实现 onMoodLightChange
:
void onMoodLightChange() {
uint8_t r, g, b;
moodLight.getValue().getRGB(r, g, b);
MATRIX.beginDraw();
if (moodLight.getSwitch()) {
Serial.println("R:"+String(r)+" G:"+String(g)+ " B:"+String(b));
MATRIX.fill(r, g, b);
MATRIX.rect(0, 0, MATRIX.width(), MATRIX.height());
}
else{
MATRIX.clear();
}
MATRIX.endDraw();
}
使用上面的代码,我们首先从云中读取 rgb 值,并将 RGB 颜色的表示保存在一些变量中,然后我们验证电灯开关是否打开;如果是,我们可以使用颜色值打开灯之前阅读。否则,我们关灯。
beginDraw
和 endDraw
函数用于更改矩阵的状态,fill
用于选择要使用的颜色,rect 是用于指定要填充的区域的函数。
当然,我们可以在 Alexa 应用程序中按名称定义自定义颜色,这样我们就不必手动判断要设置哪些红色、绿色或蓝色的数量。
第 3 部分:Amazon Alexa 技能设置
我们现在需要 Amazon Alexa 应用程序,该应用程序可以从 $ Apple App Store $ 或 $ Google Play Store 下载。 $ 安装后,使用现有帐户登录或创建一个新帐户。
让我们完成安装Arduino Alexa Skill所需的步骤。我们将按照下面的图片顺序查看所有必需的步骤。
第 4 部分:Amazon Alexa 设备设置
稍等片刻后,您应该会看到已找到一些设备。
按照以下图像序列设置设备:
注意:设备将根据我们在Arduino IoT Cloud中命名属性的方式命名。如果您无法找到设备,则可能是您没有从“智能家居”部分选择您的财产。
我们完成了,现在是时候语音控制我们的MKR RGB Shield了,询问诸如此类的问题
- “Alexa,打开办公室的灯”
- “Alexa,将情绪灯的颜色更改为红色”
- “Alexa,将情绪灯的亮度设置为 50%”
玩得开心 Alexa 和 IoT Cloud。
代码文件:
blob:https://app.arduino.cc/2323c0c9-885b-46ff-9538-fc1badc78adb