电子说
概述
我们刚刚在车库中安装了猫门,我想看看我们的猫每天(实际上是晚上)有多少次进出门。我们可以说猫在使用门,因为我们有时会在门外和门内找到它。对于这个项目,我跳过了其他项目使用的摄像头,并决定尝试使用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
全部0条评论
快来发表一下你的评论吧 !