如何使用Node.js和IFTTT Web服务使用任何树莓派设备控制电子继电器

电子说

1.3w人已加入

描述

步骤1:您需要的内容

至少,您将需要:

Google主页

从Google购买

任何型号Raspberry Pi

从Adafruit购买

GPIO电缆

您可能可以找到自己的,我不知道不拥有你

5v 2中继模块

在Ebay上更便宜

》其余就是软件。如果您是Raspberry Pi的新手,请注意,可能需要一些其他硬件(例如USB电缆或wifi芯片)才能启动并运行。

第2步:板载软件设置

继电器

因此,为了使本指南尽可能易于使用,我-将包含一些您超级用户可能会发现过多的链接。

TLDR:在WiFi或以太网(最好是WiFi)上设置树莓派,并配置路由器,以使服务器外部可用。您将使用raspberry-gpio-python来控制中继。

对于新手,您将首先设置树莓派。

您将希望获得树莓派。 pi在您的本地WiFi上设置。

我将在Node.js中工作,因此您将需要升级到最新版本的Node。

配置路由器,以便端口80重定向到您的树莓派的MAC地址。 (对不起,这取决于您使用的路由器,并且没有真正的通用指南。)

我更喜欢使用SSH连接到我的树莓派。

大量在您启动过程中,有些事情可能会出错。保持耐心,和谷歌的事情。社区非常支持,并且很可能其他人以前遇到过您的问题!

第3步:搭建电路

继电器

因此,有很多关于Rasberry Pi上的继电器入门的指南。

基本上,您将需要从Raspberry Pi的5v输出引脚提供电源,并选择要用于发送开/关的控制引脚。触发继电器的信号。

使用上图,无论使用哪种型号,我都建议使用黄色针脚。

第4步:创建服务器

入门应用程序现已可用!

访问https://github.com/krpeacock/google_home_starter下载该项目的入门应用程序,并按照README进行配置并在您自己的设备上运行。

您也可以查看我的最新作品如果您有兴趣查看项目的稍微复杂一点的版本,请访问https://github.com/krpeacock/power_strip/tree/strip的React项目

主要步骤是构建Node + Express服务器能够处理POST请求。

在我的代码中,它看起来像这样:

app.post(‘/api/switches/:id’, function(req, res){

var foundSwitch = getSwitch(req.params.id);

foundSwitch.toggle();

saveState();

console.log(“postSwitch ”+JSON.stringify(foundSwitch));

res.json(foundSwitch);

})

我向/api/switches/:id发出了发布请求,其中id写入为sw1,sw2 , 等等。识别出开关之后,我调用toggle()方法运行Python脚本并更改中继的状态。

我为关闭和打开功能编写了单独的python脚本,指定了将GPIO引脚绑定到每个开关。例如,sw1_on.py看起来像:

import RPi.GPIO as GPIO

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)

GPIO.setup(23, GPIO.OUT)

然后,通过要求使用Python-shell节点模块,我可以使用以下命令执行脚本:

const PythonShell = require(‘python-shell’);

PythonShell.run(‘。/public/python/scripts/sw1_on.py’)

第5步:连接到Google主页

如果您已成功获取此信息到目前为止,这些信息可能是您在这里的唯一原因。没关系!这很酷。

您正在运行服务器,它可以控制中继。它的结构使得POST请求可以更改中继的状态。现在,您所需要做的就是让您的Google Home向设备发送POST请求。最终,您将需要添加一些授权,以便陌生人无法控制您的设备,但现在我们只希望请求能够正常工作。

转到https://ifttt.com并连接它到您的Google帐户。

转到https://ifttt.com/create,然后单击+此链接。

搜索Google Assistant

选择Google Assistant

选择“说一个简单的短语”作为触发条件

告诉Google应该触发什么那个行动。

我更喜欢使用要控制的设备命名,所以我说“打开灯”

指定响应

“打开灯”

单击“创建触发器”并继续

单击+那个链接

搜索“ Webhooks”

选择“发出Web请求”

现在,这是重要的一点。确定您的IP地址(或域,如果您设置了该抽象级别),并将其输入到URL部分。如果您按照我的入门项目中的结构进行操作,它将看起来像

http://ipaddressgoeshere/API/switches/sw1?password=yourpasswordhere

将方法设置为POST

内容类型应为text/plain

正文可以留空

创建动作并选择“完成”。

步骤6:恭喜!

您已经完成了!现在,您的Google Home知道如何通过HTTP与智能设备进行通信。

由于此操作可以进行切换,因此从技术上讲,您可以一直说“打开灯”以打开和关闭它。我更愿意为每个开关添加重复的打开和关闭命令,以使一切都变得更舒适。

如果您想为本指南做出贡献,或者与我一起构建入门应用程序,您也可以随时取得联系!我想让新黑客尽可能地简化此过程。
        责任编辑:wv 

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

全部0条评论

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

×
20
完善资料,
赚取积分