树莓派远程监控系统实现
基于树莓派的远程监控系统
摘要
像闭路电视这样的安全系统的需求正在日益增长。尽管市场上有大量可供选择的方案来满足我们的需求,但这些方案往往价格昂贵且需要大量维护。树莓派是一种小巧便携的计算机,结合Pi摄像头后可成为安全摄像机。它具备处理器、主存储器(RAM)和存储空间,是一种基于ARM的片上系统(SOC)。它具有检测运动并使用摄像头拍摄图片的功能。随后可通过Python脚本指示树莓派向预设地址发送电子邮件和通知。所使用的设备易于获取、价格低廉,且不需要像完整的闭路电视摄像机系统那样频繁维护。因此,我们实现了一种经济高效的安防系统,可以轻松自主管理,无需依赖付费帮助。
1. 引言
在这个技术日新月异、每天都有新技术诞生的时代,一项技术的好坏取决于其为用户提供的工作质量和数量。树莓派是一种廉价且高效的计算机,能够以经济的价格提供大量功能。它是一台高效的计算机,不仅可以作为摄像头使用,还能向用户发送电子邮件通知,并可编程仅保存包含运动的帧,从而帮助消除不重要的数据。
在这类监控系统中,只有位于该特定区域且静止不动的人员才能查看该地点正在发生的情况。而在此系统中,即使用户从一个地方移动到另一个地方,他/她也能持续跟踪该特定地点的情况。
2. 树莓派
树莓派是一种小型卡片式计算机,其功能与计算机相同。目前存在各种监控系统,如闭路电视、报警器等。然而,在这类监控系统中,只有位于特定区域的固定人员才能查看该地点的情况。但本系统的优点在于,即使用户从一个地方移动到另一个地方,也能持续掌握该特定地点的动态。另一个优势是,由于仅由一个人查看,因此能够保障双方的隐私。此外,它还有一个显著优点:电路结构简单,从而降低了整个设备的总体成本。该设备还能利用其传感器和功能拍摄照片并发送给用户作为警报,同时通过集成的摄像头模块录制视频。
树莓派是一种小巧且廉价的计算机,主要用于学习并将编程语言应用于实践。它可使用Python、Java、C++等语言创建基于硬件和软件的实际项目。
树莓派3B+是该系列中最新的产品,功能最强大。它是一款基于Cortex‐A53(ARMv8)芯片、主频达1.4吉赫兹的片上系统。配备1GB的LPDDR2 SDRAM。支持在2.4吉赫兹或5吉赫兹IEEE下运行双通道Wi‐Fi。在连接性方面,还配备了蓝牙4.2。通过USB 2.0实现千兆以太网连接。通用输入输出(GPIO)包含40引脚,可用于设备的输入和输出。我们还可以使用HDMI输出,用于多种用途。外设方面,包含4个USB 2.0端口、CSI摄像头接口、DSI显示接口、四极立体声输出和复合视频接口,使树莓派能够作为多功能设备使用。
它采用5V/2.5A直流电源输入,使其成为一款功耗极低但功能强大的设备。
正如我们已经解释了树莓派的强大功能,它可以在许多场合用于学习编程语言。树莓派使用Raspbian操作系统,该系统以Python作为处理任务的默认语言。也可以使用其他语言如Java或C来为树莓派编程,前提是这些程序已安装在系统上,但这会占用树莓派的存储空间。型号3B+使用SD卡进行存储,容量范围从4GB到16GB。树莓派是基于Linux的系统,操作系统需要存储在SD卡上。根据所需完成的工作类型,树莓派可使用多种不同的Linux版本,例如NOOBs、Raspbian操作系统、Pidora、ARC等。
要将操作系统安装到SD卡上,首先需要从树莓派官网下载原始镜像文件。下载完成后,需使用SD Formatter软件对SD卡进行格式化。格式化完成后,使用Win32DiskImager软件将镜像写入SD卡。然后,我们将SD卡插入树莓派,并通过LCD显示器和键盘启动系统。启动时需要电源为树莓派供电,同时需要SD卡来引导操作系统。
3. 前提条件
要使用树莓派制作一个安全系统,首先需要在SD卡上安装合适的操作系统。格式化方法已在前面讨论过。树莓派图形界面提供了多种启动方式,我们需要选择其中一种。我们还需要启用并配置连接到树莓派的摄像头。
Pi摄像头
树莓派包含一个带有摄像头的印刷电路板,即摄像头模块。该摄像头通过一条可拆卸的延长线连接到树莓派,可根据需要进行调整。与树莓派配合使用的摄像头是一个小型摄像头,类似于小型手机摄像头,配备约5百万像素的传感器。
要启用摄像头,我们需要进入树莓派配置设置,并选择启用摄像头选项。我们可以将摄像头用作运动检测摄像头或普通摄像头。
可以使用以下命令通过终端来使用Pi摄像头的常规功能‐
拍摄快照:
raspistill –o imagename.jpg
制作视频:
raspivid –o videoname.h264
树莓派具有名为 Motion 的特殊软件,可使 Pi摄像头 变成运动检测摄像头。通过使用特殊的配置文件来更改摄像头的操作,使其能够执行运动检测摄像头的任务。该文件需要从在线资源获取,因为它不会预装在树莓派上。
4. 拟开展的工作
我们的目标是创建一个安全系统,能够提醒我们任何与物品安全相关的情况。为此,我们在树莓派上安装了一个摄像头,该摄像头可作为运动检测传感器,在触发器被激活时拍摄快照或录制视频。此触发器可以是树莓派的运动检测软件。
一旦配置完成并满足我们的需求,树莓派需要重启。重启后,我们需要确保所有使用Motion软件所需的文件都已正确安装。系统也需要正确更新,并安装最新的软件包。可以使用以下命令从终端更新软件包:
sudo apt-get update
sudo apt-get upgrade
我们还需要允许通过操作系统通过command发送电子邮件通知:
sudo apt-get install ssmtp
接下来,为了使用Motion应用,我们需要安装一些软件包,以便使其满足我们的需求。通过使用以下命令,我们可以实现这一目标:
sudo apt-get install motion
sudo apt-get install libjpeg62 libjpeg62-dev libavformat53 libavformat-dev libavcodec53 libavcodec-dev libavutil51 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5 libpq-dev
然后我们需要从互联网下载一个配置文件,以便让摄像头按照我们期望的方式工作。下载完成后,必须对其进行特定修改,以确保与我们的系统兼容。我们可以通过配置文件来修改设置,例如设置检测移动的阈值。将阈值设为3000像素较为合适,这样可以准确捕捉到有效的移动。如果设置过低,即使画面中的光照发生轻微变化,也可能触发检测。在配置文件中,有一部分为“on_picture_save”,它指定了摄像头拍摄快照时需要执行的任务。
on_picture_save camera.py
在摄像头中
.py
文件
camera.py
是一个 Python 脚本,用于指定保存图片时要执行的命令。以下 Python 脚本可用于在每次保存图片时发送电子邮件通知。以下脚本可用于向账户发送电子邮件通知。
import subprocess
import smtplib
import socket
from email.mime.text import MIMEText
import datetime
import os
# 目标邮箱
to = '输入您的邮箱地址'
# 用户Gmail账户
gmail_user = '输入您的邮箱地址'
# Gmail密码
gmail_password = '输入您的密码'
# SMTP服务器
smtp_server = smtplib.SMTP('smtp.gmail.com', 587)
smtp_server.ehlo()
smtp_server.starttls()
smtp_server.ehlo()
smtp_server.login(gmail_user, gmail_password)
today = datetime.date.today()
# 获取本地IP地址
arg = 'ip route list'
process = subprocess.Popen(arg, shell=True, stdout=subprocess.PIPE)
data = process.communicate()
split_data = data[0].split()
ipaddr = split_data[split_data.index(b'src') + 1].decode('utf-8')
# 获取公网IP地址
os.system('wget http://ipecho.net/plain -O test.txt > /dev/null 2>&1')
public_ip = open('test.txt', 'r').read().strip()
# 邮件内容
msg_content = f'检测到警报。公网IP为 {public_ip}:8081,本地IP为 {ipaddr}'
msg = MIMEText(msg_content)
msg['Subject'] = f'树莓派警报 {today}'
msg['From'] = gmail_user
msg['To'] = to
# 发送邮件
smtp_server.sendmail(gmail_user, [to], msg.as_string())
smtp_server.quit()
需要注意的是,在对配置文件进行修改后,需要重启树莓派以使更改生效。设备重启后,最后一步是启动摄像头并运行配置文件以检测运动。可使用以下命令来启动摄像头并运行Python脚本:
motion -n -c motionmmalcam.conf
通过移动设备的网络浏览器并使用互联网连接,可以在任何地方查看实时流媒体。我们只需要输入树莓派的IP地址和端口号即可。默认端口号为8081。
摄像头拍摄的图片保存在与树莓派操作系统文件相同的SD卡上。
5. 结论
通过本项目,我们认识到树莓派几乎无限的功能。它在技术领域开辟了大量机遇。它不仅是一台体积小巧但功能强大的计算机,还允许用户以无与伦比的便捷方式完成大量任务。专业人士可以用它来开发新技术,学生也可以用它来学习新语言并轻松进行实验。
树莓派的成本效益使其成为最大的基于开源硬件的平台。由于它是一个开源平台,任何人都可以轻松使用,大量用户的参与也促进了这项技术的发展。
使用上述步骤自行创建安全系统既简单又经济高效。摄像头的体积小巧,隐蔽性强,可放置在任何位置。当用户收到树莓派发送的通知时,只需打开浏览器即可查看摄像头的实时视频流。这是一个成本低廉、易于使用和维护的安全系统。
更多推荐
所有评论(0)