树莓派检测事件触发通知给手机,详细步骤配置和使用IFTTT

在本指南中,详细记录了如何配置和使用IFTTT,让树莓派可以检测到事件发生后触发通知等预定操作。

Raspberry-Pi-IFTTT-Thumbnail.jpg

IFTTT是一个基于网络的免费服务,全称是 “If This Then That”。使用该服务,可以在满足特定条件时触发事件。一个基本的例子可以是,如果检测到一个运动,那么就向你的手机发送一个通知。在本指南中,我将向您展示如何连接到IFTTT,在其中设置一个webhook,以及如何从Raspberry Pi触发它。

设备清单

下面是设置树莓派IFTTT用到的所有设备清单,点击链接可直达特别优惠购买。

建议

可选

设置IFTTT

1. 首先需要做的是注册一个IFTTT账号。

要去IFTTT网站注册一个账号。

Raspberry-Pi-IFTTT-01-Signing-up-to-IFTTT.jpg

2. 创建了账户后,现在可以创建一个动作。

首先点击你的个人资料肖像(1.),然后点击 “创建 “选项(2.)。

Raspberry-Pi-IFTTT-02-Create-a-new-applet-homepage.jpg

3. 在这个页面上,需要先为IFTTT动作选择触发器。

点击 “+This”文字开始,如下图所示。

Raspberry-Pi-IFTTT-03-Select-THIS-step.jpg

4. 现在,需要选择想要用于触发的服务。

在本教程中,我将向您展示如何使用webhook服务。

