ESP8266 IFTTT的PIR运动检测器的制作

电子说

1.3w人已加入

描述

概述

我们刚刚在车库中安装了猫门,我想看看我们的猫每天(实际上是晚上)有多少次进出门。我们可以说猫在使用门,因为我们有时会在门外和门内找到它。对于这个项目,我跳过了其他项目使用的摄像头,并决定尝试使用IFTTT(如果不这样做)免费服务来检测运动时发送电子邮件。

因此,拆开我的零件盒,我发现了一个PIR运动传感器,ESP8266和5V电池。

我使用了Adafruit HUZZAH ESP8266,因为它具有用于为3.3v ESP供电的5V稳压器,以及用于初始设置的良好教程。我也将Arduino IDE与ESP8266库一起使用,因为我已经非常熟悉将其与Huzzah ESP8266结合使用。

我决定将此接口连接到IFTTT(www.ifttt.com),以触发任何类型的事件。最初,每次检测到运动时仅一封电子邮件。

请注意,IFTTT需要HTTPS SSL加密。因此,该项目包括该代码。

步骤1:零件清单

零件清单

·Adafruit HUZZAH ESP8266https://www.adafruit.com/product/2471

·PIR运动检测器,例如https://www.adafruit.com/products/189

·FTDI或USB控制台电缆https://www.adafruit.com/products/954或等效

·5V电源或5V USB电池(用于便携式)

·面包板,电线,盒子将所有东西都放入

·安装了ESP8266扩展包的Arduino IDE(请参阅下面的初始设置)

·从GitHub下载ESP8266_PIR软件:https://github.com/rgrokett/ESP8266_PIR

重要的ESP8266初始设置

在开始项目之前,您应该熟悉Adafruit HUZZAH开发板,并使用Arduino IDE对其进行编程。最好的方法是使用出色的Adafruit教程:

https://learn.adafruit.com/adafruit-huzzah-esp8266 。..

您必须能够对其ESP8266进行编程,并按照其教程中的说明通过浏览器无线连接到它。完成后,然后继续进行下一步。..

步骤2:IFTTT设置

运动检测

运动检测

运动检测

运动检测

1。转到www.ifttt.com

2。登录。如果您没有帐户,则可以注册。免费。

3。登录后,点击我的小程序

4。点击新小程序

5。点击“……”。

6。在搜索服务框中输入“ Webhooks ”

7。点击 Webhooks 图标

8。对于“选择触发器”,只有一个带有“ Receive a Web Request ”的大灰色框。单击它

9。对于完整的触发器字段,输入“ pirigrigger ”,然后单击“创建”。这是ESP8266 .ino软件中使用的事件名称。它们必须匹配。

10。点击“…”的“ 那个”。

11。在搜索渠道框中输入“ 电子邮件”。您可以更改此设置以执行其他操作,例如发送短信等。但是,请坚持使用电子邮件。您以后可以随时进行编辑。

14。对于“选择操作”,单击带有“ 向我发送电子邮件”的灰色大框。

15。单击带有“ 给我发送电子邮件”的蓝色大框。

16。您可以编辑文本,也可以直接保留文本。某些字段未使用,但它们只是在您的电子邮件中显示为空白。

17。点击创建操作。您将看到一个仅描述此食谱将要执行的操作的屏幕。您可以编辑食谱标题,也可以直接保留。点击完成。

18。请注意,它使用您注册IFTTT时输入的电子邮件地址。

19。现在,您有了IFTTT食谱。

