如今,安全系统已成为研究最多的领域之一,并且随着安全威胁的不断增加,公司正在推出新的智能安全产品来应对这些威胁。物联网是该领域的另一项优势,可以在任何紧急情况下自动触发事件,例如致电警察,消防队或您的邻居。我们以前建立了许多安全系统,例如Raspberry Pi访客监视系统,视频监控摄像头,无线门铃,基于IoT的门禁安全警报等。今天,我们将使用ESP32和摄像头来构建智能Wi-Fi门铃。
在另一个教程中,我们了解了ESP32-CAM以及如何将其用于视频流,现在我们将使用ESP32-CAM制作一个智能Wi-Fi视频门铃。这款智能门铃可以轻松地通过交流电源插座供电,只要门上有人按下门铃按钮,它就会在您的手机上播放一首特定歌曲,并发送一条带有视频流页面链接的文本消息,您可以在此看到该人世界上任何地方的门。
所需组件
- ESP32-CAM
- FTDI编程委员会
- 220V AC至5V DC转换器
- 蜂鸣器
- 按钮
- LED灯(2)
电路原理图
该智能Wi-Fi门铃的电路图非常简单,只需将两个LED,一个按钮和一个蜂鸣器连接到ESP32 GPIO引脚即可。每当按下按钮时,蜂鸣器就会发出声音。一个LED用于指示电源状态,另一个LED用于指示网络状态。如果ESP连接到网络,则网络LED指示灯将处于高电平状态,否则它将闪烁。
这是Wi-Fi视频门铃设置在3D打印外壳中的外观:
Wi-Fi门铃的IFTTT设置
IFTTT 是一项免费的基于Web的服务,允许用户创建简单的条件语句链,称为“食谱”,这些条件语句是基于对其他Web服务(如Gmail,Facebook,Instagram和)的更改而触发的。 IFTTT 是“ If This Then That”的缩写。
在此项目中,只要温度或湿度超过预定义的限制,就使用IFTTT发送电子邮件。我们以前在许多基于IoT的项目中使用IFTTT来发送有关特定事件的电子邮件或SMS,例如过度用电,高脉冲率,入侵者进入等。
首先使用您的凭据登录IFTTT或 如果您没有帐户,请 注册 。
现在搜索“ Webhooks”,然后单击“服务”中的“ Webhooks”。
现在,在Webhooks窗口中,单击右上角的“文档”以获取私钥。
复制此密钥。它将在程序中使用。
获取私钥后,现在我们将使用Webhooks和Email服务创建一个applet。要创建一个applet,请单击您的个人资料,然后单击' 创建。 '
现在,在下一个窗口中,单击 “此” 图标。
现在,在搜索部分中搜索Webhooks,然后单击“ Webhooks。 '
现在选择“ 接收Web请求” 触发器,然后在下一个窗口中,将事件名称输入为 button_pressed ,然后单击“创建触发器”。
现在完成小程序,单击 “ That” 以创建对 button_pressed 事件的反应。
在这里,当按下物联网门铃按钮时,我们将在电话上播放特定的歌曲。为此,请在搜索部分中搜索“ Android设备”。
现在,在Android设备中,选择“ 播放特定歌曲” 触发器。
现在输入当按下门铃按钮时要播放的歌曲标题。就我而言,我正在播放Google播放音乐中的一首名为“ 123”的歌曲。您还可以使用Spotify或其他音乐应用程序。
之后,单击“ 创建操作” ,然后单击 “完成” 以完成该过程。
现在,创建另一个小程序,以在按下门铃按钮时将带有网页链接的消息发送到手机。
因此,要创建此小程序,请在“ 本 ”部分中选择“ Webhooks ”, 然后在 “该” 部分中选择“ Android SMS” 。
现在它将要求输入电话号码和消息正文。对于此Wi-Fi门铃项目,我们正在通过Webserver链接发送消息,以便您可以直接观看实时视频流。
代码说明
本文档末尾提供了此Wi-Fi门铃摄像头的完整代码以及视频。也可以从这里下载。下面我们将解释代码的一些重要部分。
首先,包括此代码的所有必需的库文件。
#include“ esp_camera.h” #include
然后输入Wi-Fi凭据。
const char * ssid =“ Wi-Fi名称”; const char * password =“ Wi-Fi密码”;
然后,输入您从IFTTT网站复制的IFTTT主机名和私钥。
const char * host =“ maker.ifttt.com”; const char * privateKey =“您的私钥”;
定义您在该项目中使用的所有引脚。我正在使用GPIO 2、14和15引脚连接按钮,LED和蜂鸣器。
const int buttonPin = 2; const int led1 = 14; const int蜂鸣器= 15;
在 void设置 循环内,将按钮引脚定义为输入,并将LED和蜂鸣器引脚定义为输出。
void setup(){pinMode(buttonPin,INPUT); pinMode(led1,输出); pinMode(蜂鸣器,输出);
它将尝试使用给定的凭据连接到Wi-Fi,并且在连接到网络时,LED状态将从低变高。
WiFi.begin(ssid,密码); int led = LOW; 而(WiFi.status()!= WL_CONNECTED){delay(500); Serial.print(“。”); digitalWrite(led1,led); led =!led; } Serial.println(“”); Serial.println(“ WiFi已连接”); digitalWrite(led1,HIGH);
从网络断开连接后,ESP32会重新启动,直到连接到网络。
而(WiFi.status()== WL_DISCONNECTED){ESP.restart(); digitalWrite(led1,LOW); Serial.print(“连接丢失”);
ESP32将读取按钮状态,如果按钮处于LOW状态(拉高),即已按下按钮,它将发送事件并打开蜂鸣器3秒钟。
int读取= digitalRead(buttonPin); 如果(buttonState == LOW){send_event(“ button_pressed”); Serial.print(“按下按钮”); digitalWrite(蜂鸣器,高); 延迟(3000); digitalWrite(蜂鸣器,低);
用于智能Wi-Fi门铃的3D打印外壳
在这里,我为这款无线门铃摄像头设计了3D打印外壳。为此,我使用游标卡尺测量了ESP32板,按钮,蜂鸣器和LED的尺寸,设计完成后,外观如下图所示。
之后,我将其导出为STL文件,根据打印机设置对其进行切片,最后进行打印。可从Thingiverse下载STL文件,您可以使用它打印自己的外壳。
打印完外壳后,我将电路组装到了外壳中,一切都非常合适,如您在此处看到的。
如果您想进一步了解3D打印机及其工作原理,可以阅读《 3D打印入门指南》中的这篇文章,还可以查看我们使用3D打印外壳的其他项目,例如Biped Robot,Robotic Arm等。
测试智能Wi-Fi门铃
组装好电路后,使用交流插座为门铃供电。现在,只要按下IoT的门铃按钮,智能手机就会开始播放一首名为“ 123”的歌曲,并会收到一条带有网页链接的消息,如下所示,您可以在其中看到实时视频。
有关此Smart Wi-Fi门铃的完整代码和工作视频,请参见文档末尾,也可以从此处下载代码。如果您对此项目有任何疑问,请在评论部分中保留。