先在搜索框中搜索 “webhook”(1。接下来,需要点击 “Webhooks “按钮(2。

Raspberry-Pi-IFTTT-04-Choose-Webhook-service.jpg

5. 然后需要做的就是点击 “Connect”按钮。

点击这个按钮将开始设置webhook。

Raspberry-Pi-IFTTT-05-Connect-Webhook-Service.jpg

6. 现在,需要选择这个服务提供的触发器。

在webhook的情况下,只有一个可用的触发器,点击它。

Raspberry-Pi-IFTTT-06-Choose-Webhook-Trigger.jpg

7. 需要给这个触发器起一个事件名称(1. )。

除了下划线(_)字符外,这个名称不能包含任何空格或符号。在我的示例事件中,我使用 “motion_detected “作为事件名称。完成后,点击 “Create trigger “按钮(2。

Raspberry-Pi-IFTTT-07-Specify-event-name-with-trigger.jpg

8. 现在选择IFTTT触发器的 “That”动作。

在这里选择的是当 “Then”事件被触发时将发生的事情。需要点击 “+That”的文字开始处理。

Raspberry-Pi-IFTTT-08-Pick-That-Event.jpg

9. 下一步是选择要用于行动的服务。

在本教程中,我将利用 “notifications”服务。当我的事件被触发时,该服务会向IFTTT应用发送通知。还有其他各种服务,但通知是最容易设置的服务之一。需要在搜索框中搜索出 “notifications”(1.弹出 “notifications”服务时,点击它(2.

Raspberry-Pi-IFTTT-09-Choose-Action-Service.jpg

10. 现在点击 “Connect”按钮,将通知服务连接到事件。

Raspberry-Pi-IFTTT-10-Connect-to-Notification-service.jpg

11. 之后需要选择该服务提供的一个动作。

在这种情况下,我想要向IFTTT应用发送一个简单的通知,所以选择左边的选项。

Raspberry-Pi-IFTTT-11-Choose-Notification-Type.jpg

12. 输入希望在通知中显示的信息(1.

在我的例子中,我使用 “Raspberry Pi检测到运动”的文本。你也可以通过在消息中包含{{Value1}}、{{Value2}}或{{Value3}}}来向webhook发送值并显示它们,然而这不是我在本教程中要触及的内容。输入后,点击 “Create action”按钮(2.

Raspberry-Pi-IFTTT-12-Complete-Action-Field.jpg

13. 最后,点击 “Finish”按钮。

Raspberry-Pi-IFTTT-13-Review-and-Finish-IFTTT-action.jpg

14. 回到webhooks页面,点击屏幕右上角的 “Documentation”按钮。

点击这里,就可以在页面上找到需要的API密钥。

Raspberry-Pi-IFTTT-14-Webhook-Documentation.jpg

15. 在这一页,复制下API密钥(1.)

下面可以看到我将发送webhook调用的URL。这个URL位于 “To trigger an Event”标题的下方(2.)。

Raspberry-Pi-IFTTT-15-Retrieve-Webhook-API-Key.jpg

在树莓派上为IFTTT做准备工作

在本节中,我将向您展示如何从树莓派中与新创建的IFTTT webhook进行交互。

1. 由于我可能需要安装一些额外的软件包,先确保Raspberry Pi运行的是最新的可用软件。

可以通过运行以下两个命令来实现。

sudo apt update
sudo apt upgrade

2. 随着软件包的更新,现在可以安装Python 3及其一些依赖包。将使用Python与IFTTT webhook进行交互。为了确保Python的安装,运行以下命令。

sudo apt install python3 python3-pip

3. 现在安装了Python 3,确保能够访问Python Requests库。

运行以下命令,使用pip安装requests模块。

sudo pip3 install requests

现在可以继续编写一个Python脚本,它将与树莓派的IFFTT webhook进行交互。

从树莓派与IFTTT互动

1. 让使用下面的命令开始编写Python脚本。

第一个脚本将向你展示如何使用IFTTT webhook的基础知识。

nano ~/ifttt.py

2. 应该通过导入requests库来启动这个脚本。

import requests

3. 下一步就是对IFTTT提供的webhook URL进行发布请求。

要发送请求,有两件事需要知道:

第一个是你为webhook定义的事件名称。在我的例子中,我使用了事件名 “motion_detected”。

第二个是webhook API密钥。在设置IFTTT动作时,应该已经在指南的前面找到了这个。

有了这两个值,我需要输入以下一行。确保用相关信息替换”{EVENT_NAME}”和”{YOURAPIKEY}”。

requests.post('https://maker.ifttt.com/trigger/{EVENT_NAME}/with/key/{YOURAPIKEY}')

4. 这就是我在Python中进行webhook请求所需要做的全部工作。

按CTRL + X,然后按Y,再按ENTER键保存文件。

5. 在测试这个脚本之前,请确保你的手机上已经安装了IFTTT应用。

可以通过Android的Google Play商店或iPhone的App Store安装IFTTT应用。如果没有这个应用,你将永远不会收到通知。

6. 安装好IFTTT应用后,运行下面的命令来测试脚本。

python3 ~/ifttt.py

如果一切正常,你应该会看到设备上弹出一个通知。

Raspberry-Pi-IFTTT-App-Notification.jpg

修改运动检测脚本以发送通知

在本节中,我将向您展示,如果我在Raspberry Pi运动检测脚本中使用相同的代码段,会是什么样子。

1. 运动检测的脚本代码如下,把它复制保存到树莓派上,我这里命名为motion_sensor.py

#!/usr/bin/env python
"""
	Detects motion and outputs a sound via a piezo buzzer. 
"""

import RPi.GPIO as GPIO
import time

__author__ = "gus-pimylifeup"
__version__ = "1.0"
__maintainer__ = "pimylifeup.com"

pir_sensor = 11
piezo = 7

GPIO.setmode(GPIO.BOARD)

GPIO.setup(piezo,GPIO.OUT)

GPIO.setup(pir_sensor, GPIO.IN)

current_state = 0
try:
    while True:
        time.sleep(0.1)
        current_state = GPIO.input(pir_sensor)
        if current_state == 1:
            print("GPIO pin %s is %s" % (pir_sensor, current_state))
            GPIO.output(piezo,True)
            time.sleep(1)
            GPIO.output(piezo,False)
            time.sleep(5)
except KeyboardInterrupt:
    pass
finally:
    GPIO.cleanup()

2. 现在可以修改文件,添加新需求。

运行以下命令开始编辑文件。

nano motion_sensor.py

3. 找到并增加一些额外的行。

寻找

import time

添加到下面

import requests

寻找

           print("GPIO pin %s is %s" % (pir_sensor, current_state))

在下面添加 确保用相关的值替换{EVENT_NAME}和{YOURAPIKEY}。

           requests.post('https://maker.ifttt.com/trigger/{EVENT_NAME}/with/key/{YOURAPIKEY}

4. 修改完毕后,按CTRL+X键保存文件,然后按Y键,再按ENTER键。

5. 下次运行运动检测脚本时,只要检测到运动,它就会发送通知。

希望到这里,你能对如何用树莓派上使用IFTTT有所了解。如果你在本教程中遇到任何问题或有任何反馈,那么欢迎在下方留言。

平均: 5 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 树莓派检测事件触发通知给手机,详细步骤配置和使用IFTTT

赞 (5)

评论

1+2=