可以使用任何使用Maker渠道的IFTTT食谱,只要它被称为“ pirigrigger”即可。 ((如果需要,您可以在下面的ESP8266_PIR.ino程序中更改触发器名称。)

IFTTT Maker URL

您需要IFTTT分配的Maker URL,以便从ESP8266发送到IFTTT。

1。在屏幕的右上角上单击您的名字,然后选择服务。

2。再次单击 Webhooks图标。

3。点击设置按钮。

4。在“制造商设置”屏幕上,您需要复制“ URL:”字段的 api键部分。

示例:https://maker.ifttt.com/use/aBc1fakekey2ab3cBA

.ino程序稍后需要。

步骤3:软件

您应该在对ESP8266进行硬件布线之前对其进行编程和测试。

1。 停止的!确保您已经完成了Arduino IDE的Adafruit教程软件设置,并按照上述“初始设置”部分中的说明使用WiFi网络测试了ESP8266!

2。好的,从GitHub(https://github.com/rgrokett/ESP8266_PIR/)下载ESP8266_PIR软件

3。将ESP8266_PIR子目录复制到Arduino IDE开发目录中。

该文件夹包含所需的3个软件文件。

ESP8266_PIR.ino

HTTPSRedirect.h

HTTPSRedirect.cpp

4。双击 ESP8266_PIR.ino 程序将其加载到Arduino IDE中。

5。使用Arduino IDE,编辑ESP8266_PIR.ino,然后将 WiFi SSID 和 PASSWORD 插入适当的位置。

6。使用先前复制的 IFTTT API密钥更新API_KEY。如果需要,您可以在IFTTT中查看渠道-》搜索渠道-》制作者。

7。您还可以更改一些变量,如下所述:

const char* ssid = “{YOUR_WIFI_SSID}”; // Your WiFi SSID

const char* password = “{YOUR_WIFI_PWD}”; // Your WiFi Password

const char* api_key = “aBc1fakekey2ab3cBA”; // Your API KEY from https://ifttt.com/maker

const char* event = “pirtrigger”; // Your IFTTT Event Name

bool verifyCert = false; // Select true if you want SSL certificate validation

int PIRpin = 14; // GPIO 14 (PIR Sensor)

int MOTION_DELAY = 15; // Delay in seconds between events to keep from flooding IFTTT & emails

IFTTT需要HTTPS SSL和HTTPS 302重定向。 ESP8266库(安装在Adafruit教程中)包含HTTPS SSL函数,并且该库的扩展由https://github.com/electronicsguy/ESP8266/tree/ma 。..开发,用于处理HTTPS 302重定向。

由于此代码不在ESP8266库中,因此我提供了一个副本,或者您可以从上面的URL获取最新版本,并将.cpp和.h文件添加到ESP8266_PIR文件夹中。

IFTTT服务器最初会返回302重定向消息,因此“ HTTPSRedirect.cpp”软件会无形地处理将请求重新发送到新主机的情况。

可选

“ WiFiClientSecure”提供SSL加密,因此邮件始终以加密方式发送,但是默认情况下,IFTTT的SSL证书的验证处于关闭状态。您可以通过更改 verifyCert = true;

启用它,这需要使用IFTTT服务器的SHA1指纹来验证证书。

const char* SHA1Fingerprint=“A9 81 E1 35 B3 7F 81 B9 87 9D 11 DD 48 55 43 2C 8F C3 EC 87”;

此指纹最初是使用Linux命令从IFTTT服务器检索的:

$ openssl s_client -servername maker.ifttt.com -connect maker.ifttt.com:443 | openssl x509 -fingerprint -noout

用冒号替换冒号并更新ESP8266_PIR.ino如所须。

注意:除非IFTTT更改了其SSL证书,否则不必更改此设置。

再次,您可以通过以下方法绕过所有此检查:保留 verifyCert = false; 数据仍处于加密状态。

在此处继续

8。就像Adafruit教程中所示,使用FTDI或USB控制台电缆编译和上传程序。请记住,您必须按下HUZZAH ESP8266上的微小GPIO0和RESET按钮(又名Bootload模式),才能进行上载。

9。程序完成加载后,打开串行监视器,将其设置为115,200波特,然后按 ESP8266 RESET 按钮以重新启动程序。

10。连接到Wifi上网后,它应该在串行监视器中显示IP地址。

此外,板上的红色LED应当闪烁4次,表明已成功连接。如果没有连接,请确保ESP8266_PIR.ino中的SSID/PASSWD已更新并上传。

11。连接PIR和电源的时间……

步骤4:硬件-PIR

运动检测

运动检测

1。暂时从PC拔下FTDI/USB电缆以关闭ESP8266的电源。

2。按如下所示连接PIR传感器。请注意,PIR由5V供电,但其I/O线为3.3v,这使其直接与ESP8266的3.3v GPIO引脚兼容。

(请参见引脚图)

3。现在将PIR接线,将FTDI/USB电缆重新连接到PC。

4。再次,从Arduino IDE启动串行监视器。

5。重置ESP8266,您应该会看到LED闪烁4次,并再次显示IP地址。

6。如果您移到PIR的前面,则串行监视器应注册该事件并发送给IFTTT。如果IFTT触发成功,您应该看到200 OK HTTP响应消息和文本并收到一封电子邮件。

《 HTTP/1.1 200 OK

《 Server: Cowboy

《 Connection: keep-alive

《 X-Powered-By: Sad Unicorns

《 X-Top-Secrettt: VG9vIGVhc3k/IElmIHlvdSBFK3.。./NlY3JldEBlIHdnQgTWFrZXJzLg==

《 Content-Type: text/html; charset=utf-8

《 Content-Length: 50

《 Etag: W/“32-44d0098f”

《 Date: Wed, 29 Jun 2016 21:25:32 GMT

《 Via: 1.1 vegur

* Connection #0 to host maker.ifttt.com left intact

* Closing connection #0

* SSLv3, TLS alert, Client hello (1):

Congratulations! You‘ve fired the pirtrigger event

步骤5:硬件-电源

运动检测

运动检测

运动检测

1。由于Adafruit HUZZAH ESP8266支持5V工作,因此可以使用5V USB电池或USB电源。由于我们将PIR传感器直接连接到V +引脚之一,因此电池或电源必须连接到FTDI/USB电缆所连接的V +和GND。因此,如果您需要对ESP8266进行重新编程,则需要断开这些连接。

(请参阅电缆插针图)

您可能需要构建一个USB到ESP电缆,方法是使用未使用的USB电缆并按照上图所示将其切割。

2。准备就绪后,将USB连接器插入电源或电池。

3。几秒钟后,您应该看到红色LED闪烁四次,表明它已连接至WiFi。

4。做一些动作,大约一分钟后,电子邮件会到达!

将所有内容放入一个盒子中。 PIR传感器可以通过透明塑料工作,但如果安装在外部,则灵敏度更高。将盒子放在猫门附近(或任何想要检测运动的地方),即可开始使用。

责任编辑:wv

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

全部0条评论

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

×
20
完善资料,
赚取积分