基于物联网的智能Wi-Fi门铃使用树莓派和PiCamera
扫描二维码
随时随地手机看文章
安全是当今主要关注的问题,今天我们在市场上有各种类型的监控和安全系统。但它们非常昂贵,有时还会产生我们无法解决的问题。以前我们建立了一个监控摄像头,可以在物联网云上直播视频,今天我们将建立一个低成本的基于树莓派的智能Wi-Fi门铃。当按下门铃开关时,系统会将来访者的照片发送到邮件中。PiCamera是用树莓派来拍照的,如果你没有PiCamera,也可以用USB网络摄像头。该系统可以安装在你家或办公室的大门上,可以通过互联网从世界任何地方进行监控。
需求
•Raspberry Pi,安装Raspbian OS。
•Pi相机或USB网络摄像头
•按钮
•跳线
在这里,我们将使用SSH访问笔记本电脑上的树莓派。如果你有显示器,那么它将非常容易开始,但如果你没有显示器,那么设置树莓派在无头模式或使用VNC服务器获得树莓派桌面在笔记本电脑上。
树莓派在构建基于物联网的项目中非常受欢迎,因为它具有对物联网的所有必要支持。它是一个手掌大小的电脑,内置Wi-Fi,蓝牙,USB端口,音频/视频端口,HDMI端口,摄像头端口等。你可以在这里查看所有基于树莓派的物联网项目。
连接图
这款树莓派智能门铃的电路图非常简单,只需在一些GPIO引脚上连接一个按钮,并将Pi相机连接到相机插槽上。
安装树莓派相机或USB网络摄像头
PiCamera:
1. 如果你正在使用picam,那么你必须从raspi-config中启用摄像头接口。执行命令sudo raspi-config,进入“接口选项”。
2. 然后选择Camera选项并在下一个窗口中启用它并重新启动Pi。
3. 现在,通过使用下面的命令捕获照片来测试相机。
如果你有一个图像在Pi目录,那么你就准备好去检查你的相机带和相机模块。
USB相机:
如果你正在使用USB网络摄像头,那么你必须安装一些包来启用网络摄像头功能。使用下面的命令安装包
现在,通过使用以下命令捕获照片来检查相机的工作情况
在最终代码中使用上述命令替换piccamera功能。
现在,我们在硬件方面已经准备好了。是时候安装SMTP库和设置Google帐户了。
在树莓派上安装SMTP发送邮件
简单消息传输协议SMTP (Simple Message Transfer Protocol)是用于发送电子邮件的通信协议。使用命令行或python脚本发送电子邮件是一个很好的和简单的解决方案。所以我们需要在树莓派上安装一些库和包来使用SMTP发送电子邮件。
安装SMTP库
1. SMTP库包已经安装在新版本的Raspbian中,但您可以重新安装它以检查所有包是否正确安装。首先使用下面的命令更新和升级Raspbian OS。
2. 现在,使用以下命令安装SMTP库包
修改谷歌邮件帐户中的“安全设置”
谷歌不允许发送和接收包含Python代码的电子邮件。所以,我们必须更新一些安全设置在谷歌帐户。按照以下步骤启用“允许不太安全的应用程序”权限。
1. 通过输入您的登录凭证登录到您的Gmail帐户。
2. 点击头像,然后点击“谷歌账号”。
3. 在安全选项卡下,你会发现不太安全的应用程序访问。通过点击“允许不太安全的应用程序”来打开它。
代码与说明
在本教程的最后给出了完整的Python代码和演示视频。在这里,我们将解释代码以了解其工作原理。
快速回忆一下,这里我们正在编写一个python脚本,以便在按下门铃开关时将访客的照片作为附件发送邮件。Pi相机将捕捉照片并通过电子邮件发送给房子的主人。
1. 在树莓派中打开您最喜欢的文本编辑器,并导入picamera, Rpi gpio, SMTP, time的所有重要库。
2. 现在,导入发送电子邮件所需的所有模块。对于编写纯文本,包括附件和主题,我们需要一个单独的模块来组成整个邮件。
3. 在变量中指定您的电子邮件id、收件人电子邮件id和密码,如下所示。
4. 为了将捕获的照片保存在一个目录中,并为它们分配一个文件夹和一个前缀名称。
5. 设置引脚模式和引脚编号,以附加一个作为门铃开关的按钮。
6. 现在,创建一个捕获照片的函数。在这个函数中,我们必须检查目录是否已经存在。如果没有,则创建目录。
分配一个文件名,并使用glob对其进行排序,找到现有图像的最大ID,并在此ID值之后启动新图像。
从最后一个文件名获取计数。
现在,捕获照片,给它一个唯一的名称,并将其保存在定义的文件夹中。
7. 现在,编写另一个发送邮件的函数。在此功能中,我们将附加主题、正文和附件,然后使用SMTP将所有内容发送给接收者。
现在,最后,读取按钮值,当它变高时,Raspberry Pi调用capture_img()函数来捕获访问者的图像,并将访问者的图片作为附件发送警报电子邮件。这里send_mail()在capture_img()函数中用于发送邮件。
测试PiCamera门铃
连接完完整的代码后,保存带有.py扩展名的文件,并使用下面的命令执行此脚本
如果代码中没有错误,则按下按钮。4-5秒后,您应该会收到一封带有照片作为附件的邮件。
为了避免每次引导pi时都运行该脚本,请使该脚本可执行,并使其在每次引导时自动运行。为此,打开rc。本地文件使用下面的命令
在“exit 0”之前粘贴python /home/pi/Desktop/doorbell.py &,如下图所示,使用ctrl+x保存文件并回车。确保您输入了正确的python脚本目标。
现在,重新启动树莓派并按下按钮。如果一切正常,你应该会收到一封附有照片的电子邮件。
本文编译自iotdesignpro