如何使用IFTTT和树莓派自动化车库门

电子说

1.2w人已加入

描述

智能家居产品很酷,但价格昂贵。借助Raspberry Pi和一个或两个组件,可以轻松,廉价地将现有设备连接到互联网。

使车库门具有互联网意识,是学习如何使用智能手机控制现实世界的绝妙介绍。皮。坦白说,谁不想像蝙蝠侠那样,在驶入车道时自己打开车库?

您需要的东西

要自动执行车库门操作,您将需要:

可以带外部触发器的车库门电机。

连接到互联网的Raspberry Pi(任何型号)。本教程假定您的Pi正在运行Raspbian操作系统(如果不是,请参阅我们的文章,介绍如何在Raspberry Pi上安装Raspbian)。

中继扩展板,可以在Amazon上找到。

li》

Raspberry Pi的2A电源。较低额定值的型号可能无法驱动继电器板和Pi。

四根跨接电缆(对于您要控制的每个额外的门,还要多一根)。

足够Pi和车库门电机之间的两芯电缆。便宜的扬声器线是理想的选择,但是电话线或以太网线也可以使用。

一旦您将这些组件收集到一起,就该开始了。

此方法自动化车库门工程

大多数车库门电机均可通过外部输入触发以打开或关闭。制造商提供了这些输入,以便安装人员可以在家里的某个地方挂上一个简单的按钮即可打开或关闭门,而无需使用常规遥控器。按下并释放扳机按钮时,它会立即关闭一个电路,告诉电动机启动或停止。

您将使用继电器代替外部按钮。短暂闭合继电器将闭合电路,就像按下触发按钮一样。在Raspberry Pi上运行的Python脚本将使您可以从家庭网络控制中继,从而控制门。

步骤1:将Raspberry Pi连接到中继

您Raspberry Pi与中继板之间至少要建立四个连接。如果您使用的是Pi Zero,则要么需要直接焊接连接,要么将GPIO接头焊接到Pi上,并使用跳线进行连接。推荐使用后一种方法,因为如果您要断开中继板的连接并将Raspberry Pi用于其他用途,则无需拆焊。较大型号的Pis已经具有用于连接插入式跨接电缆的插头。

如果您不熟悉GPIO,请务必阅读我们的文章,了解有关Raspberry Pi GPIO引脚的所有知识。

在连接所有组件之前,请检查继电器板上是否有将VCC和JD-VCC引脚连接在一起的跳线。如果有,则将其卸下,因为您需要分别为VCC和JD-VCC供电。

在所有电源关闭的情况下,连接继电器板如下所示连接到您的Pi:

首先将Pi引脚2(5V导轨)连接到继电器板上的JD-VCC。

连接Pi引脚1或引脚17 (3.3V电源)连接到继电器板上的VCC。

将Pi引脚6(GND)连接到继电器板上的GND。

最后,连接Pi引脚7(GPIO 4)到继电器板上的IN1。这是切换继电器的连接。

如果您有多个车库门,或者要添加对电动门的控制,则应在IN2,IN3,

IFTTT

第2步:在Raspberry Pi上安装依赖项 》

Raspbian预先安装了Python,但是您需要添加GPIO库。在Pi的终端窗口中键入以下内容:

sudo apt-get update

sudo apt-get -y install python-rpi.gpio

现在在主目录中创建一个新文件夹,该文件夹将放置将用于控制继电器的Python脚本:

mkdir ~/garagedoor

cd ~/garagedoor

最后,下载bottle,一个轻量级的框架,它将在您的Pi上创建一个简单的Web服务器:

wget https://bottlepy.org/bottle.py 步骤3:创建控制脚本

下面是一个非常简单的Python脚本,用于通过HTTP控制中继板:

# Python Script To Control Garage Door

# Load libraries

import RPi.GPIO as GPIO

import time

from bottle import route, run, template

# Set up the GPIO pins

GPIO.setmode(GPIO.BOARD)

GPIO.setup(7, GPIO.OUT)

GPIO.setup(11, GPIO.OUT)

GPIO.output(7, True)

GPIO.output(11, True)

# Handle http requests to the root address

@route(‘/’)

def index():

return ‘Go away.’

# Handle http requests to /garagedoor

