当前位置:首页 > 物联网 > IoT设计分享
[导读]安全是当今主要关注的问题,今天我们在市场上有各种类型的监控和安全系统。但它们非常昂贵,有时还会产生我们无法解决的问题。以前我们建立了一个监控摄像头,可以在物联网云上直播视频,今天我们将建立一个低成本的基于树莓派的智能Wi-Fi门铃。当按下门铃开关时,系统会将来访者的照片发送到邮件中。PiCamera是用树莓派来拍照的,如果你没有PiCamera,也可以用USB网络摄像头。该系统可以安装在你家或办公室的大门上,可以通过互联网从世界任何地方进行监控。

安全是当今主要关注的问题,今天我们在市场上有各种类型的监控和安全系统。但它们非常昂贵,有时还会产生我们无法解决的问题。以前我们建立了一个监控摄像头,可以在物联网云上直播视频,今天我们将建立一个低成本的基于树莓派的智能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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