Alexa Node-RED & AWS IoT MQTT



登录aws.amazon.com,点击右边“创建免费账户”,这个账户创建的是Aamzon Web Services的,和Amazon Developer不同。

使用之前的亚马逊账户登录

登陆后跳转到 Aamzon Web Services的注册界面

输入信用卡

填入手机号

等待电话

身份认证完成

试用方案选择“基本”即可

注册成功

到邮箱查收邮件,点击链接激活Amazon Web Services

AWS IOT

登录aws.amazon.com,选择 AWS IoT

点击 “Get start”

进入控制台

选择在侧边栏选择Connect->Configuring a device->Get started

选择”linux/OSX”,再选择”Node.js”

点击“Get Started”

输入设备名:我们这里用”wago”

点击“Linux/OSX”下载“connection kit”,接着点击”Next Step”

点击Download connection kit下载,下载完成后放到树莓派上
将文件上传到树莓派的常用方法:

  1. 使用U盘
  2. 使用FTP传输软件

现在开始在树莓派安装“connection kit”

把它
你需要按照以下步骤进行设置
Step 1: 在树莓派中解压connection kit文件

unzip connect_device_package.zip

Step 2: 添加权限

chmod +x start.sh

Step 3: 运行脚本. 你会获得以下信息

./start.sh
Waiting for messages from your device

回到IOT控制台,点击“Test”功能

在”Subscription topic”输入“/wago”,然后点击”Subscibe to topic”

Lambda

回到aws.amazon.com,登录控制台选择“Lambda”





arn:aws:lambda:us-east-1:597931173770:function:Hello-World-Example-Skill

IAM设置




Alexa Skill Kit

https://developer.amazon.com/


记录下

Skill Information

建立后,这个ASK的ID会自动生成,


用它代替Lambda Code里面的”undefined”

然后点击“Save”

Interation Model



Configuration

我们先设这一步

记得刚刚在Lambda拷贝的ARN序列号吗?

粘贴过来,并“Save”

Test

Aleaxa,tell pump to turn on

NodeRed

运行Nodered

在浏览器输入你树莓派的地址,加上”:1800”
我的树莓派地址是http://192.168.2.7
所以输入:
http://192.168.2.7:1880/

设置MQTT

选择input里面的MQTT(不要选成output里面的,我第一次不小心选错了)

Server地址有点复杂,你需要回到aws.amazon.com

选择AWS IOT -> Thing -> Wago -> Interact


则 “Server” = HTTPS地址+/things/wago/shadow
比如我的“Server”是
a3uccojwp779uv.iot.us-east-1.amazonaws.com/things/wago/shadow

Port为8883

添加这几个文件路径

还记得之前在IOT下载的这几个文件吗?

每个人的目录不同,看清楚你的路径

Certificate对应着wago.cert.pem
路径是:/home/pi/connect_device_package/wago.cert.pem

Private Key对应着wago.private.key
路径是:/home/pi/connect_device_package/wago.private.key

CA Certificate对应着root-CA.crt
路径是:/home/pi/connect_device_package/root-CA.crt


我们取个名叫“AWS”,完成后选择ADD

如图完成所以设置

如图完成所以设置,点击”Done”

检测连接

选择debug


AWS已经和树莓派成功连接了

GPIO引脚驱动



选择引脚

我们选择GPIO.7,既4号引脚,按照如图设置

然后开启树莓派本地的Aleaxa Voice Server,你也可以登录echosim.io进行测试。