@route(‘/garagedoor/:doornum’)

def garagedoor(doornum=0):

if doornum == ‘0’:

return ‘No door number specified’

elif doornum == ‘1’:

GPIO.output(7, False)

time.sleep(.8)

GPIO.output(7, True)

return ‘Door number 1 cycled.’

elif doornum == ‘2’:

GPIO.output(11, False)

time.sleep(.8)

GPIO.output(11, True)

return ‘Door number 2 cycled’

run(host=‘0.0.0.0’, port=1234)

在您的Raspberry Pi上,使用nano创建一个新的Python文件:

nano door.py

将上面的脚本复制并粘贴到空文档中。退出并使用 CTRL + X 保存,然后使用 Y 和输入进行确认。

现在通过运行来测试脚本它:

python door.py

如果一切正常,您将看到以下消息:

如果收到任何错误消息,请检查所有内容均正确粘贴到文件中,并且没有在同一端口上运行其他Web服务器(如Apache)(它将干扰脚本创建的服务器)。

假定没有错误,请转到同一网络上另一台计算机上的Web浏览器,然后在地址栏中键入Pi的IP地址,后跟冒号和1234。例如,如果您的IP地址Raspberry Pi为11.22.33.44,您需要在浏览器中输入 11.22.33.44:1234 。

如果一切正常,您将看到一条消息,提示您离开! p》

现在在IP地址和端口号之后添加/garagedoor/1 ,如下所示: 11.22.33.44:1234/garagedoo r/1

按 Enter ,您将听到板上的第一个继电器在关闭并再次打开时单击两次。如果将1更改为2,然后重新加载页面,则会听到第二个继电器循环。

步骤4:将继电器连接到门电机

请参阅车库门电机手册,以查找可以在何处连接外部控制器。将两芯电缆连接到该电缆,然后将电缆的另一端连接到中继板的螺钉端子。

每个端子有三个端子中继-使用如图所示的常开对。

再次从Web浏览器测试所有内容(您可以刷新页面)。如果一切顺利,则中继将单击几次,您的车库门应开始打开。

第5步:将脚本设置为自动加载

如果您的Raspberry Pi重新启动,出于任何原因,例如断电,您的Python脚本将停止运行。要在启动时加载它,请将以下行添加到您的/etc/sc.local 文件中(如果以其他用户身份登录到Pi,请将 Pi 更改为您的用户名):

nohup python /home/pi/garagedoor/door.py &

使用常规的文本编辑器执行此操作,完成后保存文件。

请注意安全性注意事项

此示例Python脚本没有任何安全性-任何可以通过其IP地址访问Raspberry Pi的人都可以打开和关闭车库门。很容易想到,仅仅因为没人知道您的脚本在那里,没人会找到它,但是通过模糊性的安全性一次又一次被证明是一个坏主意。

完整的身份验证系统已经超出了范围本教程的内容,但是一种简单的安全解决方案是不要让您的Pi在家庭网络之外访问。

这里有一些保护Raspberry Pi的提示。

控制您的Raspberry Pi使用IFTTT或Siri的车库门

如果确实选择从开放的互联网访问Pi,则可以通过“如果这样那么(IFTTT)”服务来控制车库门。例如,当您向Amazon Echo发出触发短语时,可以将Alexa和Webhooks IFTTT服务结合使用来打开车库门。

IFTTT

驾驶具有IFTTT连接服务的汽车,您可以创建一个applet,以便在您的汽车接近您的房屋(蝙蝠侠式)时打开门。

想知道更多吗?请参阅我们的可下载指南,以像专业人士一样使用IFTTT。

另一种触发您的新互联网感知车库门的方法是使用Siri快捷方式。在小部件中添加一个非常简单的快捷方式意味着您可以省去携带烦人的键,而只需轻扫即可打开车库并点击iPhone。

IFTTT

车库之外:更多DIY智能家居项目

继电器板可以切换电源电压,因此可以控制大多数家用电器。该项目可以作为向几乎所有带电源的设备添加智能设备的基础。咖啡机,照明,空调-都可以通过Raspberry Pi和一些继电器实现自动化。

责任编辑:wv 

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

全部0条评论

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

×
20
完善资料,
赚取积分